一个基于Model Context Protocol的服务器,它通过OpenAPI规范暴露HTTP方法作为工具。
[!WARNING] 这是一个概念验证,尚未完全测试和文档化。
每个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。
| Swagger 2.0 | OpenAPI 3.0 | OpenAPI 3.1 |
|---|---|---|
| :x: | :heavy_check_mark: | :heavy_check_mark: |
此包支持OpenAPI 3.0和3.1规范,包括JSON和YAML格式。
我们使用了openapi-parser,它似乎非常全面,并支持解析外部规范的引用。
[!INFO] 这些选项尚待实现。
默认情况下,所有端点都被暴露为工具。你可以限制哪些端点被暴露:
MCP-OpenAPI向目标API发起API请求——它可以使用全局认证令牌:
--auth-token - 根据OpenAPI规范使用的Bearer令牌或base64格式的基本凭证。能够使用不同的认证令牌(例如按客户端用户)发起请求会很好,但不希望让LLM看到这些令牌。待定。