通过 OpenAPI 规范,可以将普通的 HTTP API 快速转换为 MCP Server,使其可以被 MCP Server 网关直接识别和调用。 首先,只需为已有的 API 提供标准化的 OpenAPI 描述(如路径、参数、返回结构),MCP Gateway 就能自动生成 MCP-compatible 接口,实现工具自动曝光。这意味着,无需手写适配代码,也不必额外定义 JSON‑RPC schema,几乎“一步到位” 。 MCP Server 基于 OpenAPI 带来的结构化契约,确保工具调用过程中参数准确、数据格式清晰、运行安全。这种方式绕过了传统提示词驱动中常见的解析失误和格式混乱问题,大大提高了交互的稳定性和开发效率。
基于OpenAPI的规范,提供给MCP Server网关

借助 MCP 与 OpenAPI 的结合,我们实现了“标准即接口”的统一原则:任何遵循 OpenAPI 的 REST API,都能立刻成为 MCP Server 的一部分,实现与模型的无缝对接。简而言之,从 HTTP API → OpenAPI 描述 → MCP Server 网关 → 模型调用,整个流程无需冗余代码,是对接大语言模型应用的高效利器。
所以,找一个开源成熟的MCP Server网关,就可以快速提供了。
自行开发一个符合自身业务要求的网关
针对没有 OpenAPI 规范的旧接口,使用 FastMCP 自行开发 MCP Server ,让它更符合自身的业务要求,更灵活控制。目前,FastMCP 是将传统 HTTP API 快速转为 MCP Server 的高效框架之一,封装了协议处理与工具暴露能力。
简单的代码示例:
from fastmcp
import FastMCP
import httpx
mcp = FastMCP(name="My Business MCP")
@mcp.tool
async def create_order(item_id: str, quantity: int) -> dict:
"""调用旧系统创建订单"""
async with httpx.AsyncClient() as client:
resp = await client.post(
"https://api.api.com/createOrder",
json={"item": item_id, "qty": quantity},
timeout=5.0 )
return resp.json()
if __name__ == "__main__":
mcp.run(transport="streamable-http")
这个框架提供了@mcp.tool、@mcp.resource等注解,直接运行就是一个符合MCP协议的服务了。
如果要切换为 stdio、sse形态的方式,直接mcp.run(transport=”stdio”) 或 mcp.run(transport=”sse”) 就可以了,非常简洁、简单。
运行:
uvicorn mcp_gateway:app --port 9000
MCP Server的测试
Cherry studio为示例,其他的客户端工具也大同小异。

