MCP模式工具

MCP Mode 是一个用于Claude Code的工具,通过分离配置文件和按需加载MCP服务器模式,消除启动时自动注入工具模式带来的巨大令牌成本,从而保留完整的上下文窗口供实际工作使用。

  • by Gitmaxd
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Gitmaxd/mcp-mode

使用说明

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

对于新用户

  1. 在以下位置创建配置文件 ~/.claude/mcp.json:
{
  "mcpServers": {
    "my-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "my-mcp-server"],
      "env": {}
    }
  }
}
  1. 验证它是否有效:
.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上打开一个问题。


许可证

麻省理工学院