关于 MCP OpenAPI
MCP OpenAPI 解析 OpenAPI 规范,并动态生成兼容 MCP 的服务代码和工具,适合希望为现有服务添加 MCP 支持的团队,也可作为 sidecar 部署。
主要功能
- 01解析 OpenAPI 规范
- 02生成 MCP 服务代码
- 03创建兼容 MCP 的工具
适用场景
- 01从 API 规范生成 MCP 支持
- 02作为 sidecar 部署在现有服务旁
MCP 相关
它根据 OpenAPI 规范生成 MCP 服务组件和工具,供 MCP 客户端使用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP OpenAPI
本项目旨在通过自动化工具简化服务生成,加速 MCP 协议的普及。 它会解析 OpenAPI 规范,并动态生成相应的 MCP 服务组件。
主要功能
- 解析 OpenAPI 规范
- 动态生成兼容 MCP 的服务代码和工具
- 旨在简化集成和部署
使用场景
一种常见用法是将此应用作为 sidecar 部署在现有服务旁。 这样无需手动实现服务即可无缝支持 MCP。
通过自动完成从 OpenAPI 到 MCP 的转换,此工具减少了手动开发服务的开销, 并促进 MCP 协议在现代服务架构中的快速普及。
工作流
sequenceDiagram
actor user as User
actor agent as Agent
participant ingress as Ingress
participant mcp_proxy as MCP Proxy
participant openapi_server as OpenAPI Server
participant db as Database
user->>ingress: Request for OpenAPI resource
ingress->>openapi_server: Forward request
openapi_server->>db: Query database
db-->>openapi_server: Database response
openapi_server-->> user: OpenAPI Server response
Note over user,db: LLM interaction
user->>agent: Send a prompt
agent->>ingress: Request for MCP tool
ingress->>mcp_proxy: Forward request
mcp_proxy->>openapi_server: Forward request
openapi_server->>db: Query database
db-->>openapi_server: Database response
openapi_server-->>mcp_proxy: OpenAPI Server response
mcp_proxy-->>agent: MCP server response
agent-->>user: Prompt response
环境变量
| 名称 | 默认值 | 描述 |
|---|---|---|
| OPENAPI_SPEC_URL | Open API 规范的 URL。 | |
| TRANSPORT | streamable-http | 与 MCP 服务通信时使用的传输类型。 |
| HOST | 127.0.0.1 | 服务绑定的主机名或 IP 地址。 |
| PORT | 8000 | 监听的端口号。 |
如何设置开发环境
本项目支持 Dev Container,让你轻松开始使用完整配置的开发环境。这可以确保不同开发环境之间的一致性,并让贡献者无需手动配置环境即可开始工作。
选项 1:GitHub Codespaces
你可以立即启动基于云的开发环境:
选项 2:本地 Dev Container(Visual Studio Code)
- 安装 Visual Studio Code。
- 安装 Dev Containers 扩展。
- 确保已安装并运行容器运行时:
- Docker Desktop(Windows/macOS)
- Docker Engine 或 Podman(Linux)
- 在 Visual Studio Code 中打开此仓库。
- 出现提示时,在 Dev Container 中重新打开项目。
验证
项目提供了一个辅助脚本,用于验证 MCP 服务。 它使用 MCP Python SDK 连接服务、列出工具并执行这些工具。
列出可用工具
./tests/client.py -m http://localhost:8000/mcp
输出示例:
{
"properties": {
"url": {
"title": "Url",
"type": "string"
}
},
"required": ["url"],
"title": "fetch_websiteArguments",
"type": "object"
}
调用工具
./tests/client.py -m http://localhost:8000/mcp -a call-tool -t fetch -i url=https://electrocucaracha.com/acerca/
输出示例(已截断):
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
...
</head>
</html>
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。