返回市场
MCP开放API服务器

MCP开放API服务器

作者:rmasters8 星标更新:2025-02-24

项目介绍

MCP-OpenAPI

一个基于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

工作原理

  1. MCP-OpenAPI服务器初始化时需要一个OpenAPI规范URL。
  2. 服务器获取并解析OpenAPI规范,并将每个路径操作注册为工具。
  3. 启动带有已注册工具的FastMCP服务器。
  4. 当客户端请求一个工具时,MCP服务器向API发起HTTP请求并返回响应。

支持的OpenAPI/Swagger版本

Swagger 2.0OpenAPI 3.0OpenAPI 3.1
:x::heavy_check_mark::heavy_check_mark:

此包支持OpenAPI 3.0和3.1规范,包括JSON和YAML格式。

我们使用了openapi-parser,它似乎非常全面,并支持解析外部规范的引用。

未来的配置选项

[!INFO] 这些选项尚待实现。

限制端点

默认情况下,所有端点都被暴露为工具。你可以限制哪些端点被暴露:

  • 按路径模式,
  • 按HTTP方法,
  • 明确列出要暴露的个别操作,
  • 使用OpenAPI标签选择路由。

处理API认证

MCP-OpenAPI向目标API发起API请求——它可以使用全局认证令牌:

  • --auth-token - 根据OpenAPI规范使用的Bearer令牌或base64格式的基本凭证。

能够使用不同的认证令牌(例如按客户端用户)发起请求会很好,但不希望让LLM看到这些令牌。待定。