ARTICLE DETAIL

资讯详情

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

[MCP系列] 之 手把手教你用Python玩转AI圈顶流MCP:从uv环境到VS Code调试的TaoToken实战

[MCP系列] 之 手把手教你用Python玩转AI圈顶流MCP:从uv环境到VS Code调试的TaoToken实战 1. 为什么 Python 开发者需要一个能调试的 MCP 本地环境MCP 全称 Model Context Protocol简单说就是让 AI 助手能调用你本地工具的一套通信约定。你可以把它理解成给 AI 装了一排外接按钮按钮背后是你写的 Python 函数AI 在对话里决定按哪个、传什么参数你的代码执行完再把结果递回去。对 Python 开发者来说这意味着你熟悉的函数、类、第三方库都能变成 AI 可以直接使用的工具而不用去改模型本身。适合谁上手三类人最该试一是手里有一堆内部脚本、想让它被 AI 直接调用的后端同学二是做数据查询、文件处理、接口封装希望 AI 帮忙串流程的工程同学三是想搞明白 MCP 到底怎么跑起来、不想只看概念文档的初学者。这三类人的共同点是需要一个能本地跑、能打断点、能看日志的环境而不是把代码丢到某个黑盒里等结果。问题也出在这。很多人第一次搭 MCP卡的不是协议本身而是环境Python 版本乱、依赖装不进虚拟环境、服务端起来了但客户端连不上、VS Code 里 Copilot 的 Agent 模式看不到工具。我试过用系统 Python 直接装 mcp结果和全局包打架排查半天。后来换成 uv 管理虚拟环境整个流程才顺下来。uv 的好处是它把建虚拟环境、装依赖、跑脚本合成一条命令uv run第一次执行会自动帮你创建.venv不用手动 activate对新手特别友好。这篇就按一条完整链路走用 uv 初始化 Python 工程装 MCP SDK写一个带工具的 server.py用 MCP Inspector 先验证工具能跑再把它接进 VS Code 的 GitHub Copilot Agent 模式最后在对话里触发一次真实工具调用。每一步都给可复制的命令和配置你照着敲就能跑通。中间涉及模型调用时我会用 TaoToken 的 API 作为统一入口把 Base URL、Key、Model ID 三件套讲清楚避免你在多个平台之间来回切。需要提前说明的是MCP 服务端本身是本地进程和模型 API 是两件事前者负责暴露工具后者负责理解意图并决定调哪个工具。所以本文会分成两条线一条是本地 MCP 服务的搭建与调试一条是模型侧接入配置两条线在 VS Code 里汇合。理解这个分工后面遇到报错时你就能快速判断是服务端没起来还是模型侧没配对。2. TaoToken 前置准备Base URL、API Key 与 Model ID 三件套在把 MCP 接进编辑器之前先把模型侧的入口准备好。TaoToken 在这里扮演的是统一 API 入口的角色你拿到一个 Base URL 和一个 API Key就能在兼容 OpenAI 协议的工具里调用模型不用为每个客户端单独配一套凭证。对 MCP 调试来说这一步的意义是——当 Copilot 的 Agent 模式决定调用你的工具时背后驱动它做决策的模型请求要能正常发出否则你会看到工具列表是空的或者对话一直转圈。先注册并登录进入控制台创建 API Key。地址是 https://taotoken.net/api 控制台里找到 API Keys 页面新建一个 Key 并复制保存。这个 Key 只显示一次丢了就重新建。Base URL 统一用 https://taotoken.net/api 注意结尾不要多加/v1之类的路径具体拼接由客户端负责。Model ID 按你控制台里可用的模型名填比如常见的对话模型标识填错会直接报模型不存在。三件套整理成一张表方便你对照配置项值说明Base URLhttps://taotoken.net/api统一入口不加多余路径API Key控制台生成的 sk- 开头字符串只显示一次妥善保存Model ID控制台可用模型名填错报模型不存在如果你用的是 Claude Code 这类工具配置方式略有不同需要设置ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN两个环境变量Base URL 同样指向 https://taotoken.net/api 。这一步和 MCP 服务端无关但它是模型侧能正常工作的前提。我建议你先把这三件套在一个最简单的对话请求里验证通过再去折腾 MCP否则出问题时你分不清是模型侧还是工具侧。验证模型侧是否通可以用一条 curl 命令curl https://taotoken.net/api/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -d { model: 你的Model ID, messages: [{role: user, content: 回复ok}] }返回里能看到choices字段和内容就说明 Key、Base URL、Model ID 都对。如果返回 401多半是 Key 没带上或写错如果返回模型不存在检查 Model ID 拼写。这一步过了再进入 MCP 环境搭建心里就有底了。关于接入细节和更多客户端配置可以看接入文档https://taotoken.net/doc 里面有各工具的填写示例。3. 用 uv 初始化 MCP 工程并写可复制的 server.py 配置环境准备从 uv 开始。uv 是一个 Python 包和环境管理器装好之后你基本不用再手动python -m venv和pip install。先确认 uv 可用然后列出它支持的 Python 版本uv python list输出里会看到从 3.7 到 3.14 的多个版本带download available的表示可以按需下载。我们选一个稳定版本比如 3.12uv python install 3.12接着建工程目录并初始化mkdir -p ~/mcp/mymcp cd ~/mcp/mymcp uv inituv init会生成.gitignore、.python-version、main.py、pyproject.toml、README.md。先跑一下确认环境正常uv run main.py第一次执行时 uv 会自动创建.venv虚拟环境输出Hello from mymcp!就说明环境通了。.venv默认被.gitignore排除依赖都装在里面不会污染系统 Python。建议顺手初始化 git方便追踪每一步改动git init -b main git add . git commit -m Initial commit现在装 MCP 开发套件uv add mcp[cli]装完后.venv/bin里会出现 mcp 相关命令验证版本uv run mcp version能打印出版本号比如 1.8.1就说明 SDK 装好了。接下来写服务端。新建server.py内容如下from mcp.server.fastmcp import FastMCP mcp FastMCP(Demo) mcp.tool() def add(a: int, b: int) - int: Add two numbers return a b mcp.tool() def personal_info() - dict: Return my personal information return { name: mcp-demo, role: developer, skills: [Python, MCP, Web Development], interests: [Programming, AI, Technology] } mcp.resource(greeting://{name}) def get_greeting(name: str) - str: Get a personalized greeting return fHello, {name}! if __name__ __main__: print(Starting MCP server on http://localhost:8080) mcp.serve(host0.0.0.0, port8080)这段代码用FastMCP建了一个叫 Demo 的服务端mcp.tool()装饰的函数就是暴露给 AI 的工具mcp.resource()暴露的是可读取的资源。工具函数的 docstring 很重要AI 靠它判断这个工具是干什么的所以别写空。写完先用 dev 模式启动它会拉起 MCP Inspector 方便你手动测uv run mcp dev server.py第一次执行会提示安装 Inspector 依赖按 y 继续。看到MCP Inspector is up and running at http://localhost:6274就成功了。如果你的机器没有浏览器把 localhost 换成服务器 IP 访问即可。4. 在 VS Code 里接入 GitHub Copilot 并验证一次工具调用链路服务端能跑之后把它接进 VS Code。前提是已安装 GitHub Copilot 和 GitHub Copilot Chat 扩展装 Copilot 时 Chat 通常会自动带上。在工程目录下新建.vscode/mcp.json写入{ servers: { demo: { type: stdio, command: uv, args: [ run, --with, mcp[cli], mcp, run, /home/你的用户名/mcp/mymcp/server.py ] } } }注意args里的路径要写绝对路径~在部分客户端里不会展开容易导致进程起不来。保存后VS Code 会在servers下的demo节点旁显示 Start 按钮点一下启动服务。启动成功后节点会显示 Running。然后切到 Copilot Chat 视图把模式从 Ask 切到 Agent。点工具图标如果下拉列表里能看到demo服务及其下的add、personal_info工具说明 MCP 服务已被发现并加载。这一步是很多人的卡点看不到工具通常是 mcp.json 路径写错、uv 不在 PATH 里或者服务端启动就报错了。可以打开 VS Code 的输出面板选 MCP 相关日志查看具体错误。验证调用链路在对话框输入我的名字是什么第一次调用工具时Copilot 会弹出确认点 Continue。它会自动调用personal_info工具把返回的字典内容读出来回答你。如果回答里出现了mcp-demo这类字段说明整条链路通了模型理解意图 → 决定调用工具 → MCP 服务端执行 Python 函数 → 结果回传 → 模型组织语言。你也可以试add工具输入帮我算 3 加 5看它是否调用add并返回 8。这里有个细节值得注意工具调用是模型决定的不是硬编码的。所以你的 docstring 写得越清楚模型选对工具的概率越高。如果模型没调工具而是直接瞎答先检查 docstring 是否描述了用途和参数。另外Agent 模式下模型请求走的是你在前面配好的 TaoToken 入口如果对话本身报错先回到第 2 节确认三件套没问题。5. 本篇常见报错排查401、local proxy failed 与工具列表为空调试 MCP 时遇到的报错大致分两类模型侧和服务侧。分开看能省很多时间。模型侧最常见的是 401。报错长这样401 Unauthorized或invalid api key。原因通常是 API Key 没带上、写错或者环境变量没生效。检查Authorization: Bearer后面的值是否和控制台一致注意别把 Key 写进会被 git 提交的文件里。如果用的是 Claude Code 类工具确认ANTHROPIC_AUTH_TOKEN和ANTHROPIC_BASE_URL都设了Base URL 指向 https://taotoken.net/api 。服务侧常见的是local proxy failed或MCP server failed to start。这多半是 mcp.json 里的 command 或路径有问题。逐项核对command是不是uvuv是否在系统 PATH 里终端执行which uv确认args里的 server.py 路径是不是绝对路径且文件真实存在--with mcp[cli]有没有写全。如果 uv 装在用户目录下而 VS Code 启动环境没继承 PATH可以改成 uv 的绝对路径。还有一类是工具列表为空Agent 模式里看不到任何工具。除了上面的启动失败也可能是服务端起来了但没注册工具——检查mcp.tool()装饰器有没有漏函数有没有语法错误。用uv run mcp dev server.py单独跑一遍在 Inspector 里点 Connect、List Tools能列出工具就说明服务端没问题问题在 VS Code 侧。如果报错里出现reading choices或类似解析choices字段失败通常是模型返回结构不符合预期常见于 Model ID 填错或 Base URL 多写了路径。回到第 2 节的 curl 验证确认返回里有标准choices数组。OAuth 相关报错一般出现在需要登录授权的客户端检查凭证是否过期重新走一遍授权流程。排查顺序建议固定成先 curl 验模型侧再mcp dev验服务端最后查 VS Code 配置。这样每次都能把问题范围缩小一半不用瞎猜。6. 把 MCP 调试固化成日常开发习惯跑通一次之后真正省时间的是把它变成习惯。我的做法是每个 MCP 工程都保留mcp dev这条命令作为第一道验证改完工具函数先在 Inspector 里点一遍确认输入输出对再进 VS Code 测对话调用。这样能把代码错和配置错分开不至于在编辑器里反复重启。工具函数尽量保持单一职责一个工具只做一件事docstring 写清楚参数含义和返回结构。模型选工具靠的就是这些文字描述写得含糊它就会乱调。参数类型标注也别省a: int, b: int这种标注会进到工具的 schema 里帮助模型正确传参。需要长期跑编码任务或 Agent 流程的话可以考虑用 Coding Plan 把模型调用额度固定下来避免调试期间频繁换 Key。地址是 https://taotoken.net/coding-plan 适合把 MCP 工具链和日常编码结合起来的场景。如果只是想先验证某个模型能不能正常对话用模型对话页面快速试一下更省事https://taotoken.net/chat 。API Key 管理在 https://taotoken.net/api-keys 接入文档在 https://taotoken.net/doc 遇到配置问题先翻文档通常比搜索快。最后提醒一句MCP 服务端是本地进程别把它直接连到生产数据库或敏感系统上。调试阶段用测试数据工具函数里做好参数校验等链路稳定了再考虑接入真实数据源。把这几步走顺你手里就有一套能反复用的 MCP 开发闭环了。
返回列表