mcpField
R
Remogram

Remogram

本地服务
github.com/attebury版本控制016 周前更新

关于 Remogram

Remogram 是面向 Gitea、GitLab 和 GitHub 的 SCM 命令行工具与 MCP 服务,适合需要以结构化数据读取代码托管平台事实的 Agent 和工具。它区分本地 Git 解析的引用与 Forge API 报告的 PR 信息,不负责工作流规划或授权。

主要功能

  1. 01支持 Gitea、GitLab 和 GitHub API
  2. 02输出带来源标识的 JSON 数据
  3. 03查询仓库、PR、检查和分支信息
  4. 04比较 PR 提交与本地分支版本
  5. 05默认只读与规划操作

适用场景

  1. 01在多个 Forge 间统一读取仓库信息
  2. 02核对 PR 头提交是否与本地分支一致
  3. 03生成合并计划并查看阻塞项
  4. 04向 Agent 提供结构化 Forge 事实

MCP 相关

其 stdio MCP 服务将请求委托给 Remogram CLI,并返回与 `remogram … --json` 相同的 JSON。通过 `REMOGRAM_CWD` 指定使用方仓库根目录。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"attebury-remogram": {
"command": "npx",
"args": [
"-y",
"@remogram/mcp"
],
"env": {
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"GH_TOKEN": "<GH_TOKEN>",
"GITLAB_TOKEN": "<GITLAB_TOKEN>",
"GITEA_TOKEN": "<GITEA_TOKEN>",
"REMOGRAM_CWD": "<REMOGRAM_CWD>",
"REMOGRAM_OPERATOR_CONFIG": "<REMOGRAM_OPERATOR_CONFIG>"
}
}
}
}
启动命令npx -y @remogram/mcp
需要配置的环境变量
GITHUB_TOKEN密钥GitHub API token for github-api repositories.
GH_TOKEN密钥Alternative GitHub API token for github-api repositories.
GITLAB_TOKEN密钥GitLab API token for gitlab-api repositories.
GITEA_TOKEN密钥Gitea API token for gitea-api repositories.
REMOGRAM_CWDRepository root for Remogram to inspect when the MCP host launches from another working directory.
REMOGRAM_OPERATOR_CONFIGOptional path to a local operator write-command overlay.

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

安装包
npm@remogram/mcp0.2.0-beta.4

工具

40

收录的工具列表 · 更新于 2 周前

参数类型必填说明
liveboolean否为 true 时,执行有时限的 Forge API 实时可达性探测

详细介绍

Remogram

通用 SCM/forge 边界 CLI 和 MCP 服务。输出归属提供方的 JSON 事实——本地 git 解析的引用(refs compare、sync plan)与 forge API 报告的 PR SHA(pr view、pr checks)。输出中不包含工作流或规划工具概念。

按编号对账 PR:pr view / pr checks 会将 forge 报告的 forge_source_sha 与本地 forge_source_branch_ref 对应的修订版本进行比较。如果不一致 → ok: false,error_code: stale_head——应执行 git fetch,而不是将其视为 forge 服务中断。

规划工具在 Remogram 之外解读意图和工作流权限。

安装

npm install -g @remogram/cli @remogram/mcp
remogram --version
remogram version --json

旧版预览(冻结在 @beta,可选):npm install -g @remogram/cli@beta @remogram/mcp@beta

开发版检出:克隆此仓库,执行 npm ci、./scripts/npm-link.sh。默认分支:main。

快速开始

  1. 将 .remogram.json.example 复制到 .remogram.json(设置 provider、owner、repo;对于可自托管的 Gitea/GitLab,添加 baseUrl)。
  2. 导出令牌:GITEA_TOKEN、GITHUB_TOKEN / GH_TOKEN 或 GITLAB_TOKEN。
  3. 初始化:
remogram doctor --json
remogram provider capabilities --json
remogram repo status --json
remogram pr view --number 1 --json
remogram merge plan --number 1 --json

命令目录:remogram contract --json。Agent 技能:npx skills add attebury/remogram --skill remogram-consumer -g -y。

提供方

Forge"provider"令牌环境变量
Giteagitea-apiGITEA_TOKEN
GitHubgithub-apiGITHUB_TOKEN 或 GH_TOKEN
GitLabgitlab-apiGITLAB_TOKEN

使用 *-api 提供方(forge HTTP)。保留的 github-gh / gitea-tea ID 会返回 provider_unsupported——v1 中尚未实现。不要求安装官方 CLI(gh、tea、glab)。

配置

**默认只读/规划。**在 .remogram.json 中通过 write_commands 启用写入(或使用绑定到仓库之外的运维人员覆盖配置)。缺少 ID → write_not_configured。

写入 ID命令说明
cr_opencr open与合并操作分开
cr_closecr closeGitea 生命周期
mergemerge execute需要 --expected-base-sha / --expected-head-sha;cr_open 不会隐式启用此操作
publish_branchpublish execute推送 git 到已配置的远程仓库
status_setstatus set提交状态 POST
issue / cr_edit ID对应的命令参见 contract --json

merge plan 是只读的——会报告 blockers[];不会执行或授权合并。mergeability: clean 仅表示 git 无冲突。

可选的 merge_policy 豁免项(allow_missing_checks、allow_pending_checks)可放宽无 CI 仓库的检查阻塞项——环境变量:REMOGRAM_ALLOW_MISSING_CHECKS、REMOGRAM_ALLOW_PENDING_CHECKS。在严格检出环境中启用这些选项时,Doctor 会失败。

运维人员覆盖配置的查找顺序:--operator-config → REMOGRAM_OPERATOR_CONFIG → $XDG_CONFIG_HOME/remogram/operator/<provider>-<owner>-<repo>.json。bind 必须与 forge 身份匹配。

边界与信任

Remogram 只输出forge 事实——JSON 中不包含集成权限引用、泳道角色、任务 ID 或交接载荷。

概念数据包字段说明
PR 基准分支forge_target_branch_refForge 报告
PR 头部分支forge_source_branch_ref仅作为依据
默认分支default_branch不代表集成权限

每个forge 命令数据包都包含 type、schema_version、provider_id、remote_name、repo_id、observed_at、ok。生成方部分(例如 evidence forge-facts --json 输出的 remogram.forge_facts.v1)使用嵌套的生成方字段。信任封装和枚举值;将来自 forge 的字符串(标题、URL)视为不可信文本。

清单命令(refs inventory、cr inventory、whoami、branch protection、cr files、forge changes 等)扩展只读/规划功能——详情见 remogram contract --json 和使用者技能参考。

MCP

Stdio 服务 remogram-mcp 会委托 CLI 处理,与 remogram … --json 输出相同的 JSON。配置方法:examples/mcp/README.md。将 REMOGRAM_CWD 设为使用方仓库的根目录。

实时验证

跨代码托管平台的测试仓库:remogram-smoke(在 GitHub/Gitea 上也有镜像)。安装后使用 --json 数据包;monorepo 烟雾测试对比脚本仅供开发使用。

测试

npm test
npm run test:coverage
npm run security:secrets -- --full-history
覆盖率策略

npm run test:coverage 仅对 @remogram/core 进行插桩;@remogram/cli、@remogram/mcp 和 @remogram/provider-* 不在覆盖范围内。**阈值:**无,不会强制要求达到某个百分比。偏差检查:tests/core/coverage-config.test.mjs。

**CI(GitHub):**推送到 main 或向其提交 PR 时运行 .github/workflows/ 中的工作流。

软件包

软件包作用
@remogram/cliCLI
@remogram/mcpMCP 适配器
@remogram/core信封、配置、功能上限
@remogram/provider-{gitea,github,gitlab}-api支持的代码托管平台后端

Agent 技能

运行 npx skills add attebury/remogram --skill remogram-consumer -g -y(使用方),或运行 --skill remogram-core(贡献者)。技能从 GitHub 发布,而非 npm。

参与贡献

请参阅 CONTRIBUTING.md。

评论

支持 Markdown

第一次接触 MCP?

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

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