尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

把 Qoder 的模型通道改到 TaoToken 后,再用 DeepLink 添加 MCP Server

把 Qoder 的模型通道改到 TaoToken 后,再用 DeepLink 添加 MCP Server Qoder 现在支持用 DeepLink 添加 MCP Server深链格式是qoder://aicoding.aicoding-deeplink/mcp/add。但先别急着拼链接——Qoder 的 Chat 和 Quest 在工具调用阶段要靠模型持续输出官方通道额度一紧MCP 加好了也照样调不动。顺序建议是先换模型通道再玩深链打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册并创建一把 API Key把 Qoder 的 Base URL 填成https://taotoken.net/api让 Chat/Quest 的请求先走通。很多人把这两件事混在一起做结果深链点开了MCP Server 也确认添加了一到让它读表结构就卡住回头排查半天其实是模型调用那一层先断了。TaoToken 在这里只解决模型调用的 Key 和入口地址它不代替 MCP Server 自己的启动命令也不代替远程 MCP 的 URL。换句话说深链负责把「工具」搬进 QoderBase URL 负责让「大脑」有得用两条线分开配出问题才好定位。下面按实际操作的顺序来先落模型通道再拆name和base64EncodedConfig这两个参数然后给 PostgreSQL、GitHub、HTTP 三类 MCP Server 的可复制样例最后讲点开深链之后在确认框里该审什么、以及验证和排障。1. 先让 Qoder 的 Chat 和 Quest 走通模型通道1.1 DeepLink 搬的是 MCP 配置不搬模型额度DeepLink 的本质是一条带参数的 URL Scheme。Qoder 收到mcp/add之后把参数里的配置解析成本地的一份 MCP Server 记录然后弹确认框让你审。整条链路里没有任何一步涉及模型调用——它不会给你换模型也不会给你加额度。所以如果你现在的状况是「Qoder 里模型列表只有几个、Chat 到一半提示不可用」那跟深链一点关系都没有。先解决模型通道再去享受深链的便利。反过来如果你模型通道是通的但 MCP 工具在对话里始终不被唤起那大概率是 MCP 配置本身的问题跟模型无关。把这两类现象分清楚能省掉大量无效试错。1.2 在 Qoder 模型设置里填 TaoToken 的 Base URLQoder 的模型配置入口在设置里的模型服务Model Providers / 模型供应商区域添加一个自定义供应商需要填的字段大致是这几项供应商类型OpenAI 兼容或 Qoder 该版本标注的兼容协议 Base URLhttps://taotoken.net/api API KeyYOUR_API_KEY 模型 ID以模型广场当时列表为准几个容易填错的点提前说清楚。第一Base URL 是https://taotoken.net/api末尾不要加/v1也不要加任何查询参数带/v1是常见的 404 来源。第二API Key 用你在 TaoToken 控制台创建的那一串粘贴时注意别把首尾空格带进去。第三模型 ID 不要去别处抄直接看落地页上的模型广场列表里写的是什么就填什么我这边不写死具体型号因为列表会变。填完保存先别管 MCP直接在 Chat 里发一句「你好用一句话介绍你自己」。有回复说明模型通道通了报 401 就是 Key 不对或没带上报 404 就是 Base URL 多写了路径。Qoder 的 Quest 一般和 Chat 读同一套模型配置Chat 通了 Quest 基本就没问题。2. 拆开 mcp/add 深链的两个必要参数2.1 配置体里必须出现 command 或者 urlmcp/add深链最少要有两个 query 参数name和base64EncodedConfig。name是这条 MCP Server 在 Qoder 里显示的名字自己起建议带上用途比如postgres-local、github-team将来在工具列表里一眼能认出来。base64EncodedConfig是把一段 JSON 做 Base64 再 URL 编码之后的结果。这段 JSON 是 MCP Server 的启动描述规则很硬里面必须至少有command本地进程方式或者url远程 HTTP 方式之一两个都没有Qoder 解析出来是空配置确认框里会直接报缺字段。本地进程型通常长这样command是可执行程序args是参数数组env是额外的环境变量{ command: npx, args: [-y, modelcontextprotocol/server-postgres, postgresql://localhost:5432/mydb], env: {} }远程型只有地址没有本地进程{ url: https://mcp.example.com/mcp, headers: {} }两种形态不要混着写。你写了一个 HTTP 的url又塞了一个commandQoder 侧的行为取决于版本实现没必要给自己制造不确定性。2.2 本地生成 Base64 与 URL 编码拿到 JSON 之后要编码两次先 Base64再 URL 编码。Base64 结果里会出现、/、这几个字符直接放进 query string 会被浏览器或系统截断、误解所以必须转义成%2B、%2F、%3D。Linux 下用base64 -w0 postgres-mcp.jsonmacOS 的 base64 选项不一样去掉换行用base64 -i postgres-mcp.json | tr -d \nWindows PowerShell 里读文件再转[Convert]::ToBase64String([IO.File]::ReadAllBytes((Resolve-Path postgres-mcp.json)))不过手动两步容易出错我更推荐直接用 Node 一把生成完整深链把 JSON 写在命令里输出就是可以直接点或者直接发给同事的链接node -e const c{command:npx,args:[-y,modelcontextprotocol/server-postgres,postgresql://localhost:5432/mydb]};console.log(qoder://aicoding.aicoding-deeplink/mcp/add?namepostgres-localbase64EncodedConfigencodeURIComponent(Buffer.from(JSON.stringify(c)).toString(base64)))encodeURIComponent那一步就是在做 URL 编码别省。生成出来的链接可以先用浏览器打开试一次看看 Qoder 有没有被唤起来。3. 三类常用 MCP Server 的深链配置样例3.1 PostgreSQL连接串放 args注意别指向生产库PostgreSQL 的 MCP Server 通常通过连接串拿到库的访问信息。本地开发用的话连接串指到本机或测试实例就行{ command: npx, args: [-y, modelcontextprotocol/server-postgres, postgresql://reader:passwordlocalhost:5432/mydb], env: {} }这里要提醒一句MCP Server 能读什么完全取决于你给它什么连接串。别把生产库的连接串写进深链然后到处发。真要连测试环境也建议用只读账号。另外包名以 MCP Server 项目仓库的说明为准不同实现的名字可能不一样别照抄一个不存在的包名然后卡在npx报 404。3.2 GitHubtoken 优先走本地环境变量GitHub 的 MCP Server 需要 Personal Access Token。很多人图省事把 token 写在env里然后深链一转发token 就跟着链接出门了。正确做法是让env引用本地已经存在的环境变量或者填一个占位、等 Qoder 写入配置后你再去本地补{ command: npx, args: [-y, modelcontextprotocol/server-github], env: { GITHUB_PERSONAL_ACCESS_TOKEN: YOUR_GITHUB_TOKEN } }YOUR_GITHUB_TOKEN这个位置不要放真值。深链会被浏览器记录、被聊天工具缓存、被粘贴板历史留住它不是一个安全的密钥容器。同理TaoToken 的YOUR_API_KEY也绝对不要出现在env或者深链里——模型 Key 只在 Qoder 的模型设置里填一次跟 MCP 配置是两码事。3.3 HTTP MCP Server只写 url鉴权头单独处理远程 MCP Server 的配置最短一个url就能用{ url: https://mcp.example.com/mcp, headers: {} }如果服务端需要 Authorization 头也不要在这个 JSON 里写明文 token填好占位先让深链过一遍等 Qoder 把配置写进本地之后再改真实值。远程 MCP 的可用性还取决于网络能不能到、服务端有没有起来这部分跟 Qoder 无关点开深链之前先用 curl 确认一下地址是活的更省时间。4. 点开深链之后在确认框里审什么4.1 逐项核对 command、args、env、url深链被唤起后Qoder 会弹一个确认对话框把解析出来的配置展示给你。这个框是最后一道人工闸门别一路点确定。要看的就四样command是不是你预期的可执行程序args里的参数顺序对不对env里有没有意外带进来的明文密钥url指向的域名是不是你要连的那个。尤其是从别人那转来的深链Base64 是看不出来的必须靠这个确认框。Base64 不是加密它只是编码任何人拿到链接都能解回原文所以「藏」在里面毫无意义反而会让你放松警惕。4.2 不要把 Key 和密码编进深链这条单独拎出来说。API Key、数据库密码、GitHub token、内网地址都不该出现在mcp/add的参数里。原因是传播路径完全不受你控制发到群里、贴进 issue、写进文档链接每经过一次复制就多一份副本而且原始参数随时可解。要分享配置给同事正确做法是发一段 JSON 加一条生成命令让对方自己本地跑一遍生成深链各自填各自的凭据。多花三十秒省掉一次密钥轮换。5. 用一次 Chat 和 Quest 验证两条链路5.1 先单独确认模型通道验证顺序很重要先模型后 MCP。在 Qoder 的 Chat 里发一条普通问题确认有正常回复没有报错。如果这里就不通别往下走先去 TaoToken 模型对话 用同一把 Key 发一条消息看看是 Key 的问题还是 Qoder 配置的问题。这一步能把「通道不通」和「MCP 不通」彻底分开。5.2 再验证 MCP 工具是否被唤起模型通了之后回到添加了 MCP Server 的会话里问一个必须用到工具的问题比如刚加了 PostgreSQL MCP就问「帮我看看当前库里有哪些表」。预期是 Qoder 发起一次工具调用你确认之后返回结果。如果模型正常回答但完全不提工具说明 MCP 没被加载或者没被唤起如果工具被调起了但报连接错误那问题在 MCP Server 那一侧跟模型通道无关。Quest 里同理任务模式下工具调用会更密集验证效果更明显。6. 深链点了没反应、MCP 不出现时的排查顺序6.1 深链协议与编码类问题点了链接毫无动静先看浏览器有没有弹「是否打开 Qoder」这类系统提示。没有弹说明系统没把qoder://协议关联到客户端或者 Qoder 没在运行。先把 Qoder 打开再点一次链接。如果打开是打开了但报参数解析失败八成是 Base64 或者 URL 编码出了问题。最常见的两个Base64 末尾的没转成%3D被当成参数分隔吃掉了或者 JSON 里的中文没做 UTF-8 处理编码出来是乱码。重新生成一遍别手工改链接。还有一种情况是 JSON 本身合法但缺字段——既没有command也没有urlQoder 会直接判定这条配置不可用。回去检查base64EncodedConfig解码之后的内容。6.2 MCP 添加成功但工具调不动配置文件写进去了工具列表里也能看到但对话中始终不触发通常是三类原因。一是 MCP Server 进程起不来比如npx拉包失败、Node 版本不对这种一般在 Qoder 的 MCP 日志里有记录去看原始报错比猜快。二是连接信息不对数据库地址、端口、账号密码错一个就连不上把同样的连接串拿到本地psql试一次就能确认。三是模型本身对工具调用的支持程度不同模型在 function calling 上的表现差异明显如果当前模型在工具调用上比较弱可以在模型设置里换一个再试。排障时按这个顺序走模型通道 → MCP 配置解析 → MCP 进程启动 → MCP 连接目标 → 模型工具调用能力。从下往上查每一步只改一个变量比来回乱试有效得多。7. 跑通之后顺手做的三件事7.1 在模型对话里复核这次调用Qoder 里第一次成功发起 MCP 工具调用之后回到 TaoToken 模型对话 用同一把 Key 发一条消息确认模型列表和 Key 的对应关系没搞混。如果你同时配了多个供应商这一步能帮你确认 Qoder 实际在用哪一个。7.2 长期写代码先看套餐和用量如果 Qoder 要跟着你每天写代码、跑 Quest调用量不会小。Coding Plan 的信息在 Coding Plan 页面用量和 Key 管理在 控制台 API Keys。建议把 MCP 调试期和大规模使用期分开看先在控制台观察几天实际消耗再决定要不要调整。7.3 团队分享深链的正确姿势最后回到深链本身。给同事发配置时发的是生成命令加一份不含密钥的 JSON让对方本地生成自己的mcp/add链接。深链的价值在于省去手填字段的麻烦不在于传递凭据。谁需要连数据库谁自己填自己的只读账号谁需要访问 GitHub谁自己配自己的 token。这样即使链接被转发到公开渠道也不会造成任何泄露。MCP 深链和模型通道是两条独立的线先各配各的再合起来验证。真出问题时你会发现这个顺序让你少走很多弯路。
返回列表