使用说明
OpenAPI MCP服务器
一种模型上下文协议(MCP)服务器,通过解析OpenAPI规范将REST API动态公开为MCP工具。与任何符合OpenAPI的API配合使用。
特性
- 动态工具生成:根据OpenAPI规范自动创建MCP工具
- 两种操作模式:低电平(自动)和FastMCP(预定义)
- 灵活认证:支持Bearer令牌、API密钥和自定义标头
- 端点筛选:白名单/黑名单特定的API终结点
- 参数剥离:从请求中删除敏感参数
- 预构建预设:包括流行API的配置
快速开始
# Install
pip install openapi-mcp-server
# Run with any OpenAPI service
openapi-mcp-server --openapi-url https://api.example.com/openapi.json --base-url https://api.example.com
# Use with Lemy (preset included)
openapi-mcp-server --preset lemy
# Test mode (verify tools without starting MCP)
openapi-mcp-server --preset lemy --test
预设
勒米
openapi-mcp-server --preset lemy
# or
OPENAPI_PRESET=lemy openapi-mcp-server
自定义API
openapi-mcp-server \
--openapi-url https://your-api.com/openapi.json \
--base-url https://your-api.com \
--mode fastmcp \
--auth-token your-token
安装
来自PyPI
pip install openapi-mcp-server
或者使用紫外线:
uv add openapi-mcp-server
本地安装(开发)
如果您想从源代码安装以进行开发或测试:
# Clone the repository
git clone https://github.com/yourusername/openapi-mcp-server.git
cd openapi-mcp-server
# Install in editable mode with development dependencies
pip install -e ".[dev]"
# Or with uv
uv pip install -e ".[dev]"
# Verify installation
openapi-mcp-server --help
# Run tests to ensure everything works
pytest
可编辑安装(-e 标志)允许您修改源代码并立即查看更改,而无需重新安装。
配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
OPENAPI_PRESET |
预设名称(狐猴、松弛等) | 无 |
OPENAPI_SPEC_URL |
OpenAPI规范URL | 必填 |
API_BASE_URL |
API基本URL | 必需 |
MCP_MODE |
服务器模式(low_level 或 fastmcp) |
low_level |
API_KEY |
API身份验证密钥 | 无 |
AUTH_HEADER |
身份验证标头名称 | Authorization |
AUTH_TYPE |
身份验证类型 | Bearer |
TOOL_WHITELIST |
逗号分隔的端点模式 | 无 |
TOOL_BLACKLIST |
逗号分隔的端点模式 | 无 |
TOOL_NAME_PREFIX |
工具名称的前缀 | api_ |
STRIP_PARAM |
要从请求中删除的参数 | 无 |
DEBUG |
启用调试日志记录 | false |
配置文件
创建一个 config.json:
{
"openapi_spec_url": "https://api.example.com/openapi.json",
"api_base_url": "https://api.example.com",
"mode": "fastmcp",
"api_key": "your-token",
"tool_whitelist": ["/users", "/posts"],
"debug": true
}
然后运行:
openapi-mcp-server --config config.json
使用Claude代码
添加到您的Claude Code MCP配置中:
{
"mcpServers": {
"my-api": {
"command": "openapi-mcp-server",
"args": ["--preset", "lemy"],
"env": {
"API_BASE_URL": "http://localhost:11981"
}
}
}
}
或者对于自定义API:
{
"mcpServers": {
"my-api": {
"command": "openapi-mcp-server",
"env": {
"OPENAPI_SPEC_URL": "https://api.example.com/openapi.json",
"API_BASE_URL": "https://api.example.com",
"API_KEY": "your-token",
"MCP_MODE": "fastmcp"
}
}
}
}
预设
预置模式
- 莱姆:Lemy人工智能平台
- 松弛:Slack API(即将推出)
- GitHub:GitHub API(即将发布)
创建自定义预设
在中创建预设文件 presets/my-service.json:
{
"name": "my-service",
"openapi_spec_url": "https://api.myservice.com/openapi.json",
"api_base_url": "https://api.myservice.com",
"mode": "fastmcp",
"auth_header": "X-API-Key",
"auth_type": "Token",
"tool_name_prefix": "myservice_",
"fastmcp_tools": [
{
"name": "myservice_get_user",
"description": "Get user information",
"endpoint": "/users/{id}",
"method": "GET",
"parameters": {
"id": {"type": "string", "required": true, "in": "path"}
}
}
]
}
发展
git clone https://github.com/yourusername/openapi-mcp-server
cd openapi-mcp-server
pip install -e ".[dev]"
# Run tests
pytest
# Test with Lemy
openapi-mcp-server --preset lemy --test
示例
松弛API
openapi-mcp-server \
--openapi-url https://api.slack.com/specs/openapi/v2/slack_web.json \
--base-url https://slack.com/api \
--auth-token xoxb-your-token \
--tool-prefix slack_
GitHub API
openapi-mcp-server \
--openapi-url https://api.github.com/openapi.json \
--base-url https://api.github.com \
--auth-token ghp_your-token \
--auth-header Authorization \
--auth-type "Bearer"
自定义内部API
openapi-mcp-server \
--openapi-url http://internal-api:8080/openapi.json \
--base-url http://internal-api:8080 \
--mode fastmcp \
--whitelist "/api/v1/users,/api/v1/projects"
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
贡献
- 分叉存储库
- 创建要素分支
- 为您的更改添加测试
- 确保所有测试通过
- 提交拉取请求
详细指南请参见CONTRIBUTING.md。
