使用说明
MCP服务器代码
一个模型上下文协议(MCP)服务器,将Git存储库内容暴露给大型语言模型,使用官方 @modelcontextprotocol/sdk.
特性
- 搜索:搜索资源并返回包含文本片段的结构化结果
- 获取:使用元数据检索特定资源(文件)的详细结构化内容
- OpenAI兼容:使用标准化
search和fetchChatGPT深度研究兼容性的工具名称 - 安全:路径遍历保护,以保持对存储库的访问
- 演出:跳过常用构建目录(node_modules、.git、target、build、dist)
安装
npm install
配置
服务器按照以下优先级顺序加载环境变量:
.env.local(最高优先级,优先考虑当地发展).env(默认设置,可以提交到git)- 内置默认值 (代码中的回退值)
设置
-
复制
env.example向.env对于默认设置:cp env.example .env -
为了地方发展,创造
.env.local要覆盖默认值,请执行以下操作:# .env.local (not committed to git) PORT=3131 REPO_PATH=repo
此模式允许您:
- 保留默认设置
.env(致力于git) - 在本地覆盖
.env.local(被git忽略) - 共享一致的默认值,同时允许个人覆盖
用法
开发模式(本地存储库)
要针对本地oc-sc存储库运行服务器,请执行以下操作:
npm run dev
这将启动MCP服务器 REPO_PATH=repo.
测试
要测试服务器功能,请执行以下操作:
npm test
这将创建一个测试存储库,并验证所有工具是否正常工作。
自定义存储库
要与其他存储库一起使用:
REPO_PATH=/path/to/your/repo node index.js
OpenAI集成
此服务器旨在与OpenAI的自定义MCP连接器配合使用。以下是如何连接它:
1.启动服务器
npm run dev
服务器将输出:
🚀 Starting MCP Git Gateway Server
📂 Repository path: /home/user/dev/myrepo
🌐 Port: 3131
🎉 MCP Git Gateway Server started successfully
📡 Server is listening on http://localhost:3131
🔗 MCP endpoint: http://localhost:3131/mcp
💊 Health check: http://localhost:3131/health
2.通过OpenAI ChatGPT连接
- 转到ChatGPT并查找MCP连接选项
- 使用以下设置添加新的MCP服务器:
- 服务器URL:
http://localhost:3131/mcp - 方法:HTTP POST
- 内容类型:
application/json
- 服务器URL:
3.可用工具
OpenAI ChatGPT兼容性
此MCP服务器使用标准化的工具名称(search 和 fetch)这是OpenAI的ChatGPT深度研究功能特别认可的。这些工具名称是与ChatGPT的MCP连接器正确集成所必需的。
一旦连接,ChatGPT将可以访问这些工具:
search
使用提供的查询字符串搜索资源,并返回匹配的结果。
{
"query": "function name"
}
返回一个结构化对象:
results:匹配资源数组id:资源ID(文件路径)title:根据文件名生成标题text:显示匹配行的文本片段url:null(用于本地文件)
fetch
检索由给定ID(文件路径)标识的特定资源的详细内容。
{
"id": "relative/path/to/file.js"
}
返回一个结构化对象:
id:资源ID(文件路径)title:根据文件名生成标题text:完整的文件内容url:null(用于本地文件)metadata:文件信息(大小、修改日期、扩展名)
技术细节
- 协议:使用官方MCP SDK完全符合规范
- 运输:使用Express.js服务器的HTTP POST/GET
- 端口:可通过配置
PORT环境变量(默认值:3131) - 端点:
/mcp-主MCP协议端点/health-健康检查端点
- 支持的MCP方法:
initialize-协议握手和能力协商notifications/initialized-客户准备就绪通知tools/list-列出可用工具tools/call-执行工具(搜索、获取)
- 安全:路径遍历保护确保访问保持在存储库范围内
- 演出:智能目录筛选,避免大型构建目录
- 错误处理:使用描述性消息进行全面的错误处理
故障排除
服务器无法启动
- 确保
REPO_PATH指向有效的Git存储库 - 检查Node.js版本是否支持MCP SDK
OpenAI连接问题
- 验证服务器启动时没有错误
- 检查OpenAI设置中的命令路径和参数是否正确
- 确保环境变量设置正确
找不到文件
- 验证
REPO_PATH是正确的 - 检查存储库权限
- 确保目录不为空
发展
服务器包括全面的日志记录,以帮助调试任何问题:
# Enable verbose logging
DEBUG=* npm run dev
依赖项
@modelcontextprotocol/sdk:官方MCP SDKsimple-git:Git存储库操作dotenv:环境变量加载fs:文件系统操作path:路径操作实用程序
