MCP 和 Skills:Claude Code 两种扩展机制的本质区别与 TaoToken 配置实践
发布时间:2026/9/27 16:03:52 作者:尧图编辑部 阅读量:1,286

1. 先搞清楚MCP 和 Skills 到底在解决什么问题如果你正在用 Claude Code 写代码大概率会遇到两个绕不开的词MCP 和 Skills。很多人第一次看到这两个概念时会觉得它们都是扩展机制功能应该差不多随便选一个用就行。但实际用下来会发现它们解决的是完全不同层面的问题。MCP 全称 Model Context Protocol是 Anthropic 定义的一套开放协议作用是让 Claude Code 连接到外部的工具服务器从而获得原本不具备的能力。比如查数据库、调第三方 API、操作云服务、发消息通知这些内置工具做不到的事情都可以通过 MCP 补上。Skills 则是一套可复用的指令集它不给 Claude 增加新工具而是教它怎么把已有的工具用好。比如团队有统一的 commit message 规范、博客有固定的结构、代码审查有特定的检查清单这些怎么做的标准就是 Skills 要承载的内容。一句话概括MCP 扩展的是能做什么Skills 扩展的是怎么做好。这个区别决定了你在什么场景下该用哪个机制。本文会从配置结构、触发方式、适用场景三个角度拆开讲并给出可复制的 settings.json 与 config.toml 骨架最后通过 TaoToken 统一 Key/API 通道接入把两种机制在真实项目里跑通。适合阅读的人群已经在用 Claude Code 做日常开发、想让 Agent 接入外部系统或统一团队规范的开发者以及刚接触这两种机制、分不清该用哪个的新手。2. TaoToken 前置准备统一 Key 与 API 通道在配置 MCP 和 Skills 之前先把模型调用通道准备好。Claude Code 本身需要访问模型 API如果每个项目、每个 MCP Server 都单独配一套 Key管理起来会很乱。TaoToken 的作用就是提供统一的 Key 和 API 通道让 Claude Code 和各类扩展机制都走同一个入口。你需要先拿到一个可用的 API Key。登录 TaoToken 官网进入控制台在 API Keys 页面创建一个新的 Key。创建时建议按用途命名比如claude-code-dev方便后续区分。拿到 Key 之后需要配置两个环境变量Claude Code 会读取它们export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-你的TaoToken密钥如果你用的是 Windows PowerShell写法是$env:ANTHROPIC_BASE_URLhttps://taotoken.net/api $env:ANTHROPIC_API_KEYsk-你的TaoToken密钥想让它长期生效Linux/macOS 可以写进~/.zshrc或~/.bashrcWindows 可以用setx命令写入系统环境变量。注意ANTHROPIC_BASE_URL后面不要加/v1之类的路径Claude Code 会自己拼接。写错了会出现 404 或连接被拒。配置完成后可以用一个最简单的请求验证通道是否通curl -s https://taotoken.net/api/v1/messages \ -H x-api-key: $ANTHROPIC_API_KEY \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 64, messages: [{role: user, content: ping}] }返回里能看到content字段和正常的usage统计就说明 Key 和通道都没问题。这一步很关键因为后面 MCP Server 和 Skills 都会复用这套通道如果这里不通后面排查会绕很多弯路。如果你还没创建 Key可以直接去 API Keys 页面操作接入细节可以参考接入文档。3. 可复制配置settings.json 与 config.toml 骨架这一节给出两种机制的实际配置文件骨架你可以直接复制后按需修改。3.1 MCP 配置.mcp.json 与 settings.jsonMCP Server 的配置放在项目根目录的.mcp.json里。下面是一个同时接入 PostgreSQL 和 Slack 的示例{ mcpServers: { postgres: { command: npx, args: [ -y, modelcontextprotocol/server-postgres, postgresql://localhost:5432/mydb ], env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥 } }, slack: { command: npx, args: [-y, anthropic-ai/mcp-server-slack], env: { SLACK_TOKEN: xoxb-你的SlackToken, ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥 } } } }这里把 TaoToken 的通道信息写进每个 Server 的env是为了让 MCP Server 在需要调用模型时也走统一入口。如果你的 MCP Server 本身不调用模型只做数据库查询那env里可以只保留业务相关的变量。除了.mcp.jsonClaude Code 还支持在settings.json里做全局配置。settings.json一般放在~/.claude/settings.json用来控制权限、环境变量、默认行为{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥 }, permissions: { allow: [ mcp__postgres__query, mcp__slack__send_message ] }, enableAllProjectMcpServers: true }permissions.allow里列出的是允许 Claude Code 自动调用的 MCP 工具格式是mcp__server名__工具名。不写的话每次调用都会弹确认开发时很打断节奏。也可以用 CLI 命令管理 MCP Server效果和手写.mcp.json一样claude mcp add postgres -- npx -y modelcontextprotocol/server-postgres postgresql://localhost:5432/mydb claude mcp list claude mcp remove postgres3.2 Skills 配置SKILL.md 与 config.tomlSkills 的配置更简单本质是一个 Markdown 文件放在~/.claude/skills/目录下。每个 Skill 一个文件夹文件夹里放SKILL.md--- name: git-conventions description: 规范 Git commit message 和 PR 标题 --- ## Commit 标题格式 type: 中文概述 ## 类型 - feat: 新功能 - fix: 修 bug - docs: 文档 - refactor: 重构 - chore: 杂项 ## 规则 - type 用英文概述用中文 - 不超过 50 字符 - 不加 scope - 结果导向不写实现细节调用时在 Claude Code 里输入/git-conventionsSkill 内容就会被加载到上下文Claude 会按这个标准生成 commit message。如果你用的是支持 TOML 配置的客户端或工具链可以用config.toml来声明 Skill 的加载路径和默认参数[skills] dir ~/.claude/skills auto_load [git-conventions, code-review] [skills.git-conventions] enabled true trigger /git-conventions [skills.code-review] enabled true trigger /code-review checklist [security, performance, readability] [api] base_url https://taotoken.net/api api_key_env ANTHROPIC_API_KEYconfig.toml不是 Claude Code 官方强制的格式但很多团队会用它来统一管理 Skill 的启用状态和触发词尤其是 Skill 数量多了之后集中配置比散落在各个 Markdown 里更好维护。提示Skill 文件里的description字段很重要Claude 会根据它判断什么时候该自动加载这个 Skill。写得太模糊会导致该触发时不触发。4. 验证请求确认两种机制都跑通配置写完不代表能用得实际验证。这一节给出 MCP 和 Skills 各自的验证动作。4.1 验证 MCP 是否生效启动 Claude Code输入/mcp如果配置正确会列出当前加载的所有 MCP Server 和它们提供的工具。看到postgres下面有query、list_tables之类的工具名就说明 MCP Server 启动成功。接着做一次真实调用。在对话里输入帮我查一下 users 表里最近注册的 5 个用户Claude 会调用mcp__postgres__query工具执行 SQL 并返回结果。如果这一步能拿到数据说明 MCP 通道完全打通。如果用的是 Slack MCP可以输入给 #dev 频道发一条消息MCP 测试通过消息真的出现在 Slack 频道里就验证成功了。4.2 验证 Skills 是否生效Skills 的验证更直接。输入斜杠命令/git-conventions然后随便改一个文件让 Claude 生成 commit message帮我写一个 commit message这次改动是修复了登录页面的 token 过期问题如果 Skill 生效生成的 message 会严格按type: 中文概述格式比如fix: 修复登录页 token 过期问题而不是随意发挥。再验证一个组合场景用 MCP 连接 Linear用 Skills 定义 ticket 描述格式。输入在 Linear 里创建一个 ticket描述登录 token 过期的问题理想的结果是Claude 先加载/linear-ticketSkill知道描述要包含 Problem / Solution / Acceptance Criteria 三段然后调用 MCP 的create_issue工具在 Linear 里真正创建。打开 Linear 能看到这条 ticket且描述结构符合 Skill 定义就说明两种机制协同工作了。4.3 验证 TaoToken 通道是否被复用在 MCP Server 和 Skills 都跑通后回到 TaoToken 控制台看 API Keys 页面的调用统计。如果能看到来自 Claude Code 和 MCP Server 的请求都记在同一个 Key 下说明统一通道生效了。这一步能帮你确认没有哪个环节偷偷走了别的通道。5. 本篇常见错排查配置过程中最容易踩的坑集中在几个地方逐个说。MCP Server 启动失败报command not found多半是npx不在 PATH 里或者 Node.js 版本太低。先跑node -v确认版本在 18 以上再跑npx -v确认 npx 可用。如果用的是 pnpm 或 yarn把command改成对应的可执行文件。MCP 工具调用时提示权限不足检查settings.json里的permissions.allow有没有写对工具名。格式必须是mcp__server名__工具名server 名要和.mcp.json里的 key 完全一致大小写敏感。Skill 不触发斜杠命令没反应先确认 Skill 文件路径对不对必须是~/.claude/skills/skill名/SKILL.md文件名大小写敏感。再检查 frontmatter 里的name字段和文件夹名是否一致。最后看description是不是写得太泛导致 Claude 判断不出什么时候该用。TaoToken 通道返回 401 或 403大概率是ANTHROPIC_API_KEY没生效。在终端里跑echo $ANTHROPIC_API_KEY确认变量存在。如果是在 IDE 里启动 Claude Code注意 IDE 可能不会继承 shell 的环境变量需要在 IDE 的设置里单独配。MCP Server 能启动但调用超时检查ANTHROPIC_BASE_URL有没有多写路径。正确写法是https://taotoken.net/api不要加/v1。另外确认网络能正常访问该地址可以用前面的 curl 命令再测一次。Skills 和 MCP 同时用时行为混乱这种情况通常是 Skill 里写了和 MCP 工具冲突的指令。比如 Skill 说用 Bash 跑 psql但项目里已经配了 PostgreSQL MCP。建议在 Skill 里明确写优先使用 MCP 工具避免 Claude 在两种方式之间摇摆。config.toml 改了不生效确认你的工具链是否真的读取这个文件。config.toml是团队约定格式不是 Claude Code 原生支持的。如果用的是原生 Claude CodeSkill 的启用状态还是以文件是否存在为准。6. 该用哪个判断标准与接入入口回到最开始的问题什么时候用 MCP什么时候用 Skills。判断标准其实就一句话Claude 的内置工具能不能做到这件事。做不到用 MCP能做到但做得不够好、不够一致用 Skills。具体来说需要查数据库、调外部 API、操作云服务、发消息通知、对接 Jira/Linear/GitHub 这类外部系统都是 MCP 的场景。团队有统一的 commit 规范、博客有固定结构、代码审查有检查清单、实现有固定流程都是 Skills 的场景。两者不冲突大部分真实项目会同时用到。MCP 负责连接外部系统Skills 负责规范内部流程。一个扩展能力边界一个扩展行为标准。如果你还没配置 TaoToken 通道建议先去控制台创建 Key再按本文第 2 节的步骤配好环境变量。MCP 和 Skills 的配置骨架在第 3 节可以直接复制。验证动作在第 4 节排障在第 5 节。接入过程中如果遇到通道问题可以对照接入文档排查想先验证模型对话是否正常可以在模型对话页面直接测试如果打算长期用 Claude Code 做编码和 Agent 开发Coding Plan 会更适合统一管理调用额度。