使用说明
MCP模式
克劳德代码的渐进式MCP。零代币税。
按需访问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 <name> [--refresh] [--json] |
列出服务器上的工具 |
cm search "<query>" --server <name> [--limit N] [--refresh] [--json] |
按关键字搜索工具 |
cm doctor --server <name> [--no-connect] [--json] |
测试服务器连接并显示配置 |
执行命令
| 命令 | 目的 |
|---|---|
cm call <tool> --server <name> [--args '{}'] [--args-file path.json] [--json] [--no-daemon] |
执行单个工具 |
cm hydrate <tool1> <tool2> ... --server <name> [--out <dir>] [--refresh] [--json] |
获取完整的模式+TypeScript类型 |
cm run --workflow <file.js> --tools <a,b,...> --server <name> [--retries N] [--timeout-ms N] |
运行多工具工作流 |
导入命令
| 命令 | 目的 |
|---|---|
cm import --from desktop [--dry-run] [--scope user|project] |
从Claude Desktop导入所有服务器 |
cm import --from desktop <server1> <server2> ... |
导入特定服务器 |
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 [<server>] |
预热服务器连接 |
配置命令
| 命令 | 目的 |
|---|---|
cm config <server> autoWarm true|false |
启用/禁用服务器的自动预热 |
配置
配置文件位置
| 配置 | 路径 | 目的 |
|---|---|---|
| 用户 | ~/.claude/mcp.json |
个人MCP服务器(所有项目) |
| 项目 | <project>/.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/<server>/tools.json |
缓存工具库存 |
hydrated/<server>/<timestamp>/ |
完整模式+TypeScript类型 |
runs/<server>/<timestamp>/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)<br/><br/>Your conversation + code<br/>(NOT filled with MCP schemas!)"]
cm["cm call / cm run"]
context --> cm
end
config["~/.claude/mcp.json<br/>(MCP Mode config)<br/><i>Invisible to Claude Code</i>"]
servers["MCP Server(s)<br/>(connected on-demand)"]
cm --> config
config --> servers
相关项目
实验状态
这是实验软件(v0.x)
MCP模式正在积极开发中。API可能会在不同版本之间更改。
欢迎反馈! 在GitHub上打开一个问题。
许可证
麻省理工学院
