这是一个基于 Model Context Protocol (MCP) 构建的自定义服务器实现,旨在为大型语言模型(LLM)客户端提供访问本地开发环境的能力,特别是执行终端命令、查找代码仓库位置和运行测试。
项目简介
该项目使用 '@modelcontextprotocol/sdk/server' 构建,通过标准输入输出(Stdio)传输协议与 MCP 客户端通信。它注册并提供了多个工具(Tools),允许 LLM 调用这些工具来完成特定的本地开发任务。
主要功能点
- 执行终端命令: 允许 LLM 在本地机器上安全地执行预定义的终端命令(当前配置为只读模式下的命令)。
- 查找代码仓库位置: 根据用户提供的关键词,在一个预设的本地代码仓库列表中查找匹配的仓库路径,支持模糊匹配建议。
- 运行单元测试: 根据用户提供的关键词找到对应的仓库测试命令(目前配置为 .NET 项目),并在本地执行该命令。
- 生成解决问题提示: 根据输入的提示信息,生成一个结构化的、为全栈医疗技术软件工程师设计的解决问题工作流程提示。
- 环境区分: 支持通过启动参数指定不同的“环境”(如 'codevideo', 'solve', 'fullstackcraft'),以便根据环境使用不同的代码仓库列表。
安装步骤
- 确保您已安装 Node.js 和 npm。
- 克隆本仓库到您的本地机器。
- 打开终端,进入仓库目录。
- 安装项目依赖:
npm install - 构建项目:
这将生成可执行的 JavaScript 文件在 'build' 目录下。npm run build
服务器配置
本服务器设计用于被 MCP 客户端(如支持 MCP 的 LLM 桌面应用)调用。在您的 MCP 客户端配置中,您需要添加一个新的 MCP 服务器条目,指定如何启动此服务器进程。
通常配置信息是 JSON 格式,类似于以下结构(请根据您的客户端实际配置界面填写):
- Server Name (服务器名称): 例如填写 'mcp-local' (这是一个标识符,可以自定义)
- Command (启动命令): 填写 'node'
- Args (启动参数): 填写一个包含两个元素的数组
- 数组第一个元素:指向您本地仓库中构建好的 'index.js' 文件的绝对路径。例如:'/path/to/your/cloned/mcp-server/build/index.js'
- 数组第二个参数:指定服务器运行的环境。格式为 '--environment <您的环境名称>'。例如,如果您想使用 'fullstackcraft' 环境中定义的仓库列表,填写 '--environment fullstackcraft'。您可以根据 'src/tools/list_repo_locations.ts' 文件中定义的 'codevideo', 'solve', 'fullstackcraft' 环境选择或查看代码了解更多。
重要提示: 'list_repo_locations' 和 'run_test_for_repo' 工具中硬编码的本地文件路径需要与您实际的本地机器文件结构相匹配,否则这些工具将无法找到对应的仓库或执行正确的命令。您可能需要修改 'src/tools/list_repo_locations.ts' 和 'src/tools/run_test_for_repo.ts' 文件中的路径和关键词映射,然后重新构建。
基本使用方法
配置完成后,当您在 MCP 客户端中与 LLM 交互时,LLM 可以通过 MCP 协议发现并调用此服务器提供的工具。您可以向 LLM 提出需要使用这些工具的问题或指令,例如:
- “请列出与 'CPM1' 相关的仓库位置。” (这会触发 'list_repo_locations' 工具)
- “请在 'Common' 仓库中运行单元测试。” (这会触发 'run_test_for_repo' 工具)
- “请执行终端命令 'pwd'。” (这会触发 'issue_terminal_command' 工具)
- “请根据我的需求生成一个解决问题的开发提示。” (这会触发 'generate_solve_prompt' 工具)
LLM 会根据其能力和您的请求,决定何时调用哪个工具,并将工具返回的结果作为上下文的一部分来生成回复。
信息
分类
开发者工具