OpenAPI转MCP工具

将OpenAPI规范转换为可通过模型上下文协议(MCP)访问的工具集,支持动态API暴露和LLM集成。

  • by rajkumarbestha
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 rajkumarbestha/openapi-mcp-server

使用说明

使用OpenAPI规范文件创建MCP服务器

  • 使用模型上下文协议(MCP)可以轻松地将任何OpenAPI规范转换为一组LLM可访问的工具。

  • 此示例使用https://fakerestapi.azurewebsites.net/index.htmlAPI

MCP架构

  • MCP主机:希望通过MCP访问数据的程序,如Claude Desktop、IDE或AI工具。
  • MCP客户端:与服务器保持1:1连接的协议客户端。
  • MCP服务器:通过标准化的模型上下文协议公开特定功能的轻量级程序。
  • 数据源:MCP服务器可以安全访问的计算机文件、数据库和服务。
  • 远程服务:MCP服务器可以连接到的互联网上可用的外部系统(例如,通过API)。

现在让我们MCPise我们的API!

概述

此存储库提供了一个模型上下文协议(MCP)服务器的示例,该服务器使用OpenAPI规范动态公开API端点作为工具。它利用FastMCP框架根据OpenAPI规范(如Swagger Bookstore API)生成服务器,并提供客户端和交互式聊天机器人界面,用于使用基于LLM的代理(通过LangChain和LangGraph)与服务器交互。

特性

  • API动态暴露: 加载OpenAPI规范(例如。, open-api-spec.json)并通过FastMCP将其GET端点作为可调用工具公开。
  • LLM集成: 客户端和测试脚本使用OpenAI模型(通过LangChain)与服务器交互,允许将自然语言查询映射到API调用。
  • 书店示例: 主要的例子是Bookstore API,但该体系结构是通用的,可以适用于任何OpenAPI规范。
  • 流媒体和SSE: 服务器使用服务器发送事件(SSE)与客户端进行实时通信。

主要组件

  • API动态暴露: 加载OpenAPI规范(例如。, open-api-spec.json)并通过FastMCP将其GET端点作为可调用工具公开。
  • LLM集成: 客户端和测试脚本使用OpenAI模型(通过LangChain)与服务器交互,允许将自然语言查询映射到API调用。
  • 书店示例: 主要的例子是Bookstore API,但该体系结构是通用的,可以适用于任何OpenAPI规范。
  • 流媒体和SSE: 服务器使用服务器发送事件(SSE)与客户端进行实时通信。

主要组件

  • bookstore_mcp_server.py:从OpenAPI规范启动FastMCP服务器,将端点作为工具公开。
  • bookstore_mcp_client.py:连接到MCP服务器并使用LLM代理调用工具的示例客户端。
  • bookstore_interactive_agent.py:用于使用自然语言查询测试服务器的交互式聊天机器人。
  • pyproject.toml:项目元数据和依赖关系。

入门指南

  1. 放置您的OpenAPI规范(例如。, openapi_spec.json)在项目根中。
  2. 按照中的指定安装依赖项 pyproject.toml.
  3. 跑 bookstore_mcp_server.py 要启动服务器,请执行以下操作:
    uv run bookstore_mcp_server.py
    
  4. 使用bookstore_mcp_client.py或bookstore_interactive_agent.py与服务器交互:
    uv run bookstore_mcp_client.py
    # or
    uv run bookstore_interactive_agent.py
    
For more details, see the code and comments in each file.