OpenAPI工具服务器

一个将OpenAPI规范中的HTTP方法暴露为工具的服务,用于快速构建和测试API接口。

  • by rmasters
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 rmasters/mcp-openapi

使用说明

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.

运作原理

  1. MCP OpenAPI服务器使用OpenAPI规范URL进行初始化。
  2. 服务器获取并解析OpenAPI规范,并将每个路径操作注册为工具。
  3. 使用注册的工具启动FastMCP服务器。
  4. 当客户端请求工具时,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。