返回市场
克劳德代码MCP增强服务器

克劳德代码MCP增强服务器

作者:grahama197097 星标更新:2025-05-21

项目介绍

🤖 Claude Code MCP Server

想快速开始吗?请查看我们的QUICKSTART.md指南!

此项目是steipete/claude-code-mcp的一个分支,具有增强的任务编排能力、可靠性改进以及额外的文档。

一个增强的模型上下文协议(MCP)服务器,允许在权限自动绕过的情况下一次性运行Claude Code。此服务器包括高级任务编排能力、健壮的错误处理以及用于分解复杂任务的“回旋模式”。

您是否注意到标准AI助手有时在处理复杂的多步骤编辑或操作时会遇到困难?这个服务器通过其强大的统一claude_code工具和增强的可靠性特性,旨在使Claude成为更直接且功能更强的编码任务代理。

Claude Code 示例

🔍 概览

此MCP服务器提供了强大的工具,可以由大型语言模型(LLMs)用来与Claude Code交互。当集成到Claude Desktop或其他MCP客户端中时,它允许LLMs:

  • 使用--dangerously-skip-permissions绕过所有权限运行Claude Code
  • 使用任何提示执行Claude Code而不会中断权限
  • 直接访问文件编辑功能
  • 执行具有健壮错误处理和重试机制的复杂多步操作
  • 使用回旋模式通过专门的代理角色编排任务
  • 通过心跳机制保持可靠的执行以防止超时

✨ 优势

  • 增强的可靠性: 健壮的错误处理、自动重试、优雅的关闭、请求跟踪
  • 任务编排: 复杂的工作流程可以被分解成专门的子任务
  • 任务自动化: 将人类可读的Markdown任务列表自动转换为可执行的MCP命令
  • 性能优化: 通过配置缓存和资源效率提高执行速度
  • 更好的监控: 健康检查API、详细的错误报告和全面的日志记录
  • 开发者体验: 配置的热重载、灵活的环境控制和简化的API

此外还有标准的Claude Code优势:

  • Claude/Windsurf经常在编辑文件方面遇到问题。Claude Code在这方面更好更快。
  • 可以排队多个命令而不是直接执行。这节省了上下文空间,因此更重要的信息可以保留得更久。
  • 文件操作、git或其他操作不需要昂贵的模型。如果您注册了Anthropic Max,Claude Code是成本效益高的。
  • Claude有更广泛的系统访问权限,所以当标准助手卡住时,只需让他们“使用claude code”来解除阻塞。

📝 先决条件

  • Node.js v20或更高版本(使用fnm或nvm安装)
  • 在本地安装Claude CLI(运行并调用/doctor),并接受-dangerously-skip-permissions

💾 安装及使用

您可以采用三种不同的方式安装和使用此MCP服务器:

🚀 方法1:通过GitHub URL(推荐)

最灵活的方法是从GitHub直接使用npx安装。这始终从存储库获取最新版本。

在您的.mcp.json文件中添加以下内容:

{
  "mcpServers": {
    "claude-code-mcp-enhanced": {
      "command": "npx",
      "args": [
        "github:grahama1970/claude-code-mcp-enhanced"
      ],
      "env": {
        "MCP_CLAUDE_DEBUG": "false",
        "MCP_HEARTBEAT_INTERVAL_MS": "15000",
        "MCP_EXECUTION_TIMEOUT_MS": "1800000"
      }
    }
  }
}

📦 方法2:通过npm包

如果该包已发布到npm,您可以使用npm包名进行安装:

{
  "mcpServers": {
    "claude-code-mcp-enhanced": {
      "command": "npx",
      "args": [
        "-y",
        "@grahama1970/claude-code-mcp-enhanced@latest"
      ],
      "env": {
        "MCP_CLAUDE_DEBUG": "false",
        "MCP_HEARTBEAT_INTERVAL_MS": "15000",
        "MCP_EXECUTION_TIMEOUT_MS": "1800000"
      }
    }
  }
}

🔧 方法3:本地安装

为了开发或测试目的,可以从本地安装运行服务器:

  1. 克隆仓库:

    git clone https://github.com/grahama1970/claude-code-mcp-enhanced.git
    cd claude-code-mcp-enhanced
    
  2. 安装依赖项并构建:

    npm install
    npm run build
    
  3. 配置您的.mcp.json文件以使用本地服务器:

{
  "mcpServers": {
    "claude-code-mcp-enhanced": {
      "command": "node",
      "args": [
        "/path/to/claude-code-mcp-enhanced/dist/server.js"
      ],
      "env": {
        "MCP_CLAUDE_DEBUG": "false",
        "MCP_HEARTBEAT_INTERVAL_MS": "15000",
        "MCP_EXECUTION_TIMEOUT_MS": "1800000"
      }
    }
  }
}

🔑 第一次重要设置:接受权限

在MCP服务器能够成功使用claude_code工具之前,您必须先手动运行一次Claude CLI,并带上--dangerously-skip-permissions标志,登录并接受条款。

这是Claude CLI的一次性要求。

npm install -g @anthropic-ai/claude-code
claude --dangerously-skip-permissions

按照提示接受。一旦完成,MCP服务器就可以非交互式地使用该标志。

macOS可能会在第一次运行该工具时询问各种文件夹权限,第一次运行可能会失败。后续运行将正常工作。

🔗 连接到您的MCP客户端

设置好服务器后,您需要配置您的MCP客户端(如Cursor、Claude Desktop或其他使用mcp.jsonmcp_config.json的客户端)。

示例MCP配置文件

这里是如何将Claude Code MCP服务器添加到您的.mcp.json文件中的示例:

{
  "mcpServers": {
    "Local MCP Server": {
      "type": "stdio",
      "command": "node",
      "args": [
        "dist/server.js"
      ],
      "env": {
        "MCP_USE_ROOMODES": "true",
        "MCP_WATCH_ROOMODES": "true",
        "MCP_CLAUDE_DEBUG": "false"
      }
    },
    "other-services": {
      // 您的其他MCP服务
    }
  }
}

MCP配置位置

配置通常是在一个JSON文件中完成的。名称和位置可能因您的客户端而异。

Cursor

Cursor使用mcp.json

  • macOS: ~/.cursor/mcp.json
  • Windows: %APPDATA%\\Cursor\\mcp.json
  • Linux: ~/.config/cursor/mcp.json

Windsurf

Windsurf用户使用mcp_config.json

  • macOS: ~/.codeium/windsurf/mcp_config.json
  • Windows: %APPDATA%\\Codeium\\windsurf\\mcp_config.json
  • Linux: ~/.config/.codeium/windsurf/mcp_config.json

(注意:在某些混合设置中,如果也安装了Cursor,这些客户端可能会退回到使用Cursor的~/.cursor/mcp.json路径。如果使用Codeium扩展,请优先考虑Codeium特定的路径。)

如果不存在,请创建此文件。

🛠️ 提供的工具

此服务器公开了三个主要工具:

claude_code 💬

使用--dangerously-skip-permissions标志直接使用Claude Code CLI执行提示。

参数:

  • prompt(字符串,必需):要发送给Claude Code的提示。
  • workFolder(字符串,可选):Claude CLI执行的工作目录,当使用文件操作或引用任何文件时需要提供。
  • parentTaskId(字符串,可选):创建此任务的父任务ID(用于任务编排/回旋)。
  • returnMode(字符串,可选):结果应如何返回:'summary'(简洁)或'full'(详细)。默认为'full'。
  • taskDescription(字符串,可选):任务的简短描述,有助于在编排的工作流中更好地组织和追踪。
  • mode(字符串,可选):当MCP_USE_ROOMODES=true时,指定要使用的Roo模式(例如,“boomerang-mode”,“coder”,“designer”等)。

health 🩺

返回Claude Code MCP服务器的健康状态、版本信息和当前配置。

示例健康检查请求:

{
  "toolName": "claude_code:health",
  "arguments": {}
}

示例响应:

{
  "status": "ok",
  "version": "1.12.0",
  "claudeCli": {
    "path": "claude",
    "status": "available"
  },
  "config": {
    "debugMode": true,
    "heartbeatIntervalMs": 15000,
    "executionTimeoutMs": 1800000,
    "useRooModes": true,
    "maxRetries": 3,
    "retryDelayMs": 1000
  },
  "system": {
    "platform": "linux",
    "release": "6.8.0-57-generic",
    "arch": "x64",
    "cpus": 16,
    "memory": {
      "total": "32097MB",
      "free": "12501MB"
    },
    "uptime": "240 minutes"
  },
  "timestamp": "2025-05-15T18:30:00.000Z"
}

convert_task_markdown 📋

将Markdown任务文件转换为兼容Claude Code MCP的JSON格式。

参数:

  • markdownPath(字符串,必需):要转换的Markdown任务文件的路径。
  • outputPath(字符串,可选):保存JSON输出的路径。如果没有提供,则直接返回JSON。

示例请求:

{
  "toolName": "claude_code:convert_task_markdown",
  "arguments": {
    "markdownPath": "/home/user/tasks/validation.md",
    "outputPath": "/home/user/tasks/validation.json"
  }
}

示例使用场景

1. 基本代码操作

示例MCP请求:

{
  "toolName": "claude_code:claude_code",
  "arguments": {
    "prompt": "您的工作文件夹是/path/to/project\n\n将main.py中的函数foo重构为异步。",
    "workFolder": "/path/to/project"
  }
}

2. 任务编排(回旋模式)

父任务请求:

{
  "toolName": "claude_code:claude_code",
  "arguments": {
    "prompt": "您的工作文件夹是/path/to/project\n\n编排实现新API端点的实施,包括以下子任务:\n1. 创建数据库模型\n2. 实现API路由处理器\n3. 编写单元测试\n4. 文档化API",
    "workFolder": "/path/to/project"
  }
}

子任务请求(由父任务生成):

{
  "toolName": "claude_code:claude_code",
  "arguments": {
    "prompt": "您的工作文件夹是/path/to/project\n\n根据需求创建新API端点的数据库模型。",
    "workFolder": "/path/to/project",
    "parentTaskId": "task-123",
    "returnMode": "summary",
    "taskDescription": "为API端点创建数据库模型"
  }
}

3. 特定模式请求

示例使用Roo模式:

{
  "toolName": "claude_code:claude_code",
  "arguments": {
    "prompt": "您的工作文件夹是/path/to/project\n\n为用户身份验证模块创建单元测试。",
    "workFolder": "/path/to/project",
    "mode": "coder"
  }
}

🔄 任务转换器

MCP服务器包括一个强大的任务转换器工具,可以自动将人类可读的Markdown任务列表转换为完全可执行的MCP命令。这种智能转换器弥合了人类思考任务的方式与机器执行任务之间的差距。

完整工作流程

graph TD
    A["👤 用户"] -->|"创建tasks.md"| B["📝 多任务Markdown"]
    A -->|"提示Claude"| C["🤖 Claude Desktop"]
    C -->|"使用convert_task_markdown"| D["🔄 任务转换器MCP"]
    D -->|"验证格式"| E{"格式有效?"}
    E -->|"否"| F["📑 错误 + 修复说明"]
    F -->|"返回给用户"| A
    E -->|"是"| G["📋 MCP任务列表"]
    G -->|"执行任务"| H1["⚡ Claude任务#1"]
    H1 -->|"完成"| I1["下一个任务"]
    I1 -->|"执行任务"| H2["⚡ Claude任务#2"]
    H2 -->|"完成"| I2["下一个任务"]
    I2 -->|"执行任务"| H3["⚡ Claude任务#3"]
    H3 -->|"完成"| I3["更多任务"]
    I3 -->|"执行任务"| HN["⚡ Claude任务#N"]
    HN -->|"完成"| IN["🎉 所有任务已完成!"]
    
    style A fill:#4A90E2,stroke:#fff,stroke-width:2px,color:#fff
    style C fill:#7C4DFF,stroke:#fff,stroke-width:2px,color:#fff
    style D fill:#00BCD4,stroke:#fff,stroke-width:2px,color:#fff
    style F fill:#FF5252,stroke:#fff,stroke-width:2px,color:#fff
    style G fill:#4CAF50,stroke:#fff,stroke-width:2px,color:#fff
    style H1 fill:#FFC107,stroke:#fff,stroke-width:2px,color:#fff
    style H2 fill:#FFC107,stroke:#fff,stroke-width:2px,color:#fff
    style H3 fill:#FFC107,stroke:#fff,stroke-width:2px,color:#fff
    style HN fill:#FFC107,stroke:#fff,stroke-width:2px,color:#fff
    style IN fill:#4CAF50,stroke:#fff,stroke-width:2px,color:#fff

工作流程步骤

  1. 用户将MCP添加到他们的配置文件中
  2. 用户提示Claude:“使用convert_task_markdown执行我的tasks.md文件”
  3. MCP自动:
    • 加载Markdown文件
    • 验证格式(如果缺少部分则返回错误)
    • 将人类可读的任务转换为精确的可执行命令
    • 返回Claude Code可以顺序执行的JSON
  4. Claude接收JSON并可以使用claude_code工具执行每个任务

关键特性

  • 自动路径解析: 将通用指令如“切换到项目目录”转换为带有完整路径的确切可执行命令
  • 智能命令翻译: 将英语指令转换为精确的终端命令(例如,“激活虚拟环境”→source .venv/bin/activate
  • MCP协议合规性: 确保所有输出完全符合模型上下文协议
  • 无歧义: 所生成的命令使用确切路径和可执行语法——没有占位符或通用引用
  • 格式验证: 强制执行正确的Markdown结构并提供格式错误的有用错误消息
  • 实时进度更新: 在转换过程中提供实时进度更新,显示正在处理哪些任务

将Markdown任务转换为MCP命令

convert_task_markdown工具处理结构化的Markdown文件并生成兼容MCP的JSON:

请求格式:

{
  "tool": "convert_task_markdown",
  "arguments": {
    "markdownPath": "/path/to/tasks.md",
    "outputPath": "/path/to/output.json" // 可选
  }
}

响应格式:

{
  "tasksCount": 5,
  "outputPath": "/path/to/output.json",
  "tasks": [
    {
      "tool": "claude_code",
      "arguments": {
        "command": "cd /project && source .venv/bin/activate\n\n任务类型:验证...",
        "dangerously_skip_permissions": true,
        "timeout_ms": 300000
      }
    }
    // ... 更多任务
  ]
}

Markdown任务文件格式

任务Markdown文件应遵循以下结构:

# 任务001:任务标题

## 目标
清晰描述需要完成的内容。

## 要求
1. [ ] 第一要求
2. [ ] 第二要求

## 任务

### 模块或组件名称
- [ ] 验证`path/to/file.py`
   - [ ] 步骤1
   - [ ] 步骤2
   - [ ] 步骤3

转换器将:

  1. 解析Markdown结构
  2. 提取任务元数据和要求
  3. 为每个验证任务生成详细的提示
  4. 包含适当的项目目录设置
  5. 添加验证和完成总结

示例用法

  1. 创建一个任务文件tasks/api_validation.md):
# 任务001:API端点验证

## 目标
验证所有API端点在真实数据库连接下都能正常工作。

## 要求
1. [ ] 所有端点