去年有个数据挺扎心:开发者平均要花4.7小时才能把单个REST API接进大模型工作流。不是写业务逻辑,是纯粹在搭脚手架——鉴权、参数映射、错误处理,重复劳动。
今天GitHub上冒出一个Go写的CLI工具,直接把这事压缩到30秒。不用手写MCP服务器,不用啃文档,一行命令把你的OpenAPI spec变成AI可调用的工具集。
这事儿的本质,是把"USB-C接口"的标准化思路搬进了AI工具层。
从重复造轮子到一键转换
作者是个泡在AI tooling里很久的产品工程师。他发现自己每次想让Claude或Cursor调用内部API,都得从头写一套MCP(Model Context Protocol,模型上下文协议)服务器。定义工具、映射参数、处理鉴权、组装HTTP请求,循环往复。
MCP是个开放标准,2024年底由Anthropic提出,现在Cursor、VS Code、Claude Desktop都支持。它想让AI助手像插U盘一样接入外部工具——问题是,每个"U盘"得手工焊电路板。
作者的痛点很具体:我的API明明有OpenAPI文档,描述得清清楚楚,为什么还要人肉翻译一遍?
于是有了mcp-server-openapi。输入命令,指向你的YAML或JSON spec,工具自动完成:
• 用kin-openapi解析spec,完整支持$ref引用、oneOf/anyOf/allOf等复杂结构
• 按标签过滤,只暴露标记为mcp的端点(你控制可见范围)
• 自动生成JSON Schema,路径参数、查询参数、请求体全自动映射
• 通过stdio或Streamable HTTP暴露工具,兼容所有MCP客户端
• 调用时自动组装HTTP请求,注入鉴权头,返回结构化响应
整个流程像把PDF扔进OCR软件——进去是机器可读的规范,出来是AI能用的接口。
技术实现的关键取舍
工具用Go写成,依赖两个核心库:kin-openapi做spec解析,mcp-go做协议层。作者没选Python或TypeScript,理由是Go的静态类型和单二进制部署对CLI工具更友好。
设计上有个聪明点:过滤机制。不是无脑暴露所有端点,而是只处理带mcp标签的操作。这让生产环境接入变得可控——你可以先标记几个只读接口试水,再逐步放开。
鉴权处理也做了务实选择。工具不帮你管理密钥,但支持通过环境变量注入headers。调用时自动把配置的鉴权信息写进请求,省去每个工具重复写Authorization逻辑的麻烦。
执行层直接走标准HTTP client,响应原样返回。作者没做额外的数据转换或缓存,保持透明——AI拿到什么,用户就看到什么,调试时少一层迷雾。
这个克制的设计反而降低了心智负担:你知道工具没偷偷改你的数据,出问题只查一层。
生态位上的精准卡位
现在市面上解决"AI接API"的路子分几派。一派是Zapier、Make这种无代码平台,拖拽连线,月付订阅;一派是LangChain、LlamaIndex这种编排框架,代码里写逻辑;还有一派是各大云厂商的AI Agent服务,锁死在自家生态。
mcp-server-openapi走的是第四条路:标准协议+本地执行+零托管成本。你的API留在原处,工具只是翻译层,数据不经过第三方服务器。
这对有合规要求的企业很解渴。金融、医疗行业的内部系统,很难把API凭证交给SaaS平台。这个方案里,密钥存在本地环境变量,调用链路完全可控。
开源协议是MIT,代码在GitHub公开。作者没提后续商业化计划,但留了扩展接口——比如自定义转换逻辑、企业级鉴权插件,社区可以按需fork。
实际落地的 friction 在哪
工具不是万能药。OpenAPI spec质量决定输出质量——如果原spec参数描述模糊、缺少示例,生成的工具也会让用户困惑。作者建议先用Swagger Editor把spec修整齐,再导入工具。
复杂鉴权场景也需要手工介入。OAuth 2.0的token刷新、多步握手流程,工具目前只支持静态header注入。动态鉴权得自己写中间件。
另一个限制是MCP协议本身。它定义了工具调用的标准格式,但没规定流式响应、长连接等高级特性。如果你的API是SSE推送或WebSocket,这个工具暂时接不住。
不过作者的原话是:"覆盖80%的REST API场景就够了,剩下的20%本来就需要定制。"
这个判断很产品经理——不做完美方案,做最大公约数。
GitHub仓库的README里有个细节:作者放了一张架构图,把OpenAPI spec、转换工具、MCP client画成流水线。图下方只有一句话——"Your API endpoints are now tools that any MCP client can call."
没有"革命性""颠覆性"的形容词。但开发者评论区里,最高赞回复是:"终于不用为每个API写一遍MCP boilerplate了,这周能早睡两天。"
如果让你选,愿意花30秒跑个命令,还是继续手写那47行脚手架代码?
热门跟贴