资讯动态

claude mcp add 完 bing-cn-mcp-server?TaoToken 的 Key 这样补进 Claude Code 环境变量

发布时间:2026/9/18 14:07:05 来源:尧图企业网站定制
照着 MCP 文档把 bing-cn-mcp-server 挂进 Claude Code/mcp里 tools 列得漂漂亮亮真让它搜一条却半天不回调——这种卡顿大概率不在 MCP 那一层而是 Claude Code 自己的模型通道没通。TaoToken 在这里补的恰好是这一环先去 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册、建一把 Key再把 Base URL 填成 https://taotoken.net/api然后回到原文那套claude mcp add把必应搜索接上。整条链路是两段独立的配置先后顺序搞反了你会一直在 MCP 里找问题而问题根本不在 MCP 里。下面按原文的推进节奏走先分清 Host、Client、Server 谁在跟谁说话再补模型通道接着才是claude mcp --help到claude mcp add --transport streamable-http最后落到~/.claude.json的mcpServers和/mcp验证。MCP 的 url 和 Authorization 还是按 ModelScope 那边的必应搜索地址填TaoToken 只负责给 Claude Code 提供 Key 和模型 Base URL两件事别混在一份配置里。1. bing-cn-mcp-server 加上了为什么工具调用还是断的1.1 先把症状说清楚tools 在回调不在很多人描述这个问题的原话是「MCP 加成功了但不好用」。具体表现通常是三种/mcp面板里能看见bing-search这个 server状态是 connected可问它「帮我搜一下某某关键字」时Claude Code 要么不发起工具调用要么发起了但返回一段和搜索毫无关系的话另一种是它老老实实说「我无法访问实时信息」仿佛根本不知道有这个工具。这三种表现里只有极少一部分是真出在 MCP Server 上。因为/mcp面板能显示 connected说明 Host 到 Server 的握手、transport 协商、header 已经过了那一段是通的。真正断的地方往往是 Claude Code 这一侧把「用户提问 工具清单」打包发给模型的那一步——模型通道本身有问题工具清单再全也没人接。1.2 链路里缺的那一环Claude Code 自己的模型通道原始文章把 MCP 的三层结构讲得很清楚但读完容易产生一个错觉只要 MCP Server 配好了Claude Code 就什么都能干了。实际上 Claude Code 是个客户端程序它自己也要连一个模型服务把上下文送出去、把工具调用意图拿回来。这个模型服务需要两样东西一个能填进ANTHROPIC_BASE_URL的地址一把能通过鉴权的 Key。官方通道的额度、并发和多环境切换是开发者最常卡住的地方。你手上有三台机器、四个项目每台都要配一遍 Key切模型还要改文件重开终端这时候把模型通道统一到一个兼容入口上成本会比逐个环境维护低得多。这也是为什么这一段要放在claude mcp add之前——先让 Claude Code 自己能正常说话再谈它能不能调用必应搜索。2. Host、Client、ServerMCP 里谁在向谁要数据2.1 Host 是 Claude CodeServer 是必应搜索MCP 的模型不复杂难的是名字听着像三层网络设备。按官方定义Host是运行模型的那个应用在这里就是 Claude CodeClient是 Host 内部为每个 Server 建立的连接器一个 Server 对应一个 ClientServer是提供能力的一方本篇里就是 bing-cn-mcp-server它背后对接的是必应搜索。关键点在于 Client 不是独立进程它是 Host 里的一个连接对象。所以你在~/.claude.json里写的每一段mcpServers本质上是在告诉 Claude Code「启动时帮我建这样一个 Client去连这个地址」。理解这一层后面调 header、调 transport 类型就不会觉得是在瞎试。2.2 Tools、Resources、Prompts 在必应搜索场景里各是什么MCP Server 对外暴露三种能力原文讲得比较抽象落到必应搜索上就很好懂Tools模型可以主动调用的函数比如bing_search参数是查询词、条数、时间范围。这是唯一会被模型「决定要不要用」的一类。Resources只读的数据条目Server 侧提供、由 Host 决定怎么塞进上下文通常需要用户显式引用模型不会自己伸手去拿。Prompts预置的提示词模板用户在界面上选一个就能把一段结构化指令贴进来适合「按固定格式整理搜索结果」这类重复动作。必应搜索 MCP Server 主要给的是 Tools。也就是说模型必须能理解「我现在可以调用 bing_search」这件事并且有权限把调用请求发出去。模型通道不通它连这句话都读不完整自然就不会调。3. 补模型通道在 TaoToken 建 Key把 Claude Code 指向 https://taotoken.net/api3.1 打开官网建 Key顺手把模型 ID 记下来这一步对应原文里「准备 MCP Server 的鉴权信息」只是对象换成了 Claude Code 自己。打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 完成注册登录进控制台创建一把 API Key记成YOUR_API_KEY这样的占位符别直接贴到会提交到 Git 的文件里。同一页面里还能看到模型广场。模型 ID 一律以模型广场当时的列表为准把你要用的那个复制下来存成YOUR_MODEL_ID。这一步别凭记忆写模型名带日期后缀、带版本号的情况很常见写错一个字符Claude Code 启动时不会给你特别友好的提示只会在请求时失败。顺手把这把 Key 在 TaoToken 控制台 里留个备注比如「本机 Claude Code」后面多环境排查时能省不少事。3.2 写进 ~/.claude/settings.json 的 envClaude Code 读配置有两条路环境变量或者~/.claude/settings.json里的env段。后者更稳因为它不依赖你从哪个终端启动、有没有 source 过 rc 文件。文件长这样{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: YOUR_MODEL_ID } }三个字段的分工要分清ANTHROPIC_BASE_URL决定请求发到哪里填https://taotoken.net/api末尾不要带/v1ANTHROPIC_AUTH_TOKEN放刚创建的 KeyANTHROPIC_MODEL放从模型广场复制的模型 ID。如果你的项目里已经有这个文件只加缺的字段别整份覆盖——里面可能还有权限、钩子之类的设置。临时用环境变量也行适合只想在当前终端试一次的场景export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENYOUR_API_KEY export ANTHROPIC_MODELYOUR_MODEL_ID claudeWindows 上用setx或者改用户环境变量都可以逻辑一样。3.3 Base URL 上不要挂 /v1也不要挂 UTM这一节全是踩出来的细节。第一ANTHROPIC_BASE_URL填https://taotoken.net/api不要写成https://taotoken.net/api/v1。Claude Code 自己会在后面拼路径多一层/v1就是 404而且报错信息不会告诉你 URL 拼重了。第二网页上给你的带utm_source参数的链接是给人点的用来注册、创建 Key、看模型广场和用量。那个参数是统计用的填进ANTHROPIC_BASE_URL会让工具把它当成路径的一部分请求直接歪掉。官网地址和接口地址是两回事这一点在每一处配置里都要自己检查一遍。提示有些终端里粘贴长命令会带上不可见字符导致 header 或 URL 尾部多一个空格。改完配置先cat ~/.claude/settings.json看一眼比对着报错猜快得多。如果你的工作流习惯用命令行起 Claude Code也可以装 TaoToken 的 CLI用参数把上面三个值一次带进去npm install -g taotoken/taotoken taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m YOUR_MODEL_ID注意-u后面同样只到/api不带/v1也不带任何 UTM 参数。两种方式选一种就行不要一边用 CLI 传参、一边在settings.json里留着另一组值那样排查时会分不清到底哪份生效。4. claude mcp --help 到 claude mcp add --transport streamable-http4.1 先看清子命令再动手加模型通道通了之后回到原文的 MCP 主线。第一步先看能力清单claude mcp --help输出里会列add、list、get、remove这些子命令。接着看add的用法claude mcp add --help重点看三个参数--transport决定连接方式--scope决定这条配置写到哪里--header用来带鉴权。bing-cn-mcp-server 这种远程 HTTP 服务用streamable-http如果是早期只提供 SSE 的地址用sse。transport 和服务端实际协议对不上表现就是加了之后一直 connecting或者直接 failed。4.2 加上 bing-cn-mcp-serverurl 和 Authorization 用 ModelScope 那边的下面这条命令的结构是原文那套url 和 token 仍以 ModelScope 必应搜索服务页给出的信息为准这里只做占位claude mcp add --transport streamable-http --scope user bing-search \ --header Authorization: Bearer YOUR_MODELSCOPE_TOKEN \ ModelScope 必应搜索服务页给出的 streamable-http 地址三个容易写错的地方bing-search是你在本机给这个 server 起的名字后面/mcp面板和对话里都用它。原文里 server 包名是 bing-cn-mcp-server本地起名可以短一点但要和~/.claude.json里的 key 对上。--header里的 Authorization 是ModelScope 那侧的 token跟你在 TaoToken 创建的YOUR_API_KEY完全不是一回事。前者给必应搜索 MCP Server 做鉴权后者给 Claude Code 连模型用。把两把 Key 搞混是这一篇里最常见的错误。参数顺序以你本机--help的输出为准。不同版本对--header放在 name 前还是后容忍度不一样写完claude mcp list确认一下。4.3 scope 怎么选user 还是 project--scope user写进~/.claude.json所有项目都能用--scope project写进项目里的.mcp.json可以跟着仓库走让团队共享同一套 MCP 配置--scope local只对当前项目当前用户生效适合临时试验。必应搜索这种和项目无关的通用能力放user比较合适。如果放project记得.mcp.json会被提交里面的 Authorization 得换成环境变量引用否则 token 就跟着仓库一起出去了。5. ~/.claude.json 里的 mcpServers 长什么样5.1 逐字段对一遍结构不想用命令行的时候直接改文件也可以。原文提到查看~/.claude.json里的mcpServers加完之后大致是这样一个结构{ mcpServers: { bing-search: { type: streamable-http, url: ModelScope 必应搜索服务页给出的 streamable-http 地址, headers: { Authorization: Bearer YOUR_MODELSCOPE_TOKEN } } } }type对应命令行的--transporturl是服务端地址headers是每次请求要带的头。这个文件里不要出现ANTHROPIC_BASE_URL之类的东西模型通道的配置在~/.claude/settings.json的env段或者环境变量里两个文件职责不同。混着放一是容易覆盖二是排查时你会不知道哪份生效。如果你用的是项目级 scope同样的结构放在项目根目录的.mcp.json外面可能少一层包裹以 Claude Code 实际写出来的格式为准。5.2 改完先检查语法再检查字段名手改 JSON 最容易犯的错是尾逗号和引号。改完先做一次语法检查python3 -m json.tool ~/.claude.json /dev/null echo OK输出 OK 说明格式没问题报错就按提示的行号去看。字段名方面headers是复数写成header会被忽略然后你会看到 MCP 一直是未授权状态但日志里未必写得很直白。注意~/.claude.json里往往还存着历史会话、项目路径等大段内容改之前备份一份比出事之后靠记忆恢复划算。6. 用 /mcp 验证先验模型通道再验工具调用6.1 第一步单独验模型通道不要一上来就让它搜东西。先claude进交互界面问一句和搜索无关的话比如「把这个函数的参数按字母序排一下」。能正常回答说明ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL三个值都对上了。这一句如果失败先别碰 MCP。常见的 401 是 Key 写错或者复制时带了空格404 多数是 Base URL 多了/v1或者挂了 UTM 参数提示模型不存在就回 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 的模型广场重新确认模型 ID。同一把 Key 也可以在模型对话页里先发一条消息把模型通道和 MCP 彻底分开验证定位会快很多。6.2 第二步看 /mcp 面板和工具调用模型能应答后在 Claude Code 里输入/mcp面板会列出已连接的 server、transport 类型和可用工具数量。看到bing-search是 connected并且工具列表里有搜索相关的条目说明 Host 到 Server 这一段也通了。接着直接问一句需要实时信息的话比如「搜一下最近关于 MCP 协议的更新给我三条并附上来源」。正常的流程是模型判断需要搜索、发起bing_search调用、MCP Server 返回结果、模型基于结果组织回答。你在界面上通常能看到工具调用的折叠块。6.3 结果不对劲时先分清是哪一半的问题如果面板是 connected但模型始终不调工具把问题拆成两半看让模型做一件不需要搜索的事它能做说明模型通道没问题那么大概率是工具的 description 没被正确传给模型或者模型本身对 tool use 的支持有限。换个工具调用能力明确的模型试试同时确认/mcp里工具列表确实被展开过。如果模型发起调用了但工具返回错误那问题在 MCP 那侧Authorization 是否过期、url 是否需要换 transport 类型、服务端是否限流。这时候翻 Claude Code 的日志比反复重问有效。7. 排障这几个报错基本都出在配置层7.1 连模型都失败了401 与模型 ID 对不上invalid api key或401确认ANTHROPIC_AUTH_TOKEN里放的是你从官网创建的 Key占位符YOUR_API_KEY没有被真的写进去。另外确认没有在 Key 前后多出引号或换行。model not found一类提示模型 ID 必须从模型广场当时列表里复制不要用记忆里的名字。模型广场上架、下架、改名都是常态配置里写死一个旧名字过一段时间就会突然失效。7.2 URL 相关的 404多写的路径和参数这一类几乎只有两种成因ANTHROPIC_BASE_URL末尾多了/v1或者把带utm_source的落地页地址填了进去。正确的写法只有https://taotoken.net/api。排查顺序是先看环境变量再看~/.claude/settings.json最后看 shell 的 rc 文件里有没有残留的旧 export。7.3 MCP 连不上transport 类型和 header 写法/mcp里显示 failed 或一直 connecting先确认type和服务端实际协议一致streamable-http和sse不能混用再确认headers里的 Authorization 用的是 ModelScope 侧 token而不是模型通道那把 Key最后确认 url 是服务页上完整的那一条没有被截断。还有一种情况是两处配置打架命令行加过一次、手改文件又加了一次名字不同但指向同一个服务。claude mcp list里看到重复项用claude mcp remove name清掉多余的比留着两份猜哪份生效要干脆。8. 两段配置都通了之后顺手对一下这次调用到这一步~/.claude/settings.json里的模型通道和~/.claude.json里的mcpServers各管一段互不干扰。可以用claude mcp get bing-search再看一眼存下来的完整配置确认 url、transport、header 和你预期的一致然后再回 模型对话 页用同一把 Key 发一条消息对照刚才在 Claude Code 里的调用看两条路径是不是都记上了。要长期拿它写代码Coding Plan 那边可以看一下套餐够不够用需要再建 Key 换环境走 控制台 API KeysClaude Code 的环境变量字段对照接入文档 里有逐项说明比在报错里反推省时间。一句提醒MCP Server 的 url 和 Authorization 属于 MCP 那一侧模型通道的 Base URL 和 Key 属于 Claude Code 这一侧中间不要互相借。分清楚了以后再加别的 MCP Server只需要重复第 4、5 节不用再动模型配置。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价