ARTICLE DETAIL

资讯详情

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

opencode 配置 bing-cn-mcp-server:MCP 接入与 settings.json 骨架

opencode 配置 bing-cn-mcp-server:MCP 接入与 settings.json 骨架 1. 为什么要在 opencode 里接 bing-cn-mcp-server如果你正在用 opencode 做本地 AI 编码大概率会遇到一个尴尬场景模型能改代码、能读文件但你让它「查一下这个库最新版本怎么用」「搜一下这个报错有没有人踩过」它就只能靠训练时的旧记忆硬答。opencode 本身是个很轻的编码 Agent 客户端它不内置联网搜索所以需要靠 MCPModel Context Protocol把外部工具挂进来。bing-cn-mcp-server 就是干这个的它把必应中文搜索包装成一个 MCP 工具模型在需要的时候可以主动调用它去抓网页、拿结果。这篇聚焦的是 opencode 配置 bing-cn-mcp-server 的完整流程面向需要联网搜索能力的本地 AI 编码场景。我会给出可复制的 settings.json / opencode.json 配置骨架说明怎么用 TaoToken 的统一 Key 和 API 通道把模型请求也一起收口再附上启动验证和几个高频报错的排查动作。适合已经装好 opencode、想让它「能搜能查」的开发者也适合刚接触 MCP、想找一个最小可跑通案例的人。先说清楚三个东西的关系不然后面容易绕opencode你用来跟模型对话、让它改代码的客户端桌面版和终端版都有。bing-cn-mcp-server一个本地 MCP 服务提供bing-cn_crawl_webpage这类搜索工具。TaoToken统一提供模型 API 通道和 Key 的地方opencode 里配置的模型请求可以走它省得每个模型单独配一遍。三者串起来之后你在 opencode 里问「帮我搜下 xxx 的最新用法」模型会先调 bing-cn 的搜索工具拿回网页内容再基于内容回答你。这就是我们要跑通的目标。2. 前置准备Node 版本、TaoToken Key 与 API 通道2.1 先把 Node 升到 20 LTS 以上这一步是很多人第一次就卡住的地方。bing-cn-mcp-server 依赖的 undici 用到了??这种较新的语法Node 16 及以下会直接抛SyntaxError: Unexpected token ??。我实测下来Node 22 是稳的20 LTS 也可以。先确认当前版本node -v npm -v如果node -v输出的是 v16 或更低去 Node 官网下 LTS 安装包覆盖安装即可。装完重开一个终端再node -v确认。Windows 上如果之前用 nvm 装过也可以nvm install 22再nvm use 22。注意升级 Node 后之前全局装的包建议重装一遍避免路径和二进制不匹配。2.2 安装 bing-cn-mcp-server全局安装命令很简单npm install -g bing-cn-mcp-enhanced装完先单独跑一下确认服务本身能起来bing-cn-mcp-enhanced如果它正常启动并等待输入或打印出 MCP 服务就绪的信息说明服务没问题。如果这里就报??的错回到 2.1 升 Node。这一步单独验证很重要因为后面 opencode 报错时你能快速判断是「服务本身起不来」还是「opencode 配置没接上」。2.3 拿 TaoToken 的 Key 和 API 地址opencode 要调模型就得有 API Key 和 Base URL。用 TaoToken 的好处是一个 Key 走统一通道模型切换时不用改一堆环境变量。操作路径打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册登录。进控制台 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 创建 API Key。在 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 复制你的 Key形如sk-xxxx。Base URL 用 https://taotoken.net/api 注意这个地址后面不加任何 UTM 参数直接填。Key 拿到后先放好下一步配置里要用。如果你还没想好长期用哪个模型可以先去模型对话 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 试几个确认哪个顺手再写进配置。3. 可复制配置opencode.json 骨架与 MCP 接入3.1 找到 opencode 的配置文件位置opencode 的配置分全局和项目两级。全局配置在用户目录下Windows 直接在文件管理器地址栏粘贴%USERPROFILE%\.config\opencode\macOS / Linux~/.config/opencode/这个目录里如果有opencode.jsonc或opencode.json随便挑一个编辑没有就新建一个opencode.json。注意项目级配置优先。如果你在某个项目根目录下也放了opencode.jsonopencode 会优先读项目里的那份全局配置被覆盖。排查「改了没生效」时先确认当前项目里有没有同名文件。3.2 MCP 配置骨架把下面这段粘进opencode.json。这是最小可跑通的骨架mcp段负责挂 bing-cn 搜索provider段负责把模型请求指向 TaoToken{ $schema: https://opencode.ai/config.json, mcp: { bing-cn: { type: local, enabled: true, command: [cmd, /c, npx, bing-cn-mcp] } }, provider: { taotoken: { npm: ai-sdk/openai-compatible, name: TaoToken, options: { baseURL: https://taotoken.net/api, apiKey: sk-你的Key }, models: { claude-sonnet-4-5: { name: Claude Sonnet 4.5 } } } } }几个字段逐个说清楚方便你按自己环境改字段作用取值说明mcp.bing-cn.typeMCP 安装位置本地填local远程填remotemcp.bing-cn.enabled是否启用true启用false关闭mcp.bing-cn.command启动命令本地服务用npx bing-cn-mcpmcp.bing-cn.url远程地址仅type: remote时需要provider.taotoken.options.baseURL模型 API 地址固定https://taotoken.net/apiprovider.taotoken.options.apiKey你的 Key从控制台复制macOS / Linux 用户注意command里的[cmd, /c, ...]是 Windows 写法。在 mac 或 Linux 上要改成command: [npx, bing-cn-mcp]因为cmd /c是 Windows 的 shell 调用方式mac 上没有 cmd。这一点不改的话mac 上会直接报「找不到命令」。3.3 关于远程 MCP 的写法如果你以后要把 MCP 放到远程服务器上type改成remote并补一个url字段bing-cn: { type: remote, enabled: true, url: https://你的服务器地址/mcp }本地场景用不到但知道这个结构以后扩展会顺手很多。4. 启动验证确认 MCP 真的挂上了4.1 桌面版怎么验证opencode 桌面版不能在终端里用opencode命令所以验证靠「实际用一次」。在 opencode 里随便问一个需要联网的问题比如「帮我搜一下 opencode 最新版本更新了什么」。如果配置成功对话过程里会显示它调用了bing-cn_crawl_webpage这个工具如果没显示说明 MCP 没挂上回到第 5 节排查。4.2 终端版怎么验证想更精确地看 MCP 列表装一个 opencode 终端版和桌面版不冲突可以共存。装好后运行opencode mcp list成功的话会列出已注册的 MCP 服务你能看到bing-cn在列表里状态是启用。这一步比桌面版直观因为它直接告诉你「服务注册成功没有」而不是等模型调用才发现问题。4.3 一次完整的成功链路理想情况下你在 opencode 里输入帮我搜一下 bing-cn-mcp-server 的 GitHub 仓库地址模型会先触发bing-cn_crawl_webpage拿到搜索结果再整理成回答。整个过程你能在工具调用记录里看到。看到这一步说明 MCP 接入 模型通道都通了。5. 本篇常见报错排查5.1 SyntaxError: Unexpected token ??这是最高频的一个报错栈里会出现undici/lib/core/util.js。原因就一个Node 版本太低。??是较新的逻辑赋值语法Node 16 不认。处理动作node -v低于 v20 就去升到 20 LTS 或 22。升完重开终端再跑一次bing-cn-mcp-enhanced确认服务能起。这个错跟 opencode 配置无关纯粹是运行环境问题先解决它再谈配置。5.2 opencode 里看不到 bing-cn 工具可能原因有三个按顺序查第一配置文件位置不对。确认你改的是 opencode 实际读取的那份。项目里有opencode.json的话全局那份会被忽略。第二JSON 语法错误。opencode 读配置时如果 JSON 不合法会静默跳过或报解析错。用编辑器格式化一下或者拿node -e JSON.parse(require(fs).readFileSync(opencode.json,utf8))验一下。第三enabled写成了false或者command路径不对。Windows 上npx有时需要完整路径如果npx不在 PATH 里把command改成[cmd, /c, npx, bing-cn-mcp]这种显式调用。5.3 mac 上提示找不到 cmd这就是 3.2 里说的平台差异。mac / Linux 把command改成command: [npx, bing-cn-mcp]去掉cmd和/c。改完重启 opencode。5.4 模型请求 401 或连不上如果 MCP 挂上了但模型对话报 401检查provider.taotoken.options.apiKey是不是复制全了有没有多余空格。Base URL 确认是https://taotoken.net/api不要带尾部斜杠或多余路径。Key 失效的话去 API Keys 页面重新生成一个。5.5 服务能起但搜索没结果bing-cn-mcp-enhanced单独跑能起但 opencode 里调用没返回内容通常是网络或搜索源的问题。先单独在终端跑一次服务手动触发一次搜索看有没有返回。如果服务本身搜不到那是服务侧的事跟 opencode 无关。6. 把模型通道也收口到 TaoTokenMCP 解决的是「能搜」模型通道解决的是「用哪个模型来搜和答」。这两件事分开配容易乱所以我建议一起收口到 TaoToken。如果你只是偶尔用按第 3 节的provider配置填一个 Key 就够了。如果你打算长期在 opencode 里做编码和 Agent 任务可以看下 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 它更适合高频调用场景省得每次单独算额度。配置上要注意的几点baseURL固定https://taotoken.net/api这是统一入口。apiKey用你在控制台创建的那个一个 Key 可以走多个模型。models段里列你想用的模型名字按 TaoToken 文档里的标识填。改完配置后重启 opencode再跑一次第 4 节的验证。如果 MCP 和模型都通了你就能在 opencode 里实现「边搜边写代码」的闭环模型先搜最新资料再基于资料改你的项目文件。最后给一个实用习惯每次改完opencode.json先用终端版opencode mcp list确认 MCP 注册状态再去桌面版里实际问一句。两步验证比直接猜要快得多也能帮你快速定位是配置问题还是服务问题。
返回列表