使用说明
MCP-OpenAPI
A. 模型上下文协议 该服务器将OpenAPI规范中的HTTP方法作为工具公开。
[!警告] 这是一个概念验证,尚未经过充分测试和记录。
用法
每个MCP OpenAPI服务器都公开来自单个OpenAPI规范的操作。您可以运行多个实例来公开多个规范。
此软件包可在PyPI@上获得[mcp-openapi][pypi]。您可以使用启动服务器 uvx mcp-openapi --openapi-url https://httpbin.org/spec.json (sse | stdio).
Claude配置示例(运行时 fastapi dev tests/todos.py 端口8000):
{
"mcpServers": {
"todos": {
"command": "uvx",
"args": [
"mcp-openapi",
"--openapi-url=http://localhost:8000/openapi.json",
"stdio"
]
}
}
}
OpenAPI url也可以作为环境变量传递, MCP_OPENAPI_URL.
当以SSE运行时,您可以使用以下配置服务器:
--fastmcp-sse-host-为MCP服务器提供服务的主机--fastmcp-sse-port-为MCP服务器提供服务的端口
还有其他全局选项:
--fastmcp-debug-为MCP服务器启用调试模式--fastmcp-log-level-MCP服务器的日志级别
这些也可以使用环境变量进行配置 FASTMCP_ 前缀,例如。 FASTMCP_LOG_LEVEL=DEBUG.
运作原理
- MCP OpenAPI服务器使用OpenAPI规范URL进行初始化。
- 服务器获取并解析OpenAPI规范,并将每个路径操作注册为工具。
- 使用注册的工具启动FastMCP服务器。
- 当客户端请求工具时,MCP服务器向API发出HTTP请求并返回响应。
支持的OpenAPI/Swagger版本
| Swagger 2.0 | OpenAPI 3.0 | OpenAPI 3.1 |
|---|---|---|
| :x: | :heavy_check_mark: | :heavy _check_mark: |
此软件包支持JSON和YAML格式的OpenAPI 3.0和3.1规范。
我们正在使用 openapi解析器 幕后,这似乎相当全面,并支持解析对外部规范的引用。
未来的配置选项
[!信息] 这些仍有待实施。
限制端点
默认情况下,所有端点都作为工具公开。您可以限制公开哪些端点:
- 根据路径模式,
- 通过HTTP方法,
- 明确列出要公开的各个操作,
- 使用OpenAPI标签选择路线。
处理API认证
MCP-OpenAPI向目标API发出API请求-它可以使用全局身份验证令牌:
--auth-token-承载令牌,或base64格式的基本凭据,根据OpenAPI规范使用。
如果能够使用不同的身份验证令牌(例如每个客户端用户)发出请求,但不让LLM看到令牌,那就太好了。TBD。
