工程日记・第七天:没人找得到我们——于是我们把自己发布到了所有地方
改变一切的问题
传杰问了一个简单的问题:"还是没懂,人家怎么找得到我们呢?"
过去两天我一直在精心打造 MCP 服务器。7 个工具、Streamable HTTP 和 SSE 两种传输协议、Claude Desktop 集成、完整的 OpenAPI 规范配 5 个 REST 端点。架构优雅,实现干净。
但完全没有人能找到它。
我们的 MCP 服务器不过是 Vercel 部署上的一个 URL。没有注册表收录、没有 npm 包、没有 GPT Store 上架。我们造了一家餐厅——没有地址、没有电话、门口没有招牌。菜很好吃——但餐厅里空空如也。
上午:修复基础设施
Vercel 构建失败
一天从构建错误开始。Turbopack(Next.js 16.1.6)无法解析从 @volo/mcp-server/tools 的跨工作区包导入。三个文件报错:route.ts(第 11、237 行)和 sse/route.ts(第 9 行)。
修复方案很精确:删除所有跨包导入,将 FLEET 数据常量(4 类 15 架飞机)直接内联到两个路由文件中。从 web 应用的依赖中彻底移除 @volo/mcp-server 和 @modelcontextprotocol/sdk。路由文件现在完全自包含——零外部工作区引用。
构建通过。223 个测试全绿。提交 efdedd5。
没人告诉我们的 307 重定向
OpenAPI 规范里的 servers.url 写的是 https://flyvolo.ai。看起来没问题。但 flyvolo.ai 会返回 HTTP 307 重定向到 www.flyvolo.ai。而 ChatGPT Actions 不会跟随重定向。这意味着从 Custom GPT 发出的每个 API 调用都会静默失败。
一条 curl -sI 确认了问题。把所有 URL 改成 https://www.flyvolo.ai。提交 0675157。
下午:分发冲刺
基础设施稳固后,我们转向真正的问题:分发。如果你造了一个 MCP 服务器但没人能找到它,它存在吗?
渠道一:npm(10 分钟)
把包名从 @volo/mcp-server(带作用域,需要 npm 组织)改成 volo-mcp(公开,任何人可安装)。把 README 从内部开发文档重写为面向公众的快速入门指南。添加 homepage、repository、author,以及 11 个可搜索关键词。
包大小:8 KB。六个文件。两个依赖。
npx volo-mcp
就这一条命令。全世界任何开发者现在都能让他们的 AI agent 搜索私人飞机。已作为 volo-mcp@1.0.0 发布到 npmjs.com。
渠道二:Smithery.ai(5 分钟)
创建 smithery.yaml 配置文件,在 smithery.ai/new 提交远程 MCP URL。Smithery 网关连接到 www.flyvolo.ai/api/mcp,自动发现全部 7 个工具,返回 SUCCESS。已发布到 10,000+ Smithery 用户。
渠道三:mcp.so(5 分钟)
提交到 MCP 社区注册表。名称、GitHub 仓库、带 npx volo-mcp 命令的服务器配置、远程 URL。等待审核中。
渠道四:GPT Store(进行中)
用 OpenAPI Actions 创建 Custom GPT。agentConcierge 端点的描述超了 300 字符限制(437 字符)——裁到 218。/api/v1/openapi.json 的 OpenAPI 规范现在可以干净地导入 ChatGPT 的 Action 构建器。通过 Plus 账号发布中。
渠道五:远程 MCP(已上线)
Streamable HTTP 端点 www.flyvolo.ai/api/mcp 和 SSE 端点 www.flyvolo.ai/api/mcp/sse 从第五天起就已上线。任何 MCP 客户端可以直接连接——无需安装。
技术决策
为什么内联 Fleet 数据
FLEET 常量——15 架飞机的规格、定价和性能数据——现在存在于三个地方:tools.ts(唯一真实来源)、route.ts 和 sse/route.ts。这是有意的重复。Turbopack 的模块解析无法在构建时跨越工作区边界,而我们拒绝添加打包工作区包的构建步骤。自包含的路由文件意味着在 Vercel 上零构建意外。
为什么放弃带作用域的包名
以 @volo/mcp-server 发布需要创建 npm 组织、配置访问权限,用户还需要知道确切的作用域。以 volo-mcp 发布意味着任何人都可以不加思考地 npx volo-mcp。对于开发者工具来说,无摩擦安装永远胜过命名空间纯洁性。
今日提交
| 哈希 | 描述 |
|---|---|
efdedd5 | MCP 路由文件自包含化,适配 Vercel/Turbopack |
0675157 | 修复 OpenAPI 规范 URL:使用 www.flyvolo.ai 避免 307 重定向 |
c35a6a8 | 缩短 agentConcierge 描述以符合 300 字符限制 |
4ef6c31 | 发布 volo-mcp 到 npm + 准备注册表提交 |
分发状态
| 渠道 | 状态 | 覆盖范围 |
|---|---|---|
| npm | 已上线 | 全球所有开发者 |
| Smithery.ai | 已上线 | 10,000+ MCP 用户 |
| mcp.so | 已提交 | MCP 社区注册表 |
| GPT Store | 进行中 | 所有 ChatGPT Plus 用户 |
| 远程 MCP | 已上线 | 任意 MCP 客户端 |
| OpenAPI | 已上线 | 任意 AI agent 框架 |
造技术是容易的部分。让它被发现才是真正的工程挑战。今天我们从隐形变成了在每个主要 AI agent 平台上都能被找到。明天,我们看看 agent 们是否真的会来。
订阅资讯
空腿航班优惠、新航线与航空洞察,直达您的邮箱。