使用说明
AGDevX OpenAPI MCP服务器
将任何OpenAPI规范转化为用于AI助手的MCP工具。将其指向API的OpenAPI/Swagger规范,您的助手可以立即与您的API交互。
特性
- 动态工具生成 -根据OpenAPI 3.0/3.1规范自动创建MCP工具
- 友好工具名称 -智能命名:
post_api_v1_users→create_user有有用的描述 - 多环境支持 -根据请求在dev、qa和其他环境之间切换
- 实时规格刷新 -无需重新启动即可更新工具
- 速率限制 -具有可配置请求限制的内置保护
- 两种运输方式 -stdio(最简单)或HTTP(Docker)
- 简易安装向导 -面向非技术用户的基于Web的向导
快速入门:安装向导
配置此服务器的最简单方法是通过基于web的设置向导:
npx agdevx-openapi-mcp-server@latest setup
这将启动一个基于浏览器的向导,该向导:
- 指导您输入API详细信息
- 测试您的OpenAPI规范URL以验证其是否有效
- 自动检测您安装了哪些MCP客户端
- 自动更新配置文件(带备份)或显示要复制的内容
特征:
- 可视化多步骤向导
- 实时URL验证
- 支持多种环境(开发、质量保证等)
- 自动检测VS代码、克劳德桌面和克劳德代码
- 具有备份或手动复制选项的安全自动更新
选项:
# Custom port
npx agdevx-openapi-mcp-server@latest setup --port 3001
# Don't auto-open browser
npx agdevx-openapi-mcp-server@latest setup --no-open
配置后,重新启动MCP客户端,服务器将可用。
手动配置
通过环境变量进行配置。使用npx时,在MCP客户端配置中设置这些。使用Docker时,将它们设置为 .env 文件。
必需设置
# Define your environments (comma-separated)
ENVIRONMENTS=dev
# OpenAPI spec URL for each environment (used ONLY to fetch the spec)
API_SPEC_URL_PDEV=https://dev-api.example.com/openapi/v1.json
# Base API URL for each environment (used for all API calls)
API_BASE_URL_DEV=https://dev-api.example.com
多个环境
ENVIRONMENTS=dev,qa
DEFAULT_ENVIRONMENT=dev
# OpenAPI spec URLs (used to fetch the spec)
API_SPEC_URL_DEV=https://dev-api.example.com/openapi/v1.json
API_SPEC_URL_QA=https://qa-api.example.com/openapi/v1.json
# Base API URLs (used for API calls)
API_BASE_URL_DEV=https://dev-api.example.com
API_BASE_URL_QA=https://qa-api.example.com
可选设置
| 变量 | 默认值 | 描述 |
|---|---|---|
MCP_SERVER_NAME |
agdevx-openapi-mcp-server |
为服务器提供自定义名称(例如,帐户api) |
MCP_VERBOSE |
false |
启用详细日志记录 |
PORT |
3000 |
HTTP传输端口(Docker) |
API_TIMEOUT |
30000 |
API请求超时(ms) |
NODE_TLS_REJECT_UNAUTHORIZED |
1 (已启用) |
TLS证书验证。设置为 0 禁用自签名证书(dev) |
RATE_LIMIT_ENABLED |
true |
启用速率限制 |
RATE_LIMIT_REQUESTS |
10 |
每个窗口的最大请求数 |
RATE_LIMIT_WINDOW_MS |
60000 |
速率限制窗口(ms) |
看 .env.example 所有可用选项。
Docker设置(可选)
使用预构建图像
# Docker Hub
docker pull agdevx/agdevx-openapi-mcp-server:latest
# Run with docker-compose
docker-compose up -d
在当地建设
# Build and run
docker-compose up -d
# View logs
docker-compose logs -f
# Stop
docker-compose down
验证Docker部署
# Test the endpoint
curl http://localhost:3001/mcp
# Check logs for successful startup
docker-compose logs -f | grep "initialized successfully"
客户端设置
VS Code
编辑您的VS Code MCP配置文件(mcp.json):
- 窗户:
%APPDATA%\Code\User\mcp.json - macOS/Linux:
~/.config/Code/User/mcp.json
{
"servers": {
"my-api": {
"type": "stdio",
"command": "npx",
"args": ["agdevx-openapi-mcp-server"],
"env": {
"ENVIRONMENTS": "dev",
"API_SPEC_URL_DEV": "https://dev-api.example.com/openapi/v1.json",
"API_BASE_URL_DEV": "https://dev-api.example.com"
}
}
}
}
重新加载VS代码: Ctrl+Shift+P → “开发人员:重新加载窗口”
克劳德桌面版
编辑您的Claude Desktop配置:
- 窗户:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"my-api": {
"command": "npx",
"args": ["agdevx-openapi-mcp-server"],
"env": {
"ENVIRONMENTS": "dev",
"API_SPEC_URL_DEV": "https://dev-api.example.com/openapi/v1.json",
"API_BASE_URL_DEV": "https://dev-api.example.com"
}
}
}
}
重新启动克劳德桌面。
克劳德代码
# Add the server
claude mcp add my-api --scope user -- npx agdevx-openapi-mcp-server
# Edit config to add environment variables
claude config edit
添加到配置文件:
{
"mcpServers": {
"my-api": {
"command": "npx",
"args": ["agdevx-openapi-mcp-server"],
"env": {
"ENVIRONMENTS": "dev",
"API_SPEC_URL_DEV": "https://dev-api.example.com/openapi/v1.json",
"API_BASE_URL_DEV": "https://dev-api.example.com"
}
}
}
}
Docker(HTTP传输)
注: HTTP传输仅由VS Code和Claude Desktop支持。Claude Code不支持HTTP传输。
对于VS Code或Claude Desktop,如果使用Docker而不是npx:
VS代码(mcp.json):
{
"servers": {
"my-api": {
"type": "http",
"url": "http://localhost:3001/mcp"
}
}
}
克劳德桌面(Claude_Desktop_config.json):
{
"mcpServers": {
"my-api": {
"url": "http://localhost:3001/mcp",
"transport": "http"
}
}
}
克劳德代码: 不支持Docker/HTTP传输。使用 npx 使用stdio传输(请参阅上面的Claude Code部分)。
测试
问克劳德:
- “我的API提供了哪些工具?”
- “从我的API获取所有用户”
- “列出所有可用环境”
- “检查服务器状态”
特性
友好工具名称和描述
工具会以直观、友好的方式自动命名:
post_api_v1_users→create_userget_api_v1_users→list_usersget_api_v1_users_id→get_userput_api_v1_users_id→update_userdelete_api_v1_users_id→delete_user
增强的描述 包括所需参数:
- 创建新用户。需要:姓名、电子邮件、正文
- “获取单个用户。需要:id。”
- “列出用户”
服务器智能地:
- 将camelCase操作Id转换为snake_case(
getUserProfile→get_user_profile) - 从HTTP方法+资源路径生成友好名称
- 处理非RESTful API:解析camelCase(
/searchItems)烤肉串箱(/calculate-tax),以及RPC样式路径 - 识别POST操作:
POST /users/search→search_user(不是create) - 发现 70+动作词:搜索、查询、过滤、计算、验证、激活、导出、注册、转移、合并、认证、追加销售、发布、履行、持久化、接收等。
- 将资源名称(用户)单数化→ 用户、类别→ 类别)
- 在描述中显示所需参数
看 FRIENDLY_NAMES.md 了解详细的示例及其工作原理。
多个环境
每个API工具都包含一个可选的 environment 参数。根据请求在环境之间切换:
# List environments
"List all available environments"
# Use specific environment
"Get account information from the dev environment"
# Compare across environments
"Get user 123 from dev, then from qa"
# See differences between environments
"What's the difference between the APIs running in dev and qa?"
# Change default environment
"Set the default environment to qa"
管理工具:
list_environments-查看所有已配置的环境get_current_environment-检查当前默认值set_default_environment-更改默认值check_server_status-使用环境可达性、速率限制和工具计数进行健康检查
刷新规范而不重新启动
当您的API发生变化时,随时更新您的API规范:
"Refresh the OpenAPI spec"
这个:
- 获取最新规格
- 立即更新现有工具
- 注册新操作
- 无需重新启动
速率限制
内置滑动窗口算法保护:
- 默认值:每60秒10个请求
- 可通过环境变量进行配置
- 清除带有重试时间的错误消息
RATE_LIMIT_ENABLED=true
RATE_LIMIT_REQUESTS=10
RATE_LIMIT_WINDOW_MS=60000
服务器状态和运行状况检查
使用监视服务器运行状况和状态 check_server_status 工具:
"Check server status"
这提供了:
- 环境状况:显示哪些环境可以通过访问✓/✗ 指标
- 速率限制使用:当前请求计数与重置前的时间限制
- 可用工具:API操作和管理工具总数
- 上次规格刷新:自上次获取OpenAPI规范以来的时间
输出示例:
Environments: 2 (dev✓, qa✗ unreachable)
Rate Limit: 3/10 requests used (resets in 45s)
Tools Available: 15
Last Spec Refresh: 2 minutes ago
使用此功能:
- 验证所有环境是否可访问
- 在进行批量API调用之前监控速率限制使用情况
- 确认规格刷新正在工作
- 更新后检查可用工具总数
故障排除
服务器无法启动
“没有有效的OpenAPI规范,无法启动MCP服务器”
- 验证
API_SPEC_URL是正确的.env或客户端配置 - 手动测试URL:
curl https://api.example.com/openapi/v1.json - 确保API正在运行且可访问
- 对于自签名证书(开发/测试),设置
NODE_TLS_REJECT_UNAUTHORIZED=0在环境变量中
Docker问题
端口已在使用中:
# Change in docker-compose.yml
ports:
- '3002:3000' # Use different port
容器无法启动:
# Check logs
docker-compose logs -f
无法从客户端连接:
# Verify container is running
docker ps | grep agdevx-openapi-mcp-server
# Test endpoint
curl http://localhost:3001/mcp
未显示任何工具
- 验证OpenAPI规范是否有效(OpenAPI 3.0+)
- 确保端点具有
operationId在规格书中 - 检查日志:
docker-compose logs -f | grep "initialized successfully" - 重新启动客户端应用程序
一般问题
重新启动服务器:
docker-compose restart
# or
docker-compose down && docker-compose up -d
启用详细日志记录:
MCP_VERBOSE=true
发展
运行测试
该项目包括使用Jest的全面单元测试:
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage report
npm run test:coverage
看 测试.md 获取详细的测试文档。
建筑
# Build TypeScript to JavaScript
npm run build
# Watch mode for development
npm run watch
功能增强
- 白名单和黑名单:只允许调用特定端点,或明确阻止调用特定端点。
