项目简介
'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服务器、本地包分析器和定时任务调度器。
安装步骤
- 安装 Node.js 和 Yarn: 确保您的系统安装了 Node.js(推荐 20.0.0 及以上版本)和 Yarn 包管理器。
- 克隆仓库:
git clone https://github.com/TaeGyumKim/mcp-code-mode.git - 进入项目目录:
cd mcp-code-mode - 安装依赖:
yarn install - 构建所有包:
(这将把 TypeScript 代码编译成 JavaScript。)yarn workspaces foreach -A run build - (可选)项目扫描:
(首次运行建议执行此步骤,扫描项目生成 BestCase,需确保 Ollama 服务可用。)yarn scan:advanced - 运行 MCP 服务器 (本地):
(这将在本地启动一个通过标准 I/O (stdio) 通信的 MCP 服务器。)npx tsx mcp-stdio-server.ts - 使用 Docker 部署(推荐生产环境):
- 确保已安装 Docker 和 Docker Compose。
- 如果您的机器有 NVIDIA GPU:
docker-compose up -d --build - 如果只有 CPU:
docker-compose -f docker-compose.cpu.yml up -d --build
服务器配置 (适用于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' 工具来完成任务。
- 请求 LLM 分析项目: 在聊天中输入“分析当前项目并提出改进建议”。
- LLM 执行 'execute' 工具: LLM 将在后台调用 'execute' 工具,并在沙盒中运行 TypeScript 代码来执行 'metadata.createAnalyzer'、'filesystem.searchFiles' 等 API,以提取项目元数据。
- LLM 检索 BestCase 和指南: LLM 可能会再次调用 'execute' 工具,通过 'bestcase.search' 和 'guides.search' 等 API,根据项目上下文找到相关的最佳实践代码和编码指南。
- LLM 生成代码: LLM 根据收集到的上下文信息、最佳实践和指南,生成符合项目风格的高质量代码。例如,它可能会利用 'metadata.getComponentForDesignSystem' 来确保使用正确的 UI 组件。
- 审查和应用: 您可以审查 LLM 生成的代码,并将其应用到您的项目中。
信息
分类
开发者工具