ARTICLE DETAIL

资讯详情

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

MCP Server 四步开发,把 Cursor 的模型通道改到 TaoToken 后照做

MCP Server 四步开发,把 Cursor 的模型通道改到 TaoToken 后照做 很多跟着 MCP Server 教程走的朋友卡住的往往不是 registerTool、registerResource 那几行代码而是最前面的一步打开 Cursor输入「帮我初始化一个 Node.js TypeScript 项目」之后AI 直接回一句没有可用模型 Key后面所有指令全部瘫痪。我这次先把 Cursor 的模型通道切到 TaoToken拿好 Key 再照着四步注册 Server、Tool、Resource、Prompt 走一遍全程没再被模型通道卡过。TaoToken 官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册、创建 Key、看模型广场都在这里完成Base URL 则填写 https://taotoken.net/api记得不要加 /v1。下面就是完整经过。1. 先拿 Key把 Cursor 的模型通道切到 TaoToken1.1 注册并创建 API Key打开 TaoToken注册登录之后进控制台左侧找到 API Keys 页面点创建。创建完会得到一串以 taotoken 开头的密钥整串复制下来占位符统一写作 YOUR_API_KEY。后续无论填进 Cursor、写环境变量还是粘贴到命令行都用这一串不要只在文章里看我写。模型 ID 不要拍脑袋填。同一个服务可能同时挂多个模型具体 ID 到 TaoToken 模型广场 看当时列表为准。选一个支持长上下文的模型Cursor 里代码补全和 Agent 任务会更稳。1.2 Cursor 里填写 Base URL 与 KeyCursor 不同版本入口略有差异大致路径是Settings → Models → 找到 OpenAI API Base URL 或 Override Base URL 这类自定义供应商设置。把 Base URL 填成https://taotoken.net/api注意末尾不带 /v1。API Key 填 YOUR_API_KEY。模型 ID 填模型广场里你选的模型。填完先随便发一句「你好请确认模型通道可用」能正常回复再进入下一步。这里配置的是模型通道和后面 Cursor 的 MCPs 面板是两回事不要混。2. 四步法的前两步项目初始化与 TypeScript 构建2.1 建文件夹并执行 npm init新建一个文件夹命名为 mcp-interview-server 一类的英文名用 Cursor 打开这个目录。调出终端执行npm init -y执行完目录下会出现 package.json。到这里还只是空项目TypeScript、构建脚本都还没装下一节让 AI 编程工具补齐。2.2 告诉 Cursor 去初始化 TypeScript 项目模型通道已经通了现在把原来的初始化指令发给 Cursor这是一个 Node.js 项目请帮我初始化 TypeScript 开发环境 安装 typescript、types/node、modelcontextprotocol/sdk、zod 这几个依赖tsconfig.json 使用 NodeNext 模块方案index.ts 放在 src 目录。 package.json 的 scripts.build 设置为 tsc最终执行 npm run build 能通过并生成 dist 目录下的 JS 文件。等 Cursor 改完配置手动核对 package.json 的 scripts 段{ scripts: { build: tsc } }tsconfig.json 至少要有 outDir 和 rootDir{ compilerOptions: { target: ES2022, module: NodeNext, moduleResolution: NodeNext, outDir: dist, rootDir: src, strict: true } }如果 build 报 TS6059多半是 rootDir 没指到 src或者 src 目录还没创建。创建 src/index.ts 后再跑一次。3. 注册 Server、Tool、Resource、Prompt3.1 注册 ServerMCP Server 的本质是建立一个服务实例然后往里挂三种能力Tool可执行的工具、Resource只读资源、Prompt预制提示词模板。先实例化服务import { McpServer } from modelcontextprotocol/sdk/server/mcp.js; import { StdioServerTransport } from modelcontextprotocol/sdk/server/stdio.js; import { z } from zod; const server new McpServer({ name: agent-questions, version: 1.0.0, });name 会在 Cursor 的 MCPs 列表里显示建议用有业务含义的英文名。version 随意但不能缺失。3.2 注册 Tool执行具体任务Tool 是最常用的一类适合“传参数→拿结果”的场景。下面这个 Tool 按 ID 返回面试题const questions [ { id: 1, topic: ReAct, question: 解释 ReAct 循环中 Thought 与 Action 的协作方式 }, { id: 2, topic: Function Calling, question: 函数调用结果应如何回传给大模型下一次推理 }, ]; server.registerTool( get_question, { title: 按 ID 获取面试题, description: 传入题目 ID返回对应的题目与考点, inputSchema: { id: z.number().describe(题目 ID) }, }, async ({ id }) { const item questions.find((q) q.id id); return { content: [{ type: text, text: item ? JSON.stringify(item) : 未找到题目 }], }; } );只要符合 inputSchema 校验同一个 server 可以注册多个 ToolCursor 会自动识别每个 tool 的 description 来决定什么时候调用。3.3 注册 Resource只读资源Resource 适合放文档、题库、业务资料这类只读内容。这里暴露题库使用说明server.registerResource( { uri: question://guide, name: 题库说明, description: 题库目录与使用方式, mimeType: text/markdown, }, async () ({ contents: [ { uri: question://guide, text: # AI Agent 面试题库\n\n包含 ReAct、Function Calling、规划与记忆等主题。, }, ], }) );Cursor 里用户能直接看到这个资源 URI相当于一个可读的知识入口不会写回到源文件。3.4 注册 Prompt预制提示词模板Prompt 的作用是把一段长指令封装好调用时只需传入少量参数。模拟面试这个场景非常适合server.registerPrompt( mock_interview, { description: 开始一轮 AI Agent 模拟面试, arguments: [ { name: role, description: 投递岗位名称, required: false }, ], }, async ({ role }) ({ messages: [ { role: user, content: { type: text, text: 请以${role ?? AI Agent}面试官身份向我连续提问并给出反馈。, }, }, ], }) );最后启动服务const transport new StdioServerTransport(); await server.connect(transport);至此四步完成registerServer 建实例registerTool 加可执行能力registerResource 加只读资源registerPrompt 加提示词模板。4. 构建并让 Cursor 认识你的 MCP Server4.1 构建生成 dist 目录回到终端执行npm run build构建成功后dist/index.js 必须真实存在。很多 Cursor 连不上 MCP Server 的案例就是忘记先 build又或者 build 失败还继续去配置面板。4.2 Cursor MCPs 面板添加 Server在 Cursor 中打开设置找到 MCPs 标签页点 Add。Type 选 stdioName 填 agent-questionsCommand 填node dist/index.js注意 Command 是基于项目根目录的。如果 Cursor 提示找不到命令先确认 dist/index.js 是否在这个路径下。配置完成后列表里会出现 agent-questions状态是 connected。4.3 用户意图与调用方式对照开发完的 MCP Server 不是让用户去选 Tool而是由 AI 根据用户意图自动决定调用哪一块。用户意图适合的注册单元说明想直接读完整题库说明Resource question://guide只读资源适合一次性拉取想查第 2 题是什么Tool get_question传参执行返回结构化结果想开始模拟面试Prompt mock_interview预制提示词套用后直接开启对话想检查服务是否正常已连接的 Server任意调用一次作为连通性验证这样设计用户侧感知不到 Tool 和 Resource 的区别AI 会自己判断。5. 跑通后对一下账验证调用与常见报错5.1 在 Cursor 里验证一次真实调用回到 Cursor 对话框输入用 get_question 工具查第 2 题然后把题库说明展示出来如果 MCP Server 正常Cursor 会先调用对应工具再把结果渲染给你。与此同时可以到 TaoToken 模型对话 用同一把 Key 发一条测试消息确认模型通道本身没问题到 控制台 API Keys 可以查看这把 Key 的使用记录。这样能区分是 MCP Server 的问题还是模型通道的问题。5.2 三个最常见的报错build 报 TS6059tsconfig.json 里 rootDir 没指向 src或者 src 目录不存在。先建 src/index.ts再重新 build。MCP Server 一直显示 disconnected先看 dist/index.js 是否存在再确认 Command 写的是 node dist/index.js不要把 dist/index.ts 填进去Node 不能直接执行 TS。Cursor 对话框里返回 401这一般不是 MCP Server 的问题而是第一步配置模型通道时 Key 或模型 ID 填错了。回设置里检查 Base URL 是否是 https://taotoken.net/api末尾不要残留 /v1Key 是否整串复制模型 ID 是否与模型广场一致。5.3 下一步给模型通道留好余量刚才在 Cursor 里跑通四步开发之后模型通道的稳定性基本心中有数了。如果后续要长时间写代码、频繁让 Cursor 做 Agent 任务可以考虑按量套餐打开 Coding Plan 看看是否比单独按调用计费更合适。再往后如果要把同一把 Key 用到 Claude Code 这类命令行工具配置方式略有不同但 Key 和 Base URL 的规则一致注册入口依旧是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 接口地址依旧是 https://taotoken.net/api别把两处填反就行。
返回列表