mcpField
R
repoport

repoport

本地服务
github.com/CloudCorpRecords其他01 天前更新

关于 repoport

repoport 是让 Agent 通过 MCP 操作本地 Git 仓库的工具,也提供命令行界面。它涵盖状态、差异、暂存、提交、日志和分支操作,调用 Git 时不经过 shell。

主要功能

  1. 01查看仓库状态和差异
  2. 02暂存文件并提交更改
  3. 03查看提交日志和版本内容
  4. 04创建、列出和切换分支
  5. 05校验仓库路径与版本参数

适用场景

  1. 01让 Agent 检查工作区改动
  2. 02暂存文件并提交已暂存内容
  3. 03查看历史提交或指定版本
  4. 04创建分支或切换工作分支

MCP 相关

提供 stdio MCP 服务,向客户端开放本地 Git 仓库的状态、差异、暂存、提交、日志、版本和分支工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-repoport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/repoport"
]
}
}
}
启动命令npx -y @reneturcios/repoport

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/repoport0.1.0
ocighcr.io/cloudcorprecords/repoport:0.1.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

repoport

repoport 让 Agent 可以直接操作本地 Git 仓库,而无需提供 Shell。它涵盖日常工作流程——检查状态、查看差异、暂存文件、提交、查看日志、检查某个修订版本以及切换分支——并通过直接调用 Git CLI 来实现,每个参数都作为数据传递,而不是拼接到 Shell 字符串中。

运行任何操作之前,都会检查仓库路径:路径必须存在,且必须位于 Git 工作树内。以连字符开头的类似修订版本的值会被拒绝,因此分支名称或修订版本无法向调用中注入额外的 Git 标志。

安装

npx @reneturcios/repoport status .

或者运行容器镜像:

docker run -i ghcr.io/cloudcorprecords/repoport

容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。镜像和 npm 包都要求系统中有 git 二进制文件,并且能够访问指定的仓库;请根据需要挂载本地检出或针对本地检出运行。

CLI

# Working tree status for a repository
repoport status ~/src/my-project

# Recent commits (default 10, pass a count to change it)
repoport log ~/src/my-project
repoport log ~/src/my-project 25

repoport --version

退出代码:成功时为 0;Git 或仓库检查失败时为 1(错误会附带 Git 自身的消息);用法错误时为 2。

MCP 服务

一个可执行文件同时支持这两种用途。mcp 子命令会启动一个 stdio MCP 服务:

npx -y @reneturcios/repoport mcp

MCP 客户端配置:

{
  "mcpServers": {
    "repoport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/repoport", "mcp"]
    }
  }
}
工具
工具输入返回内容
git_statusrepo_path(必填)仓库的完整 git status 输出。
git_diff_unstagedrepo_path(必填),context_lines(可选,默认值为 3)未暂存工作树更改的统一差异。
git_diff_stagedrepo_path(必填),context_lines(可选,默认值为 3)已暂存、将在下一次提交中包含的更改的统一差异。
git_diffrepo_path、target(均必填),context_lines(可选)与给定目标修订版本的统一差异。
git_addrepo_path、files(字符串数组,均必填)暂存指定文件;路径会放在 -- 之后传递。
git_resetrepo_path(必填)取消暂存所有内容(git reset),保留工作树中的修改。
git_commitrepo_path、message(均必填)使用给定消息提交当前已暂存的所有内容。
git_logrepo_path(必填),max_count(可选,默认值为 10),start_timestamp、end_timestamp(可选的 ISO 字符串)按时间从近到远列出提交;时间戳范围会根据每个提交的作者日期筛选。
git_showrepo_path、revision(均必填)指定修订版本的 git show 输出。
git_create_branchrepo_path、branch_name(均必填),base_branch(可选)创建分支,但不切换到该分支。
git_checkoutrepo_path、branch_name(均必填)将工作树切换到指定分支。
git_branchrepo_path(必填),branch_type(可选:local、remote 或 all,默认值为 local),contains、not_contains(可选)列出分支;也可筛选包含或不包含某个提交的分支。

每个工具都会将 Git 的 stdout 作为文本结果返回。失败情况——路径缺失、路径不是仓库、Git 出错或以连字符开头的值被拒绝——会作为工具错误返回,并附带底层消息。

安全说明
  • 任何环节都不会调用 Shell:参数会通过 execFile 参数数组传递。
  • 以 - 开头的 branch_name、target、revision、contains 和 not_contains 值会在 Git 收到之前被拒绝。
  • git_commit 只会提交已经暂存的内容;不会代为暂存。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network
npm run dev     # run the CLI from source via tsx

测试会在临时目录中构建一个一次性仓库(在那里初始化 Git 并设置本地测试身份),并针对该仓库运行完整工作流程。因此,测试需要 PATH 中有 git 二进制文件,但不需要网络,也不需要已有检出。

许可证

MIT——详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。