MCP模式
克劳德代码的渐进式MCP。零代币税。
](https://www.npmjs.com/package/mcp-mode)  ](https://nodejs.org/) 
按需访问MCP工具,无需将模式加载到上下文窗口中。
______________________________________________________________________
备注:参见 安全.md 出于已知的限制和安全考虑。
什么是MCP模式?
MCP模式允许您使用Claude Code的MCP(模型上下文协议)服务器,而无需将工具模式自动注入上下文窗口所带来的巨大令牌成本。
代币税
在Claude Code的本机配置文件中配置MCP服务器时(~/.claude.json 或 .mcp.json), 所有工具模式都在会话启动时加载到上下文中。在任何对话开始之前,这种“代币税”会消耗30-50%以上的可用代币。现实世界的报告显示,创业时消耗了66000多个代币(占20万上下文的33%)。
您添加的每个MCP工具都会增加此税。你的设置能力越强,你实际工作的背景就越少。
零开销接入
MCP模式通过使用 单独的配置文件 (~/.claude/mcp.json)克劳德代码没有看到。服务器通过CLI按需连接,仅在需要时加载模式,并在上下文窗口外执行工具调用。
结果: 可用于实际工作的完整上下文。以零启动成本访问任意数量的MCP工具。
______________________________________________________________________
安装
# Initialize in your project
npx mcp-mode init
# Or install globally
npm install -g mcp-mode
mcp-mode init这创造了 .claude/skills/mcp-mode/ 与技能档案。
______________________________________________________________________
快速开始
适用于Claude桌面用户(macOS)
如果您已经在Claude Desktop中配置了MCP服务器,请立即导入它们:
# See what servers are available to import
.claude/skills/mcp-mode/bin/cm import --from desktop --dry-run
# Import all your servers
.claude/skills/mcp-mode/bin/cm import --from desktop
# Import specific servers only
.claude/skills/mcp-mode/bin/cm import --from desktop firecrawl Tavily对于新用户
- 在以下位置创建配置文件
~/.claude/mcp.json:
{
"mcpServers": {
"my-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "my-mcp-server"],
"env": {}
}
}
}- 验证它是否有效:
.claude/skills/mcp-mode/bin/cm servers
.claude/skills/mcp-mode/bin/cm doctor --server my-server______________________________________________________________________
在Claude代码中使用MCP模式
告诉克劳德你想做什么,剩下的就交给他吧。
示例提示
发现
“我有哪些可用的MCP服务器?”
“显示我的firecrall服务器上的工具”
“查找与网络抓取相关的任何工具”
执行
“删除主页https://example.com"
“搜索有关身份验证的文档”
“给我GitHub仓库的内容”
设置
“从Claude Desktop导入我的MCP服务器”
“检查我的火线连接是否正常”
“启动MCP守护进程以实现更快的呼叫”
对话示例
You: What MCP tools do I have for web scraping?
Claude: Let me check your MCP servers... You have 'firecrawl' configured
with 8 tools including scraping, crawling, and mapping capabilities.
What would you like to scrape?
You: Grab the main content from https://docs.anthropic.com
Claude: [scrapes page via MCP Mode]
Here's the content from the Anthropic docs...该技能将你的意图转化为正确的意图 cm 自动命令。
______________________________________________________________________
命令参考
所有命令都使用 cm CLI。使用完整路径呼叫:
- 工作区:
./.claude/skills/mcp-mode/bin/cm - 个人:
~/.claude/skills/mcp-mode/bin/cm
发现命令
| 命令 | 目的 |
|---|---|
cm servers [--json] | 列出所有已配置的MCP服务器 |
cm index --server [--refresh] [--json] | 列出服务器上的工具 |
cm search "" --server [--limit N] [--refresh] [--json] | 按关键字搜索工具 |
cm doctor --server [--no-connect] [--json] | 测试服务器连接并显示配置 |
执行命令
| 命令 | 目的 |
|---|---|
cm call --server [--args '{}'] [--args-file path.json] [--json] [--no-daemon] | 执行单个工具 |
cm hydrate ... --server [--out ] [--refresh] [--json] | 获取完整的模式+TypeScript类型 |
cm run --workflow --tools --server [--retries N] [--timeout-ms N] | 运行多工具工作流 |
导入命令
| 命令 | 目的 | |
|---|---|---|
| `cm import --from desktop [--dry-run] [--scope user\ | project]` | 从Claude Desktop导入所有服务器 |
cm import --from desktop ... | 导入特定服务器 |
Daemon命令(更快的调用)
守护程序使MCP连接保持活动状态,使工具调用速度提高约5倍。
| 命令 | 目的 |
|---|---|
cm daemon start | 启动当前项目的后台守护进程 |
cm daemon stop | 停止当前项目的守护进程 |
cm daemon status [--json] | 显示守护进程状态和连接 |
cm daemon status --all | 列出项目中所有正在运行的守护进程 |
cm daemon list | 别名为 status --all |
cm daemon warm [] | 预热服务器连接 |
配置命令
| 命令 | 目的 | |
|---|---|---|
| `cm config autoWarm true\ | false` | 启用/禁用服务器的自动预热 |
______________________________________________________________________
配置
配置文件位置
| 配置 | 路径 | 目的 |
|---|---|---|
| 用户 | ~/.claude/mcp.json | 个人MCP服务器(所有项目) |
| 项目 | ` | |
| /.claude/mcp.json` | 特定于项目的服务器 |
关键: 不要使用Claude Code的本机配置(~/.claude.json, .mcp.json)对于您希望通过MCP模式访问的服务器。这些将被自动注入到上下文中,从而破坏了目的。
配置格式
stdio服务器(运行本地命令)
{
"mcpServers": {
"my-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem"],
"env": {
"SOME_API_KEY": "your-key-here"
}
}
}
}HTTP服务器(连接到URL)
{
"mcpServers": {
"remote-server": {
"type": "http",
"url": "https://mcp.example.com/sse",
"headers": {
"Authorization": "Bearer your-token"
}
}
}
}从Claude Desktop(macOS)导入
如果您使用Claude Desktop,您可能已经配置了MCP服务器。导入它们:
# Preview what would be imported
cm import --from desktop --dry-run
# Import all servers to user config (~/.claude/mcp.json)
cm import --from desktop
# Import specific servers
cm import --from desktop firecrawl Tavily
# Import to project config instead
cm import --from desktop --scope project______________________________________________________________________
高级用法
手动连接覆盖
无需配置即可连接到服务器 mcp.json:
# HTTP server
cm call my_tool --http-url "https://mcp.example.com/sse" --headers-json '{"Authorization":"Bearer xxx"}'
# stdio server
cm call my_tool --stdio-command "node" --stdio-args "server.js,--port,3000" --env-json '{"API_KEY":"xxx"}'JSON输出模式
大多数命令支持 --json 用于程序化使用:
cm servers --json
cm index --server X --json
cm call tool --server X --json
cm daemon status --json工作流引擎
对于复杂的多工具编排,请使用工作流文件:
// workflow.js
workflow = async () => {
const results = await t.searchDocuments({ query: "API", limit: 5 });
const ids = results.map(r => r.id);
const docs = await Promise.all(ids.map(id => t.getDocument({ id })));
return docs;
}cm run --server myserver --tools search_documents,get_document --workflow workflow.js注: 工具名称在CLI中使用snake_case,但在工作流代码中使用camelCase(search_documents → t.searchDocuments).
缓存和工件
所有MCP模式数据都存储在 .claude/mcp-mode/:
| 路径 | 内容 |
|---|---|
cache//tools.json | 缓存工具库存 |
hydrated/// | 完整模式+TypeScript类型 |
runs///run.json | 工作流执行跟踪 |
______________________________________________________________________
故障排除
| 问题 | 解决方案 |
|---|---|
command not found: cm | 使用完整路径: ./.claude/skills/mcp-mode/bin/cm |
Permission denied | 快跑 chmod +x .claude/skills/mcp-mode/bin/cm |
Server not found | 检查 cm servers 并验证 ~/.claude/mcp.json 存在 |
Connection timeout | 快跑 cm doctor --server X 诊断 |
Tool not found | 快跑 cm index --server X --refresh 刷新缓存 |
Daemon not starting | 检查端口冲突,尝试 cm daemon stop 首先 |
Import finds no servers | 确保安装了Claude Desktop并配置了MCP服务器 |
______________________________________________________________________
运作原理
flowchart TB
subgraph claude["Claude Code Session"]
context["Context Window (200k tokens)
Your conversation + code
(NOT filled with MCP schemas!)"]
cm["cm call / cm run"]
context --> cm
end
config["~/.claude/mcp.json
(MCP Mode config)
Invisible to Claude Code"]
servers["MCP Server(s)
(connected on-demand)"]
cm --> config
config --> servers______________________________________________________________________
相关项目
______________________________________________________________________
实验状态
这是实验软件(v0.x) MCP模式正在积极开发中。API可能会在不同版本之间更改。 欢迎反馈! 在GitHub上打开一个问题。
______________________________________________________________________
许可证
麻省理工学院
