项目简介

'mcp-code-mode' 是一个先进的MCP服务器实现,专注于通过“Code Mode”模式优化大型语言模型(LLM)的代码生成任务。它不直接向LLM暴露大量工具,而是提供一个单一的 'execute' 工具,允许LLM在安全的沙盒环境中编写和运行TypeScript代码。这个沙盒环境预集成了文件系统操作、高质量代码案例(BestCase)管理、动态指南加载以及项目元数据分析等功能。其核心优势在于能将LLM的token使用量降低高达98%,并通过AI代码分析和设计系统/工具库智能感知来提升生成代码的质量和一致性。

主要功能点

  • Code Mode 标准合规: 采用单一 'execute' 工具模式,LLM直接编写TypeScript代码,并通过沙盒安全执行。
  • AI 代码分析与质量评估: 利用Ollama LLM进行GPU加速的代码分析,自动评估代码质量并进行多维度评分(结构、API连接、设计系统、错误处理、类型使用、状态管理、性能、实用性)。
  • BestCase 管理: 自动保存和加载高质量代码模式(BestCase),支持按8个维度进行细粒度搜索,帮助LLM学习最佳实践。
  • 智能环境感知: 自动检测项目使用的UI框架(如Element Plus, Vuetify)、工具库(如VueUse, Lodash)及API类型(如gRPC, OpenAPI),确保LLM生成的代码与项目风格一致。
  • 本地包系统: AI自动分析并注册组织内部的私有设计系统和工具库,支持Git URL、node_modules和本地路径。
  • 自动项目上下文: 'execute' 工具的每次调用都会自动在响应中包含项目元数据,为LLM提供实时、精确的上下文信息,避免重复分析。
  • 动态指南加载: 基于元数据搜索和优先级合并机制,为LLM提供最相关的编码指南和最佳实践,有效减少不必要的token消耗。
  • 安全沙盒执行: 使用vm2沙盒技术隔离代码执行环境,确保LLM生成和执行的代码不会对宿主系统造成危害。
  • Docker 部署: 提供GPU支持的Docker部署方案,包含Ollama LLM、MCP服务器、本地包分析器和定时任务调度器。

安装步骤

  1. 安装 Node.js 和 Yarn: 确保您的系统安装了 Node.js(推荐 20.0.0 及以上版本)和 Yarn 包管理器。
  2. 克隆仓库:
    git clone https://github.com/TaeGyumKim/mcp-code-mode.git
  3. 进入项目目录:
    cd mcp-code-mode
  4. 安装依赖:
    yarn install
  5. 构建所有包:
    yarn workspaces foreach -A run build
    (这将把 TypeScript 代码编译成 JavaScript。)
  6. (可选)项目扫描:
    yarn scan:advanced
    (首次运行建议执行此步骤,扫描项目生成 BestCase,需确保 Ollama 服务可用。)
  7. 运行 MCP 服务器 (本地):
    npx tsx mcp-stdio-server.ts
    (这将在本地启动一个通过标准 I/O (stdio) 通信的 MCP 服务器。)
  8. 使用 Docker 部署(推荐生产环境):
    • 确保已安装 Docker 和 Docker Compose。
    • 如果您的机器有 NVIDIA GPU:
      docker-compose up -d --build
    • 如果只有 CPU:
      docker-compose -f docker-compose.cpu.yml up -d --build
    (这将启动 Ollama LLM、MCP Code Mode 服务器、本地包分析器和定时调度器。)

服务器配置 (适用于MCP客户端,例如VS Code Copilot)

MCP客户端需要配置与此服务器建立连接。以下是一个 JSON 格式的配置示例及参数说明。用户只需将此配置添加到其MCP客户端的设置中,无需理解代码。

{
  "mcpServers": {
    "mcp-code-mode-server": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "exec",
        "-i",
        "mcp-code-mode-server",
        "node",
        "/app/mcp-stdio-server.js"
      ],
      "name": "MCP Code Mode Server",
      "description": "基于Anthropic Code Mode模式的MCP服务器,支持在沙盒中执行TypeScript代码进行高级AI辅助编程。"
    }
  }
}
  • 'mcp-code-mode-server': 服务器的唯一标识符(名称),您可以自定义。
  • 'type': 'stdio' 表示通过标准 I/O 进行通信。
  • 'command': 启动 MCP 服务器的命令。这里配置为 'docker',表示通过 Docker 容器执行服务器。
  • 'args': 传递给 'command' 的参数列表。
    • 'exec': Docker 命令,用于在运行中的容器中执行命令。
    • '-i': 保持 stdin 打开,即使没有附加。
    • 'mcp-code-mode-server': Docker Compose 文件中定义的 MCP 服务器容器的服务名称。
    • 'node': 在容器内部执行的命令,用于运行 Node.js 脚本。
    • '/app/mcp-stdio-server.js': MCP 服务器脚本在 Docker 容器内部的路径。
  • 'name': 服务器的显示名称,方便在客户端界面识别。
  • 'description': 服务器的简要描述。

基本使用方法

一旦 MCP 服务器启动并成功配置到您的 MCP 客户端(例如 VS Code Copilot/Claude),您就可以在聊天界面中与 LLM 交互。由于采用了“Code Mode”模式,LLM 将主要通过 'execute' 工具来完成任务。

  1. 请求 LLM 分析项目: 在聊天中输入“分析当前项目并提出改进建议”。
  2. LLM 执行 'execute' 工具: LLM 将在后台调用 'execute' 工具,并在沙盒中运行 TypeScript 代码来执行 'metadata.createAnalyzer'、'filesystem.searchFiles' 等 API,以提取项目元数据。
  3. LLM 检索 BestCase 和指南: LLM 可能会再次调用 'execute' 工具,通过 'bestcase.search' 和 'guides.search' 等 API,根据项目上下文找到相关的最佳实践代码和编码指南。
  4. LLM 生成代码: LLM 根据收集到的上下文信息、最佳实践和指南,生成符合项目风格的高质量代码。例如,它可能会利用 'metadata.getComponentForDesignSystem' 来确保使用正确的 UI 组件。
  5. 审查和应用: 您可以审查 LLM 生成的代码,并将其应用到您的项目中。

信息

分类

开发者工具