用途:@tanstack/ai-mcp 面向服务端,把 MCP(Model Context Protocol)接入 TanStack AI 的 chat() 循环。MCP 工具进入 chat() 的方式与手写工具相同,建议先阅读 ai-core/tool-calling 文档。不适用于浏览器或客户端代码,MCP 连接仅限服务端。
主要能力:客户端可连接第三方 MCP 服务器,读取其资源与提示词并放入 chat() 消息列表,可用内置 generate CLI 生成外部服务器工具签名的 TypeScript 类型;服务端可用 createMCPServer 通过 HTTP 或 stdio 暴露自己的工具、资源和提示词。安装:pnpm add @tanstack/ai-mcp。子路径包括 .(createMCPClient、createMCPClients、converters、types)、./stdio(仅 Node 的 stdioTransport)、./server(createMCPServer)、./server/stdio(serveMCPStdio)、./apps(createMcpAppCallHandler);./stdio 与 ./server/stdio 只能在 Node 代码中导入。
使用方式:托管服务器时从 @tanstack/ai-mcp/server 导入 createMCPServer,传入由 toolDefinition().server() 定义的工具,并在 HTTP 路由中调用 server.fetch(request),同时挂载到 GET、POST、DELETE。stdio 场景用 serveMCPStdio,日志走 console.error,stdout 仅承载协议消息。客户端用 createMCPClient 配置 http(Streamable HTTP)、sse 或 stdio 传输,也支持 @modelcontextprotocol/client 的自定义 Transport;连接失败抛 MCPConnectionError,优先协商 spec 2026-07-28,回退 2025 握手。类型安全有三种模式:自动发现 client.tools()、传入 toolDefinition 实例获得类型、或用 generate CLI 生成 ServerDescriptor 接口作为泛型。鉴权方面,服务器是 OAuth 资源服务器,可配 jwtVerifier 或 introspectionVerifier;客户端可传静态 Authorization 头或 OAuthClientProvider。
限制:createMCPServer 声明 spec 2026-07-28 和 2025;默认不保留 2025 会话(sessions: 'stateless'),此时 requestInput 对 2025 客户端抛错;可设 'reject' 或 'memory'。工具、资源、提示词是静态的,不宣告列表变更能力,拒绝订阅。spec 2026 下 requestInput 每次调用只能问一个问题,第二次抛错;execution: 'task' 工具在 2026 下内联执行。交互式授权码流程需自行构造 StreamableHTTPClientTransport 并调用 finishAuth(code)。未提及具体收费与价格信息。