不用改一行代码,就能把任何符合 OpenAPI 规范的接口变成 MCP Server——这不是什么黑科技,而是已经可以落地的方法。前面我们聊过如何把 FastAPI 封装的 API 直接转成 MCP Server,但现实中,还有大量用其他语言或框架写的 API。能不能也做到零侵入转换?答案是肯定的。
以开源 BI 工具 Apache Superset 为例,它的公共 REST API 遵循 OpenAPI 规范,文档用 Swagger React UI 生成。那么,能不能把任意符合 OpenAPI 规范的 API 直接变成 MCP Server?顺着这个思路一搜,发现已经不止一个项目在做了。下面挑一个用 Python 写的工具,简单介绍下它的用法。
Swagger
Swagger 是一套用于设计、构建、文档化和使用 RESTful API 的开源工具集。它提供了一套标准化规范(OpenAPI 规范,原称 Swagger 规范),核心价值在于让前后端开发者能更高效地协作——后端改了接口,前端能立刻通过文档感知变化,再也不用手动维护那份永远对不上的 API 文档了。
什么是 Swagger
简单说,Swagger 就是一套围绕 OpenAPI 规范的生态工具。它用 YAML 或 JSON 格式描述 API 的端点、请求/响应格式、认证方式、参数类型以及示例。这样一份与语言无关的规范文件,是整个工具链的基石。
Swagger 的核心组件
- OpenAPI 规范(OAS):描述 API 结构的标准化格式,涵盖 URL 路径、请求/响应格式、认证方式、参数等。
- Swagger UI:自动生成交互式 API 文档,可以直接在浏览器里测试接口。
- Swagger Editor:基于浏览器的编辑器,用来编写 OpenAPI 定义文件。
- Swagger Codegen:根据 API 定义自动生成客户端代码(Ja va、Python 等)或服务端存根。
- Swagger Hub:商业化平台,集成设计、文档化和协作功能。
Swagger 的主要用途
- API 文档自动化:通过代码注释或定义文件自动生成可视化文档,省去手动维护的麻烦。比如 Spring Boot 集成 Swagger 后,访问
http://localhost:8080/swagger-ui.html就能看到全部 API。 - 前后端协作:前端开发者不用等后端完成,直接通过 Swagger 文档模拟请求,并行开发。
- API 测试:直接在 Swagger UI 里发送请求并看响应,连 Postman 都不用打开。
- 代码生成:根据 API 定义快速生成客户端 SDK,减少重复编码工作。
Swagger-MCP-Server
简介
Swagger-MCP-Server[3] 这个项目,正是基于 Swagger 文档作为接口约束标准,让用户通过自然语言和大模型(比如 ChatGPT)对话,就能触发网站接口调用,完成数据查询、分析和处理。具备即席分析、实时反馈的特点,体验很新鲜。
它的核心逻辑很简单:
call_api:调用外部 APIget_all_interfaces:从 OpenAPI 文档中获取所有接口get_detail_interface:根据描述匹配合适的 API
测试
- 修改代码
为了方便用 Gradio Chatbot MCP client 测试,稍微改了一下运行方式:
if __name__ == "__main__":
# Initialize and run the server
# mcp.run(transport="stdio")
mcp.run("sse")
- 运行服务
export OPEN_API_URL=https://petstore.swagger.io/v2/swagger.json
python swagger_mcp.server.py
这里直接用 Swagger 官方提供的宠物商店 API 做演示,经典的例子,跑一下就能看到效果。
- 前端演示
这些截图展示的就是在聊天框里通过自然语言调用宠物商店 API 的流程,真正做到了“说句话就调接口”。
