@cyanheads/git-mcp-服务器
一个用于AI代理的Git MCP服务器. STIO & 流式 HTTP.
工具
28个基特业务,分为7个类别:
| 类别 | 工具 | 说明 |
|---|---|---|
| 仓库管理 | git_init, (中文(简体) ), git_clone, (中文(简体) ), git_status, (中文(简体) ), git_clean | 初始化重置、 从远程复制、 检查状态、 清理未跟踪文件 |
| 显示提交( C) | git_add, (中文(简体) ), git_commit, (中文(简体) ), git_diff | 阶段变化、 创建承诺、 比较变化 |
| 历史和检查 | git_log, (中文(简体) ), git_show, (中文(简体) ), git_blame, (中文(简体) ), git_reflog | 视图传输历史, 检查对象, 跟踪作者身份, 视图查看日志 |
| 分析 | git_changelog_analyze | 为 LLM 驱动的更改日志分析收集 git 上下文和指令 |
| 分支合并( M) | git_branch, (中文(简体) ), git_checkout, (中文(简体) ), git_merge, (中文(简体) ), git_rebase, (中文(简体) ), git_cherry_pick | 管理分支、 切换上下文、 整合更改、 应用特定承诺 |
| 远程操作 | git_remote, (中文(简体) ), git_fetch, (中文(简体) ), git_pull, (中文(简体) ), git_push | 配置远程、 获取更新、 同步寄存器、 发布更改 |
| 高级工作流程 | git_tag, (中文(简体) ), git_stash, (中文(简体) ), git_reset, (中文(简体) ), git_worktree, (中文(简体) ), git_set_working_dir, (中文(简体) ), git_clear_working_dir, (中文(简体) ), git_wrapup_instructions | 标签发布( 列表/ 创建/ 删除/ 验证), 隐藏更改, 重置状态, 管理工作树, 设置/ 清除会话目录 |
资源
| 资源 | URI 资源 | 说明 |
|---|---|---|
| Git 工作目录 | git://working-directory | 本届会议工作目录 git_set_working_dir。 。 。 . |
提示
| 提示 | 说明 | 参数 |
|---|---|---|
| Git 总结 | 完成git会话的工作流程协议:审查、文档、承诺和标记更改. | changelogPath, (中文(简体) ), createTag。 。 。 . |
开始
运行时间
和Bun和Node.js一起工作 运行时间是自动检测的.
| 运行时间 | 命令 | 最小版本 |
|---|---|---|
| 节点.js | npx @cyanheads/git-mcp-server@latest | 页:1 |
| 阿宝 | bunx @cyanheads/git-mcp-server@latest | 1.2.0 |
MCP 客户端配置
添加以下内容到您的 MCP 客户端配置( 例如 ), cline_mcp_settings.json) (中文(简体) ). 更新环境变量以匹配您的设置—— 尤其是 git 身份字段 .
{
"mcpServers": {
"git-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["@cyanheads/git-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info",
"GIT_BASE_DIR": "~/Developer/",
"LOGS_DIR": "~/Developer/logs/git-mcp-server/",
"GIT_USERNAME": "cyanheads",
"GIT_EMAIL": "[email protected]",
"GIT_SIGN_COMMITS": "true"
}
}
}
}
Bun 用户: 替换 "command": "npx" 与 "command": "bunx"。 。 。 .
用于可流式 HTTP, 设置 MCP_TRANSPORT_TYPE=http 财务报告和审定财务报表 MCP_HTTP_PORT=3015。 。 。 .
特征
建造在 mcp-ts-template。 。 。 .
| 特性 | 细节 |
|---|---|
| 申报工具 | 在单个自成一体的文件中定义能力. 该框架处理登记、鉴定和执行. |
| 处理错误 | 统一 McpError 用于一致、结构化错误反应的系统. |
| 认证 | 支助 none, (中文(简体) ), jwt,以及 oauth 模式. |
| 可插件存储 | 交换后端( E)in-memory, (中文(简体) ), filesystem, (中文(简体) ), Supabase, (中文(简体) ), Cloudflare KV/R2),不改变业务逻辑. |
| 观察性 | 有结构的伐木(Pino)和可选的可自动装置的可追踪和可测量的OpenTeleometry. |
| 依赖性注射 | 与 tsyringe 对于脱钩的,可测试的建筑. |
| 交叉运行时间 | 自动检测出Bun或Node.js,并使用适当的过程产卵法. |
| 供应商结构 | 可插接的git供应商系统. 目前:CLI. 计划:边缘部署的同位素-基特. |
| 工作目录管理 | 多重播工作流程的会话特定目录上下文. |
| 可配置的 git 身份 | 通过环境变量来覆盖作者/commiters信息,并返回到全局git配置. |
| 提交签名 | GPG/SSH 签名(默认情况下),用于承诺、合并、再基、樱桃签和标记。 在失败时悄悄倒向未签名 signed编号 :signingWarning 字段中的响应. |
| 安全问题 | 破坏行动(git clean, (中文(简体) ), git reset --hard需要明确确认旗帜. |
警卫
- 所有文件路径都经过验证和消毒,以防止目录的转录.
- 可选
GIT_BASE_DIR将操作限制在用于多租户沙箱的特定目录树上. - Git指令通过过程产卵使用经过验证的参数——无外壳插值.
- JWT和OAuth支持经认证的部署.
- 通过DI管理限制可选费率
RateLimiter服务. - 所有业务都记录在审计请求上.
配置
所有配置在启动时验证 src/config/index.ts关键环境变量:
| 变量 | 说明 | 默认 |
|---|---|---|
MCP_TRANSPORT_TYPE | 运输: stdio 或者说 http。 。 。 . | stdio |
MCP_SESSION_MODE | HTTP 会话模式 : stateless, (中文(简体) ), stateful,或 auto。 。 。 . | auto |
MCP_RESPONSE_FORMAT | 反应格式 : json (LLM-优化), markdown (人可读取),或 auto。 。 。 . | json |
MCP_RESPONSE_VERBOSITY | 详细级别 : minimal, (中文(简体) ), standard,或 full。 。 。 . | standard |
MCP_HTTP_PORT | HTTP 服务器端口. | 3015 |
MCP_HTTP_HOST | HTTP 服务器主机名 . | 127.0.0.1 |
MCP_HTTP_ENDPOINT_PATH | MCP请求端点路径. | /mcp |
MCP_AUTH_MODE | 认证模式 : none, (中文(简体) ), jwt,或 oauth。 。 。 . | none |
STORAGE_PROVIDER_TYPE | 存储后端 : in-memory, (中文(简体) ), filesystem, (中文(简体) ), supabase, (中文(简体) ), cloudflare-kv, (中文(简体) ), r2。 。 。 . | in-memory |
OTEL_ENABLED | 启用 OpenTeleometry . | false |
MCP_LOG_LEVEL | 最小日志级别 : debug, (中文(简体) ), info, (中文(简体) ), warn, (中文(简体) ), error。 。 。 . | info |
GIT_SIGN_COMMITS | GPG/SSH 签名用于承诺,合并,再基,樱桃签和标记. 失败后退至未签名(见回复) signed编号 :signingWarning) (中文(简体) ). | true |
GIT_AUTHOR_NAME | Git 作者名称 。 别名 : GIT_USERNAME, (中文(简体) ), GIT_USER。返回到全球图形配置. | (none) |
GIT_AUTHOR_EMAIL | Git 作者邮件. 别名 : GIT_EMAIL, (中文(简体) ), GIT_USER_EMAIL。返回到全球图形配置. | (none) |
GIT_BASE_DIR | 将所有 git 操作限制到特定目录树的绝对路径 . | (none) |
GIT_WRAPUP_INSTRUCTIONS_PATH | 带有工作流程指令的自定义标记下文件路径 . | (none) |
MCP_AUTH_SECRET_KEY | 所需经费 jwt auth. 32+ 字符密钥. | (none) |
OAUTH_ISSUER_URL | 所需经费 oauth 授权。 OIDC 供应商 URL. | (none) |
运行服务器
Via 软件包管理器( 无安装)
npx @cyanheads/git-mcp-server@latest
通过环境变量或您的 MCP 客户端配置配置 .
地方发展
# Build and run
npm run rebuild
npm run start:stdio # or start:http
# Dev mode with hot reload
npm run dev:stdio # or dev:http
# Checks and tests
npm run devcheck # lint, format, typecheck
npm test
云花岗工人
npm run build:worker # Build the worker bundle
npm run deploy:dev # Run locally with Wrangler
npm run deploy:prod # Deploy to Cloudflare
项目结构
| 目录 | 目的 |
|---|---|
src/mcp-server/tools | 工具定义*.tool.ts) (中文(简体) ). 基特能力就在这里. |
src/mcp-server/resources | 资源定义*.resource.ts) (中文(简体) ). Git 上下文数据源. |
src/mcp-server/transports | HTTP和STDIO的运输实施,包括认证. |
src/storage | StorageService 抽象和提供者执行. |
src/services | Git服务提供商(基于CLI的git操作). |
src/container | DI 集装箱登记和标志. |
src/utils | 记录、错误处理、性能、安全设施. |
src/config | 环境变量解析与验证 (Zod). |
tests/ | 单位和综合测试,镜像 src/ 结构. |
答复格式
通过配置输出格式和动词 MCP_RESPONSE_FORMAT 财务报告和审定财务报表 MCP_RESPONSE_VERBOSITY。 。 。 .
JSON 格式( 默认, LLM 消费优化) :
{
"success": true,
"branch": "main",
"staged": ["src/index.ts", "README.md"],
"unstaged": ["package.json"],
"untracked": []
}
标记下的格式( 人可读) :
# Git Status: main
## Staged (2)
- src/index.ts
- README.md
## Unstaged (1)
- package.json
LLM 总是通过 responseFormatter ——完整文件列表,元数据,时间戳——无论客户端显示什么. Verbosity控制包含多少细节: minimal (只有核心领域), standard (平衡),或 full (诸事.
发展指南
见 AGENTS.md 用于建筑、工具开发模式和贡献规则.
测试
测试使用情况 Bun的测试跑道 与 Vitest 兼容.
bun test # Run all tests
bun test --coverage # With coverage
bun run devcheck # Lint, format, typecheck, audit
路线图
服务器使用基于提供者的架构进行 git 操作 :
- CLI 供应商 (目前)——通过土生土长的git CLI实现全28个工具覆盖. 需要安装本地基特.
- 异态提供商 (计划)——实施边境部署的纯JS(Cloudflare Workers,Vercel Edge,Deno部署). 用途 同位素 - git。 。 。 .
- GitHub API 供应商 (可能)——通过GitHub REST/GraphQL API进行云-内生操作,不需要本地回放.
捐款
欢迎提出问题和拉动请求。 提交前运行检查 :
npm run devcheck
npm test
许可证
阿帕奇2.0 (英语). 见 自由主义。 。 。 .