1. 火车票 MCP Server 调不通的真实场景
你大概率是这么个情况:在 Cherry Studio 里配好了本地 stdio 模式的火车票 MCP Server,命令写的是npx @wuchubuzai/tongchenglvxing-mcp-server,工具列表里也能看到query_train_tickets_list,但一到聊天窗口里问「帮我查 5 月 3 日哈尔滨到漠河的火车票」,模型要么装傻不调用工具,要么调用完返回一堆异常,甚至直接报模型通道错误。
这个 MCP Server 本身没坏。它是个本地进程,靠npx拉起来,通过标准输入输出跟客户端通信,query_train_tickets_list这个工具的执行也完全在本地完成。真正卡住的地方在「模型通道」——也就是 Cherry Studio 用哪个模型、走哪个 Base URL、这个模型支不支持工具调用(Function Calling)。Qwen3 14B 是支持工具调用的,但如果你在 Cherry Studio 里选的模型服务通道不对,或者 Base URL 指向了一个不兼容工具调用的端点,模型就不会按 MCP 协议去触发工具,表现出来就是「聊天里不触发工具」或者「返回异常」。
我试过把模型通道换成 TaoToken 提供的兼容 Base URL,再选支持工具调用的 Qwen3,query_train_tickets_list就能正常被触发,查票结果也能按车次列表返回。下面把整个排障和配置过程拆开讲,你照着改一遍基本能通。
2. TaoToken 前置:Key 和 Base URL 怎么拿
TaoToken 在这里的角色很单纯:它只负责提供模型 Key 和一个兼容 OpenAI 协议的 Base URL。本地 MCP Server 还是通过npx启动,query_train_tickets_list还是由本地进程执行,TaoToken 不碰你的本地进程,也不替代 Cherry Studio。你要做的就是把 Cherry Studio 的模型服务指向 TaoToken 的通道,让 Qwen3 能正常做工具调用。
第一步,去 TaoToken 官网创建 Key。地址是:
https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
注册登录后进控制台,找到 API Keys 页面,新建一个 Key。这个 Key 就是后面填进 Cherry Studio 的凭证。控制台入口:
https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
API Keys 页面:
https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
第二步,记下 Base URL。TaoToken 的 API 地址是:
https://taotoken.net/api
注意这个地址后面不加 UTM 参数,直接填到 Cherry Studio 的「API 地址」或「Base URL」字段里。Cherry Studio 里模型服务通常要求 Base URL 以/v1结尾或者自动补全,如果它提示需要完整路径,你就填https://taotoken.net/api,Cherry Studio 一般会自动拼接/v1/chat/completions。如果它要求你手动写全,那就填https://taotoken.net/api/v1,具体看你的 Cherry Studio 版本提示。
第三步,确认你要用的模型名。Qwen3 14B 在 TaoToken 通道里对应的模型标识,你可以在模型对话页面先试一下,确认这个模型能正常回话并且支持工具调用。模型对话入口:
https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite
如果你后面要长期跑编码类或 Agent 类任务,可以看下 Coding Plan:
https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite
接入文档在这里,遇到参数问题可以对照:
https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
3. Cherry Studio 可复制配置:模型通道 + MCP Server
这一节是核心,分两块:模型服务通道配置和 MCP Server 配置。两块都配对了,query_train_tickets_list才会被触发。
3.1 模型服务通道改成 TaoToken
打开 Cherry Studio,进「设置」→「模型服务」。如果你之前用的是别的通道,先新增一个自定义服务商,名字随便写,比如TaoToken。然后填三个关键字段:
| 字段 | 填写内容 |
|---|---|
| API 地址 / Base URL | https://taotoken.net/api |
| API Key | 你在 TaoToken 控制台创建的那个 Key |
| 模型 | 选支持工具调用的 Qwen3,比如 Qwen3 14B 对应的模型标识 |
填完点「检查」或「测试」,如果提示连接成功,说明通道通了。如果提示 401,检查 Key 有没有复制全;如果提示 404,检查 Base URL 是不是多写了或少写了/v1。Cherry Studio 不同版本对 Base URL 的处理略有差异,以它测试通过为准。
这里有个坑:有些人在 Cherry Studio 里选了 Qwen3 模型,但模型服务还是指向原来的默认通道,结果模型虽然能聊天,但不支持工具调用,MCP 工具就不会被触发。所以一定要确认你聊天时选的模型,是挂在 TaoToken 这个服务商下面的 Qwen3。
3.2 MCP Server 配置保持本地 stdio
MCP Server 这块不用改,还是本地 stdio 模式。在 Cherry Studio 的「MCP 设置」里新增一个 MCP Server,命令写npx的绝对路径,参数写包名。如果你不确定 npx 绝对路径,在终端里执行which npx(macOS/Linux)或where npx(Windows)拿到路径。
配置内容参考:
{ "mcpServers": { "tongchenglvxing-mcp-server": { "command": "npx", "args": [ "-y", "@wuchubuzai/tongchenglvxing-mcp-server" ] } } }如果你在 Cherry Studio 界面里填,就是命令填npx绝对路径,参数一行一个:-y和@wuchubuzai/tongchenglvxing-mcp-server。保存后,Cherry Studio 会尝试启动这个本地进程,工具列表里应该能看到query_train_tickets_list和查询当前系统时间的工具。
注意:MCP Server 是本地进程,启动失败通常是 Node.js 环境问题或 npx 路径不对。先在终端里手动跑一遍
npx -y @wuchubuzai/tongchenglvxing-mcp-server,看能不能正常启动,能启动再回 Cherry Studio 配。
3.3 聊天时勾选 MCP 工具
这一步原文里提过,但很多人漏掉:在 Cherry Studio 的对话界面,输入框附近有个工具/MCP 的勾选入口,你要把tongchenglvxing-mcp-server这个工具勾上。不勾的话,模型根本不知道有这个工具可用,自然不会触发query_train_tickets_list。
勾选之后,再确认当前对话使用的模型是 TaoToken 通道下的 Qwen3。两个条件同时满足,工具调用链路才完整。
4. 验证请求:让 query_train_tickets_list 真正跑起来
配置完成后,在 Cherry Studio 聊天窗口里发一句自然语言,比如:
使用火车票查询功能,查询 2025 年 5 月 3 日从哈尔滨到漠河的火车票信息如果通道和工具都配对了,你会看到模型先输出一段思考过程(Qwen3 支持思维链),然后触发query_train_tickets_list,工具返回车次列表,模型再总结成可读的查票结果。返回结构大致是这样:
{ "用户查询出发站": "哈尔滨", "用户查询到达站": "漠河", "车次列表": [ { "是否当日到达": "是", "出发火车站是否是经停站": "是经停站", "出发火车站是否是始发站": "是始发站", "车次号": "K7039", "出发车站名称": "哈尔滨", "出发日期": "2025-05-03", "出发时间": "17:30", "到达车站名称": "漠河", "到达日期": "2025-05-04", "到达时间": "08:00", "历时小时分钟": "14小时30分", "座位类型": [ { "类型": "硬卧", "价格": "xxx", "余票": "有" } ] } ] }如果你看到模型回复里带了车次号、出发到达时间、座位票价,说明query_train_tickets_list已经正常执行。如果模型只是闲聊没调工具,回到第 3 节检查模型通道和工具勾选。如果工具被调用了但返回异常,看下一节排查。
Qwen3 还支持在对话里用/think和/no_think切换思考模式。查票这种需要工具调用的场景,保持默认思考模式就行,模型会先推理再调工具,效果更稳。
5. 本篇常见错排查
5.1 聊天里不触发 query_train_tickets_list
最常见的原因是模型通道不支持工具调用,或者你选的模型不是支持 Function Calling 的版本。排查顺序:先确认 Cherry Studio 当前对话模型挂在 TaoToken 服务商下,再确认这个模型标识在 TaoToken 模型对话页面能正常回话。如果模型本身不支持工具调用,换支持工具调用的 Qwen3 版本。
第二个原因是 MCP 工具没勾选。Cherry Studio 对话界面的工具勾选是每次对话生效的,新建对话后要重新确认。
第三个原因是 MCP Server 没启动成功。去 Cherry Studio 的 MCP 设置里看进程状态,或者在终端手动跑npx -y @wuchubuzai/tongchenglvxing-mcp-server看报错。
5.2 返回异常或报模型通道错误
如果报 401,是 Key 问题,重新在 TaoToken 控制台创建一个 Key,注意不要有多余空格。如果报 404,是 Base URL 问题,确认填的是https://taotoken.net/api,不要多加路径。如果报模型不存在,是模型标识写错了,去模型对话页面确认正确的模型名。
还有一种情况是工具被调用了,但返回的数据结构解析失败。这通常是 MCP Server 版本问题,更新到最新版:
npx -y @wuchubuzai/tongchenglvxing-mcp-server@latest5.3 npx 启动慢或超时
npx第一次拉包会慢,Cherry Studio 启动 MCP Server 时有超时限制,可能还没拉完就判定失败。解决办法是先在终端手动跑一次,把包缓存到本地,再回 Cherry Studio 启动。或者用全局安装:
npm install -g @wuchubuzai/tongchenglvxing-mcp-server然后把 MCP 配置里的 command 改成全局安装后的可执行文件路径,args 留空或只写必要参数。这样启动更快,也不依赖 npx 每次拉包。
5.4 工具调用返回空结果
如果query_train_tickets_list被触发了,但返回空车次列表,检查日期格式是不是yyyy-MM-dd,出发站和到达站是不是写成了城市名或车站名。这个工具接受城市名或车站名,但日期格式必须严格。另外,查询日期太远或者线路本身没有车次,也会返回空,换个日期或线路再试。
6. 语义一致 CTA
排障和接入相关的,优先看 API Keys 和接入文档。API Keys 用来创建和管理你的模型 Key:
https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
接入文档用来对照 Base URL、模型名和请求参数:
https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
想先验证 Qwen3 能不能正常做工具调用,去模型对话页面直接试:
https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite
如果你后面要长期跑编码类或 Agent 类任务,比如让模型反复调用query_train_tickets_list做批量查票,可以看 Coding Plan:
https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite
整个链路里,TaoToken 只提供模型 Key 和兼容 Base URL,本地 MCP Server 还是npx启动,query_train_tickets_list还是本地执行。把 Cherry Studio 的模型通道指向 TaoToken,再选支持工具调用的 Qwen3,工具触发和查票返回就都正常了。