Automatically convert RESTful APIs (Swagger 2.0 / OpenAPI 3.0) into MCP Servers
Project description
MCP RESTful Adapter
将 RESTful API(Swagger 2.0 / OpenAPI 3.0)自动转换为 MCP Server。每个 API 端点变成一个 MCP Tool。
快速开始
1. 在 Claude Desktop / Cursor / Claude Code 中使用
编辑配置文件(Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json):
从 PyPI 安装(推荐):
{
"mcpServers": {
"petstore": {
"command": "uvx",
"args": ["mcp-restful-adapter"],
"env": {
"API_SPEC_URL": "https://petstore3.swagger.io/api/v3/openapi.json",
"API_BASE_URL": "https://petstore3.swagger.io/api/v3",
"API_TAGS": "pet,store"
}
}
}
}
本地开发(未发布时):
{
"mcpServers": {
"petstore": {
"command": "uv",
"args": [
"run",
"--project", "/path/to/mcp-restful-adapter",
"mcp-restful-adapter"
],
"env": {
"API_SPEC_URL": "https://petstore3.swagger.io/api/v3/openapi.json",
"API_BASE_URL": "https://petstore3.swagger.io/api/v3",
"API_TAGS": "pet,store"
}
}
}
}
将
/path/to/mcp-restful-adapter替换为本项目的实际路径。
配置完成后,Claude 就能直接调用 Petstore 的 API 了:
findPetsByStatus(status="available")→ 查询可用宠物getPetById(petId=1)→ 查询宠物详情addPet(name="Buddy", ...)→ 创建宠物
2. 在终端中使用
# PyPI 版本
API_SPEC_URL=https://petstore3.swagger.io/api/v3/openapi.json \
API_BASE_URL=https://petstore3.swagger.io/api/v3 \
API_TAGS=pet \
uvx mcp-restful-adapter
# 本地开发
API_SPEC_URL=https://petstore3.swagger.io/api/v3/openapi.json \
API_BASE_URL=https://petstore3.swagger.io/api/v3 \
API_TAGS=pet \
uv run mcp-restful-adapter
3. 带认证的 API
{
"mcpServers": {
"my-api": {
"command": "uvx",
"args": ["mcp-restful-adapter"],
"env": {
"API_SPEC_URL": "https://your-api.example.com/openapi.json",
"API_BASE_URL": "https://your-api.example.com",
"API_HEADERS": "{\"Authorization\": \"Bearer your-bearer-token\", \"X-Tenant\": \"acme\"}"
}
}
}
}
环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
API_SPEC_URL |
OpenAPI/Swagger 文档地址 | 必填 |
API_BASE_URL |
后端 API 地址 | 必填 |
API_TAGS |
Tag 白名单,逗号分隔,OR 逻辑(匹配任一 tag 即保留) | 全部 |
API_METHODS |
HTTP 方法白名单,逗号分隔 | 全部 |
API_PATHS |
路径正则白名单(如 ^/api/v1/) |
全部 |
API_HEADERS |
自定义请求头(JSON 格式,含认证等) | 空 |
LOG_LEVEL |
日志级别(INFO 记录请求 URL,DEBUG 记录请求头和 body) |
WARNING |
过滤示例
# 只要 GET 请求
API_METHODS=GET
# 只要 pet 或 store 相关的端点
API_TAGS=pet,store
# 只要 /api/v1/ 开头的路径
API_PATHS=^/api/v1/
# 组合使用:pet tag 下的 GET 和 POST
API_TAGS=pet
API_METHODS=GET,POST
开发
uv sync # 安装依赖
uv run mcp-restful-adapter # 运行
uv run pytest tests/ -v # 运行测试
uv run pytest tests/ --cov=mcp_restful_adapter # 覆盖率
示例代码
| 文件 | 说明 |
|---|---|
examples/agent_usage.py |
Agent 中使用 — 连接 MCP Server、列出 tools、调用 tools |
examples/claude_desktop_config.json |
Claude Desktop 配置模板 |
uv run python examples/agent_usage.py
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_restful_adapter-0.3.0.tar.gz.
File metadata
- Download URL: mcp_restful_adapter-0.3.0.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a9681166172838314b67d76bc5335f0da2194c133a8bd23a7c53fd3f21c2ed2
|
|
| MD5 |
dc3cc03f59e5bf3820efcc3f5a4d8990
|
|
| BLAKE2b-256 |
3c9d85b6dcec0a34f1825c50395ebb304f9316958969ebead4f0fcac41c3dd75
|
File details
Details for the file mcp_restful_adapter-0.3.0-py3-none-any.whl.
File metadata
- Download URL: mcp_restful_adapter-0.3.0-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f11f87e0a257b6032f3b6e1ca4d52a2bc2464e8b0954f1a7cb2b62ecf03a6345
|
|
| MD5 |
46cd9c944269651328fa0c18807b768b
|
|
| BLAKE2b-256 |
8cab13416cb8f7860050dfbbc9ce55190019550b4751be8765084e05e845b423
|