首页/新闻资讯/正文详情

从零开始开发一个 MCP Server:用 TaoToken 统一 Key 打通本地工具链

发布时间:2026/9/27 18:22:25 来源:云帆数科 栏目:资讯中心
从零开始开发一个 MCP Server:用 TaoToken 统一 Key 打通本地工具链
1. 为什么我要自己写一个 MCP ServerMCP Server 这个词最近出现频率很高但很多人第一次接触时会把它想复杂。简单说它是让大模型调用外部工具的一套标准协议你把自己写的脚本、内部 API、数据库查询包装成一个「工具」AI 就能在对话里按需调用。适合谁适合手里有一堆零散脚本、想让 AI 帮你串起来用的开发者也适合想把公司内部服务接进 AI 工作流的人。我这次的目标不是做一个玩具 demo而是搭一个真正能在本地工具链里跑起来的 MCP Server并且用 TaoToken 统一管理 Key 和 API 通道。为什么强调统一 Key因为当你同时用 Cline、CC Switch、Claude Code 这类工具时每个工具都配一遍 Key、改一遍 base_url维护成本很高。TaoToken 提供的是一个兼容 OpenAI 风格的 API 入口把模型调用收敛到一个 Key 上MCP Server 里只需要读环境变量不用关心背后换没换模型。这篇会交付三样东西一个可复制的 MCP Server 启动脚本、Cline 和 CC Switch 的配置骨架settings.json / config.toml、以及一套连通性验证动作。跟着做你能在半小时内跑通第一个 MCP Server并确认请求链路是通的。2. TaoToken 前置准备拿到统一 Key 和 API 地址在写代码之前先把「通道」准备好。TaoToken 的官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 。注意 API 地址后面不加任何 UTM 参数配置里就写这个干净的地址。你需要做两件事第一注册并创建一个 API Key。进入控制台后找到 API Keys 页面新建一个 Key复制出来先存到本地临时文件里。这个 Key 就是后面所有工具共用的那一个。第二确认你要用的模型名。TaoToken 的模型对话页面可以直接测试模型是否可用建议先在网页里发一条消息确认 Key 和模型都正常再去配本地工具。这一步能帮你排除掉一半的「配置写了但请求 401」的问题。提示Key 不要硬编码进代码或提交到 Git。统一用环境变量注入MCP Server 里通过 process.env 读取这样换 Key 时只改一处。如果你打算长期跑编码类 Agent可以顺带了解一下 Coding Plan它更适合高频调用场景只是偶尔测试的话按量用 API 就够了。相关入口模型对话 https://taotoken.net/api?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite API Keys https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 。3. 从零写一个 MCP Server可复制的启动脚本这里我用 Node.js 写一个最小可用的 MCP Server功能是「查询本地项目信息」——比如读取当前目录的文件列表、返回指定文件的行数。这个例子足够简单但覆盖了 MCP Server 的核心结构声明工具、定义参数 schema、实现处理函数、通过 stdio 传输启动。先初始化项目mkdir mcp-local-tools cd mcp-local-tools npm init -y npm install modelcontextprotocol/sdk zod npm install -D typescript types/node创建tsconfig.json{ compilerOptions: { target: ES2022, module: Node16, moduleResolution: Node16, outDir: ./build, rootDir: ./src, strict: true, esModuleInterop: true, skipLibCheck: true }, include: [src/**/*], exclude: [node_modules] }修改package.json加上 type 和 build 脚本{ type: module, scripts: { build: tsc chmod 755 build/index.js } }然后写核心文件src/index.tsimport { McpServer } from modelcontextprotocol/sdk/server/mcp.js; import { StdioServerTransport } from modelcontextprotocol/sdk/server/stdio.js; import { z } from zod; import { readdir, readFile } from fs/promises; import path from path; const server new McpServer({ name: local-tools, version: 1.0.0, capabilities: { tools: {} }, }); // 工具一列出目录文件 server.tool( list_files, { dir: z.string().describe(要列出的目录路径) }, async ({ dir }) { try { const files await readdir(dir); return { content: [{ type: text, text: JSON.stringify(files, null, 2) }], }; } catch (e) { return { content: [{ type: text, text: Error: ${(e as Error).message} }], isError: true, }; } } ); // 工具二统计文件行数 server.tool( count_lines, { file: z.string().describe(文件路径) }, async ({ file }) { try { const content await readFile(file, utf-8); const lines content.split(\n).length; return { content: [{ type: text, text: 文件 ${path.basename(file)} 共 ${lines} 行 }], }; } catch (e) { return { content: [{ type: text, text: Error: ${(e as Error).message} }], isError: true, }; } } ); async function main() { const transport new StdioServerTransport(); await server.connect(transport); console.error(MCP Server 已启动等待 stdio 连接); } main();构建npm run build构建产物在build/index.js。这个 Server 本身不调用大模型所以暂时不需要 TaoToken 的 Key但下一步我们要让它具备「调用模型」的能力Key 就派上用场了。3.1 让 MCP Server 通过 TaoToken 调用模型给 Server 加一个工具用 TaoToken 的 API 做一次模型调用。这样 AI 工具在调用你的 MCP Server 时Server 内部再走统一通道请求模型链路就串起来了。server.tool( ask_model, { prompt: z.string().describe(要问模型的问题) }, async ({ prompt }) { const apiKey process.env.TAOTOKEN_API_KEY; const baseUrl process.env.TAOTOKEN_BASE_URL || https://taotoken.net/api; if (!apiKey) { return { content: [{ type: text, text: 缺少 TAOTOKEN_API_KEY 环境变量 }], isError: true, }; } const res await fetch(${baseUrl}/v1/chat/completions, { method: POST, headers: { Content-Type: application/json, Authorization: Bearer ${apiKey}, }, body: JSON.stringify({ model: process.env.TAOTOKEN_MODEL || gpt-4o-mini, messages: [{ role: user, content: prompt }], }), }); const data await res.json(); const text data.choices?.[0]?.message?.content ?? JSON.stringify(data); return { content: [{ type: text, text }] }; } );注意 base_url 写https://taotoken.net/api路径拼/v1/chat/completions。模型名按你在模型对话页面确认过的填不要凭记忆写。4. 接入本地工具settings.json 与 config.toml 配置骨架MCP Server 写好了接下来把它挂到本地 AI 工具上。不同工具的配置文件格式不一样这里给两个最常见的骨架。4.1 ClineVS Code 插件配置Cline 的 MCP 配置通常放在 VS Code 的 settings.json 里或者插件自己的 MCP 配置面板。核心结构是mcpServers{ mcpServers: { local-tools: { command: node, args: [/absolute/path/to/mcp-local-tools/build/index.js], env: { TAOTOKEN_API_KEY: 你的Key, TAOTOKEN_BASE_URL: https://taotoken.net/api, TAOTOKEN_MODEL: gpt-4o-mini } } } }args里必须是build/index.js的绝对路径相对路径在插件启动子进程时经常解析失败这是踩过的坑之一。4.2 CC Switch 配置config.tomlCC Switch 用 TOML 管理多个通道配置结构大致如下[[servers]] name local-tools command node args [/absolute/path/to/mcp-local-tools/build/index.js] [servers.env] TAOTOKEN_API_KEY 你的Key TAOTOKEN_BASE_URL https://taotoken.net/api TAOTOKEN_MODEL gpt-4o-mini如果你在 CC Switch 里同时管理多个模型通道把 TaoToken 作为一个 provider 配进去base_url 填https://taotoken.net/apiKey 填同一个这样切换工具时不用重复填 Key。注意配置文件里的 Key 是明文建议把配置文件加入.gitignore或者用系统环境变量引用而不是直接写值。5. 验证请求链路三步确认跑通配置写完不代表通了必须做连通性验证。我一般分三步。第一步单独跑 MCP Server确认进程能起来TAOTOKEN_API_KEY你的Key node build/index.js如果看到 stderr 输出「MCP Server 已启动」说明 Server 本身没问题。注意 MCP 用 stdio 通信正常运行时 stdout 是给协议用的日志要打到 stderr否则会污染协议流。第二步用官方 Inspector 调试工具连上去手动调用工具npx modelcontextprotocol/inspector node build/index.js启动后打开它提示的本地地址在界面里选择ask_model工具输入一句「你好回复两个字」点运行。如果返回了模型输出说明 MCP Server → TaoToken → 模型这条链路是通的。第三步回到 Cline 或 CC Switch在对话里让 AI 调用这个工具。比如输入「用 local-tools 的 ask_model 工具问一下今天适合写代码吗」。AI 触发工具调用后你能在工具执行记录里看到返回内容。三步都过链路就算跑通了。任何一步失败问题范围都能缩小第一步失败是 Server 代码问题第二步失败是 Key 或网络问题第三步失败是工具配置问题。6. 本篇常见错误排查报错Cannot find module modelcontextprotocol/sdk/server/mcp.js多半是 Node 版本太低或 module 配置不对。确认 Node 18package.json里有type: moduletsconfig.json的 module 设为 Node16。Inspector 连不上界面一直转圈检查启动命令里 node 后面的路径是不是build/index.js以及有没有先执行npm run build。没构建就没有这个文件。调用 ask_model 返回 401Key 没读到或写错了。先在终端echo $TAOTOKEN_API_KEY确认环境变量存在再检查配置文件里 env 字段的 Key 有没有多余空格。返回 404base_url 拼错了。正确写法是https://taotoken.net/api请求路径/v1/chat/completions。不要写成https://taotoken.net/api/v1再拼/v1/...会重复。模型名报 not found去模型对话页面确认当前 Key 可用的模型列表配置里用确认过的名字不要照搬别处的示例。Cline 里工具列表不显示配置文件 JSON 格式错误或者 args 用了相对路径。用 JSON 校验工具过一遍路径改绝对路径。7. 下一步把 Key 管理和工具链收敛到一处跑通第一个 MCP Server 之后你会发现真正麻烦的不是写 Server而是工具多了以后 Key 和通道散落各处。我的做法是所有本地工具统一读同一组环境变量base_url 固定指向 TaoToken模型名按需在配置里覆盖。这样换模型、换 Key 只改一个地方。如果你要接更多工具接入文档里有完整的参数说明和示例可以先看文档再动手接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。需要新建或轮换 Key 时去 API Keys 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 。想先验证模型是否可用直接在模型对话里发一条消息最快https://taotoken.net/api?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。长期跑编码 Agent 的话Coding Plan 会更省心https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。最后留一个实用建议MCP Server 的日志一定走 stderr工具处理函数里所有异常都要 catch 并返回isError: true否则一个未捕获的异常会让整个 stdio 连接断掉AI 工具那边只会显示「工具无响应」排查起来很费时间。

相关推荐

5118网站怎么做的拆解:3个核心注意事项与SEO实操指南
5118网站怎么做的拆解:3个核心注意事项与SEO实操指南

5118网站怎么做的拆解:3个核心注意事项与SEO实操指南 网站被黑挂马,首页突然变成赌博广告,或者打开速度慢得像蜗牛?这时候你第一反应往往是惊慌,不知道服务器是不是中毒了,还是代码里有后门。别慌,这种时候盲目重启服务器或者重装系统往往治标… · 2026/9/27 18:22:19

电子商务网站系统建设实训心得源码下载
电子商务网站系统建设实训心得源码下载

电商实训心得揭秘:保姆级建站教程避坑指南 昨天凌晨三点,老张的电商后台突然弹出一堆乱码,首页直接被替换成了博彩广告。他慌得给我打电话,声音都在抖:“兄弟,我站被黑了?挂马了?咋办?”别慌,这行干久了,这种事儿见得太多了。网站被黑挂马不知道怎… · 2026/9/27 18:21:36

ChatGPT只是开始,AI Agent才是终局:用TaoToken统一Key打通Cline与CC Switch配置
ChatGPT只是开始,AI Agent才是终局:用TaoToken统一Key打通Cline与CC Switch配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 18:21:36

从英国AI超算延期看token8341:电力、选址与绿色算力技术解析
从英国AI超算延期看token8341:电力、选址与绿色算力技术解析

从英国AI超算延期看token8341:电力、选址与绿色算力技术解析 后端工程师、算法工程师、AI应用开发者们,你们在压测推理接口时盯着的P99延迟曲线,可能正被三千公里外一座变电站的负载能力悄悄决定。英国那台规划中的最大AI超算,因… · 2026/9/27 18:57:36

怎么做公司的宣传网站多少钱?避坑与安全实战指南
怎么做公司的宣传网站多少钱?避坑与安全实战指南

怎么做公司的宣传网站多少钱?避坑与安全实战指南 别被那些花里胡哨的模板骗了。很多老板以为做个公司宣传站就是套个壳,结果上线没两天,页面乱码、后台被黑,甚至直接被搜索引擎降权。这时候再问 多少钱 能修,那得加钱。 模板网站太丑不够用… · 2026/9/27 18:57:30

开源项目 Spring Boot + React (Ant Design Pro) 配 TaoToken:快速构建后台管理系统
开源项目 Spring Boot + React (Ant Design Pro) 配 TaoToken:快速构建后台管理系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 18:57:30

frontend-design skill 配 TaoToken:Claude Code 插件 settings.json 骨架与验证
frontend-design skill 配 TaoToken:Claude Code 插件 settings.json 骨架与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 18:57:30

做网站什么价格?3个实战案例拆解隐形成本
做网站什么价格?3个实战案例拆解隐形成本

做网站什么价格?3个实战案例拆解隐形成本 网站做好了没人访问,这大概是很多老板最头疼的事。你以为花了钱买了个门面,结果没人进,生意还是靠线下。今天咱们不聊虚的,直接拿三个真实的 实战案例 ,把 做网站什么价格… · 2026/9/27 18:57:30

Manus闪电外迁裁员背后:AI企业出海,TaoToken统一Key/API通道能解决哪些配置难题?
Manus闪电外迁裁员背后:AI企业出海,TaoToken统一Key/API通道能解决哪些配置难题?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 18:57:24

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码