ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

10 分钟用 TaoToken 跑通 MCP 天气 Skill 的本地联调

10 分钟用 TaoToken 跑通 MCP 天气 Skill 的本地联调 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度1. 目标与产物让本地 MCP 天气 Skill 真正被模型调用起来这篇内容要解决的问题很具体你已经在本地写好了一个 MCP 天气 Skill它通过 stdio 方式和客户端通信输入城市名输出一段天气 JSON。现在你想让对话模型在聊天过程中自动调用这个工具而不是靠你手动去跑脚本。最终产物是一套可复现的本地联调链路MCP 客户端配置、启动命令、一次完整的工具调用请求与返回以及模型 ID 和超时排查点。整条链路里TaoToken 出现在两个位置一是拿 API Key二是把 MCP 客户端背后的模型供应商指向它。你从 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册并创建 Key然后把客户端的 Base URL 设为 https://taotoken.net/api对话模型选用 MiniMax M3。这样模型侧负责理解“帮我查一下北京天气”并生成工具调用本地 MCP 天气 Skill 负责真正返回天气 JSON两边通过 stdio 联调打通。需要先明确一点MCP 的 stdio 联调本质上是“客户端进程启动一个本地子进程通过标准输入输出交换 JSON-RPC 消息”。模型并不直接和你的天气脚本说话它只负责决定“要不要调用工具、调用哪个工具、传什么参数”。真正执行工具的是 MCP 客户端。理解这一点后面的配置和排障会顺很多。本文不含排行分数也不对任何模型做跑分对比。涉及模型能力、价格、可用型号的部分一律以官网当前展示为准因为这类信息变动频繁写死在文章里反而会误导你。2. 操作步骤先把天气 Skill 跑通再谈接入在接入模型之前必须确认本地 MCP 天气 Skill 自己能独立跑通。否则一旦模型调用失败你分不清是 Skill 的问题还是接入的问题。2.1 天气 Skill 的最小实现下面是一个用 Node.js 写的 stdio MCP 天气 Skill 示例。它注册了一个名为get_weather的工具接收city参数返回一段天气 JSON。示例数据是模拟的真实项目里你可以替换成任意天气数据源。// weather-mcp-server.js import { Server } from modelcontextprotocol/sdk/server/index.js; import { StdioServerTransport } from modelcontextprotocol/sdk/server/stdio.js; import { CallToolRequestSchema, ListToolsRequestSchema, } from modelcontextprotocol/sdk/types.js; const server new Server( { name: weather-skill, version: 1.0.0 }, { capabilities: { tools: {} } } ); // 声明工具 server.setRequestHandler(ListToolsRequestSchema, async () ({ tools: [ { name: get_weather, description: 查询指定城市的当前天气, inputSchema: { type: object, properties: { city: { type: string, description: 城市名称例如 北京 }, }, required: [city], }, }, ], })); // 处理调用 server.setRequestHandler(CallToolRequestSchema, async (request) { if (request.params.name ! get_weather) { throw new Error(未知工具: ${request.params.name}); } const city request.params.arguments?.city ?? 未知城市; const weather { city, temperature: 24, unit: celsius, condition: 多云, humidity: 58, updated_at: new Date().toISOString(), }; return { content: [{ type: text, text: JSON.stringify(weather) }], }; }); const transport new StdioServerTransport(); await server.connect(transport);安装依赖并本地自测npm init -y npm install modelcontextprotocol/sdk node weather-mcp-server.js如果进程启动后没有报错、安静地等待输入说明 stdio 通道已经就绪。你可以用一条手写的 JSON-RPC 消息做冒烟测试确认工具列表能返回echo {jsonrpc:2.0,id:1,method:tools/list,params:{}} | node weather-mcp-server.js正常情况下会看到包含get_weather的返回。这一步过了再进入接入环节。2.2 拿 Key 与设置默认供应商打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册账号进入控制台创建 API Key。创建完成后把 MCP 客户端使用的模型供应商 Base URL 设为 https://taotoken.net/apiKey 填你刚创建的那一串。模型 ID 选用 MiniMax M3具体写法以官网文档为准。这里有个常见误区很多人以为把 Base URL 一改、Key 一填就完事了结果请求直接 401 或 404。原因通常不是 Key 本身而是客户端把请求发到了错误的路径或者模型 ID 拼写和官网不一致。所以下面配置里的每一项都要和官网核对。3. TaoToken 接入与配置MCP 客户端配置 JSON不同 MCP 客户端的配置字段名不完全一样但核心结构一致一个mcpServers对象里面每个键是一个服务名值是启动命令、参数和环境变量。下面给出一个通用配置 JSON把本地天气 Skill 和模型供应商信息都放进去。{ mcpServers: { weather-skill: { command: node, args: [/absolute/path/to/weather-mcp-server.js], env: { TAOTOKEN_API_KEY: YOUR_API_KEY, TAOTOKEN_BASE_URL: https://taotoken.net/api, TAOTOKEN_MODEL: MiniMax-M3 } } }, model: { provider: taotoken, base_url: https://taotoken.net/api, api_key: YOUR_API_KEY, model_id: MiniMax-M3, timeout_ms: 60000 } }几个关键点command和args必须用绝对路径。相对路径在不同客户端的工作目录下会解析失败这是 stdio 联调最常见的坑之一。TAOTOKEN_BASE_URL固定为 https://taotoken.net/api不要多加斜杠或路径后缀。model_id写 MiniMax M3 对应的官方 ID以官网文档为准。不同客户端对模型 ID 大小写敏感度不同建议直接复制官网的值。timeout_ms先给 60000。天气 Skill 本身很快但模型侧生成工具调用、网络往返都需要时间超时设太短会误判为失败。如果你用的是 Claude Code配置落在settings.json字段使用ANTHROPIC_*系列如果是 Codex配置落在config.toml。CC Switch 这类工具通常涉及三件套配置供应商、Key、模型切换时注意别把 Base URL 和模型 ID 配串。无论哪种客户端Base URL 都指向 https://taotoken.net/api。启动命令方面如果你用官方 CLI可以先安装再启动npm i -g taotoken/taotoken taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m MiniMax-M3这条命令把 Key、Base URL、模型 ID 一次性传入适合快速验证链路是否通。跑通之后再回到客户端的配置文件里固化下来。4. 可验证结果与失败分支配置完成后启动 MCP 客户端在对话里输入“帮我查一下北京的天气”。预期会发生一次完整的工具调用。下面是一次典型的请求与返回。模型侧生成的工具调用请求示意{ jsonrpc: 2.0, id: 2, method: tools/call, params: { name: get_weather, arguments: { city: 北京 } } }本地天气 Skill 返回{ jsonrpc: 2.0, id: 2, result: { content: [ { type: text, text: {\city\:\北京\,\temperature\:24,\unit\:\celsius\,\condition\:\多云\,\humidity\:58,\updated_at\:\2025-01-01T00:00:00.000Z\} } ] } }模型拿到这段 JSON 后会用自然语言回复你例如“北京当前多云气温 24 摄氏度湿度 58%”。到这里stdio 联调就算跑通了。失败分支要能快速定位401Key 无效或没带上。检查客户端是否真的把TAOTOKEN_API_KEY传进了请求头以及 Key 是否被复制时带了空格。404Base URL 或模型 ID 写错。确认 Base URL 是 https://taotoken.net/api模型 ID 与官网一致。工具未被调用模型没生成工具调用。检查工具描述是否清晰、inputSchema是否合法以及客户端是否把工具列表成功注册给了模型。stdio 无响应子进程没起来或路径错误。手动执行node /absolute/path/to/weather-mcp-server.js看是否报错。超时把timeout_ms调大同时确认本地网络到 https://taotoken.net/api 的连通性。排查顺序建议从下往上先确认本地 Skill 能独立跑再确认客户端能列出工具最后确认模型能生成调用。这样每一层都是可验证的不会一上来就怀疑模型。5. 限制、成本与模型选择stdio 联调的限制很明确它只适合本地开发和单机验证。子进程随客户端启动而启动、随客户端退出而退出不适合多用户并发或远程部署。如果你要做成服务需要换成支持远程传输的 MCP 方式这超出本文范围。成本方面模型调用按 token 计费具体单价以官网为准。天气 Skill 本身不产生模型费用它只是本地执行。真正花钱的是模型理解你的问题、生成工具调用、以及把 JSON 转成自然语言这几步。MiniMax M3 在这个场景里够用因为任务本质是“意图识别 参数抽取 结果转述”不需要特别重的推理。模型选择上建议以官网当前可用型号和价格为准。不同模型对工具调用的支持程度、参数格式的遵循度会有差异换模型后最好重新跑一遍本文的验证流程。如果发现某个模型经常不按 schema 传参优先检查工具描述是否足够明确而不是急着换模型。最后再强调一次接入地址注册和创建 Key 走 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end API 请求走 https://taotoken.net/api。把这两个地址和 MiniMax M3 的模型 ID 配对正确本地 MCP 天气 Skill 的 stdio 联调基本就不会卡在接入层。剩下的就是你的天气数据源和工具描述打磨了。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度
返回列表