使用说明
使用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:项目元数据和依赖关系。
入门指南
- 放置您的OpenAPI规范(例如。,
openapi_spec.json)在项目根中。 - 按照中的指定安装依赖项
pyproject.toml. - 跑
bookstore_mcp_server.py要启动服务器,请执行以下操作:uv run bookstore_mcp_server.py - 使用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.
