工具定义写过两遍的人,该看看 TanStack AI 这个 createMCPServer。
机制一句话说得完。你本来传给聊天接口的那份 toolDefinition,它原样拿过来,直接当成 MCP 服务对外暴露,一份定义两处用,不用再抄一遍。支持的运行时一串,TanStack Start、Workers、Deno、Bun、Node 都在。配对的 MCP 客户端那一侧接上去,类型安全一路贯通。
一份定义两处用这半句是全场重心。前面几篇讲的是工具怎么变多,这条讲的是重复怎么变少,每多一种协议就多一份维护,能省则省。跟前面设计文档那篇接得上,规则写一次、处处生效,和需求写一次、处处对齐,是同一种省法。
类型安全贯通那点也值得记。跨进程的接口最容易在改名时断裂,两端共用一套类型,等于把这类事故掐在编译期。跟前面账本那篇的可追责是同一路思路,早发现比晚补救便宜。
我留的疑问有两处。暴露成 MCP 后的鉴权和限流没提,公网可打的口子得自己补;旧版运行时的兼容范围公告没写。
已经在给工具加 MCP 的,把现在手写那层定义删掉,直接用这份试,跑一遍类型检查看是否少改几处。
话题来源 @tan_stack
8.6K阅读 ❤️164 x.com/…↗ 已改写,非原文转载
134 浏览 0 评论
0 反应













