MCP Server 四步开发,把 Cursor 的模型通道改到 TaoToken 后照做
2026/9/17 5:35:03 网站建设 项目流程

很多跟着 MCP Server 教程走的朋友,卡住的往往不是 registerTool、registerResource 那几行代码,而是最前面的一步:打开 Cursor,输入「帮我初始化一个 Node.js + TypeScript 项目」之后,AI 直接回一句没有可用模型 Key,后面所有指令全部瘫痪。我这次先把 Cursor 的模型通道切到 TaoToken,拿好 Key 再照着四步注册 Server、Tool、Resource、Prompt 走一遍,全程没再被模型通道卡过。TaoToken 官网是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ,注册、创建 Key、看模型广场都在这里完成,Base URL 则填写 https://taotoken.net/api,记得不要加 /v1。下面就是完整经过。

1. 先拿 Key:把 Cursor 的模型通道切到 TaoToken

1.1 注册并创建 API Key

打开 TaoToken,注册登录之后进控制台,左侧找到 API Keys 页面,点创建。创建完会得到一串以 taotoken 开头的密钥,整串复制下来,占位符统一写作 YOUR_API_KEY。后续无论填进 Cursor、写环境变量还是粘贴到命令行,都用这一串,不要只在文章里看我写。

模型 ID 不要拍脑袋填。同一个服务可能同时挂多个模型,具体 ID 到 TaoToken 模型广场 看当时列表为准。选一个支持长上下文的模型,Cursor 里代码补全和 Agent 任务会更稳。

1.2 Cursor 里填写 Base URL 与 Key

Cursor 不同版本入口略有差异,大致路径是: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、Prompt

3.1 注册 Server

MCP 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 可以注册多个 Tool,Cursor 会自动识别每个 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 Server

4.1 构建生成 dist 目录

回到终端执行:

npm run build

构建成功后,dist/index.js 必须真实存在。很多 Cursor 连不上 MCP Server 的案例,就是忘记先 build,又或者 build 失败还继续去配置面板。

4.2 Cursor MCPs 面板添加 Server

在 Cursor 中打开设置,找到 MCPs 标签页,点 Add。Type 选 stdio,Name 填 agent-questions,Command 填:

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 报 TS6059:tsconfig.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,末尾不要残留 /v1;Key 是否整串复制;模型 ID 是否与模型广场一致。

5.3 下一步给模型通道留好余量

刚才在 Cursor 里跑通四步开发之后,模型通道的稳定性基本心中有数了。如果后续要长时间写代码、频繁让 Cursor 做 Agent 任务,可以考虑按量套餐,打开 Coding Plan 看看是否比单独按调用计费更合适。再往后如果要把同一把 Key 用到 Claude Code 这类命令行工具,配置方式略有不同,但 Key 和 Base URL 的规则一致:注册入口依旧是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ,接口地址依旧是 https://taotoken.net/api,别把两处填反就行。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询