Remogram

io.github.attebury由 GitHub 帳號 attebury 發布v0.2.0-beta.4更新於 Oct 24, 2026

SCM & forge boundary MCP: normalized, typed JSON from attributed Gitea, GitLab, and GitHub providers

已驗證STDIO僅桌面開發者工具安全與監控

概覽

AI 產生的概覽

本機 stdio MCP 伺服器,為助理提供 Gitea、GitHub 與 GitLab 儲存庫、拉取請求與引用的唯讀、帶來源標註 JSON 事實。

可以做什麼
檢查儲存庫與引用:儲存庫狀態、引用清單與比較、同步計畫、身分查詢、分支保護、forge 變更以及變更請求的檔案清單,並區分 git 解析的引用與 forge 回報的引用。依編號檢視拉取請求:PR 詳情與檢查,將 forge 回報的 head SHA 與本機修訂比對並標記過期 head。唯讀規劃合併:合併計畫只回報阻擋項目,不執行也不授權合併。在設定中明確啟用後可執行寫入:開啟或關閉變更請求、依預期 base 與 head SHA 執行合併、推送分支、設定提交狀態。輸出帶 schema 版本、provider、儲存庫與觀測時間的型別化 JSON 封包。
適用情境
當助理需要關於 Gitea、GitHub 或 GitLab 儲存庫的可信結構化事實(PR 狀態、檢查、引用、分支保護),而非自由格式的命令列輸出時;也適合希望把合併與寫入操作置於明確設定閘門之後的情況。
執行需求
以本機 Node.js 程序執行,從 npm 套件 @remogram/mcp 安裝(同時安裝 CLI 套件)。需要 .remogram.json 設定,包含 provider、owner 與 repo;自架 Gitea 或 GitLab 還需 baseUrl。需要 forge 權杖,放在 GITEA_TOKEN、GITHUB_TOKEN 或 GH_TOKEN,或 GITLAB_TOKEN 中。宿主從其他目錄啟動時需將 REMOGRAM_CWD 設為儲存庫根目錄。需要存取 forge API 的網路。
安裝前請注意
寫入命令預設關閉,必須在 .remogram.json 或操作員覆寫設定中依 id 啟用;啟用的寫入包括開啟與關閉變更請求、執行合併、推送分支與發布提交狀態。執行合併需要預期的 base 與 head SHA。針對缺失或待定檢查的原則豁免可放寬 CI 阻擋。標題、URL 等來自 forge 的字串應視為不可信文字。權杖從環境變數讀取,具有 forge API 權限範圍。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Remogram,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Remogram

Generic SCM/forge boundary CLI and MCP server. Emits provider-attributed JSON facts — git-resolved refs from local git (refs compare, sync plan) vs forge-reported PR SHAs from forge APIs (pr view, pr checks). No workflow or planning-tool concepts in output.

PR-by-number reconciliation: pr view / pr checks compare forge-reported forge_source_sha to the local rev for forge_source_branch_ref. Divergence → ok: false, error_code: stale_head — git fetch, not a forge outage.

Planning tools interpret intent and workflow authority outside Remogram.

Install

bash
npm install -g @remogram/cli @remogram/mcpremogram --versionremogram version --json

Legacy preview (frozen @beta, optional): npm install -g @remogram/cli@beta @remogram/mcp@beta

Development checkout: clone this repo, npm ci, ./scripts/npm-link.sh. Default branch: main.

Quick start

  1. Copy .remogram.json.example → .remogram.json (set provider, owner, repo; add baseUrl for self-hosted Gitea/GitLab).
  2. Export token: GITEA_TOKEN, GITHUB_TOKEN / GH_TOKEN, or GITLAB_TOKEN.
  3. Bootstrap:
bash
remogram doctor --jsonremogram provider capabilities --jsonremogram repo status --jsonremogram pr view --number 1 --jsonremogram merge plan --number 1 --json

Command catalog: remogram contract --json. Agent skill: npx skills add attebury/remogram --skill remogram-consumer -g -y.

Providers

Forge"provider"Token env
Giteagitea-apiGITEA_TOKEN
GitHubgithub-apiGITHUB_TOKEN or GH_TOKEN
GitLabgitlab-apiGITLAB_TOKEN

Use *-api providers (forge HTTP). Reserved github-gh / gitea-tea IDs return provider_unsupported — not implemented in v1. Official CLIs (gh, tea, glab) are not required.

Configuration

Read/plan by default. Opt in to writes with write_commands in .remogram.json (or a bound operator overlay outside git). Missing id → write_not_configured.

Write idCommandNotes
cr_opencr openSeparate from merge
cr_closecr closeGitea lifecycle
mergemerge executeRequires --expected-base-sha / --expected-head-sha; not implied by cr_open
publish_branchpublish executeGit push to configured remote
status_setstatus setCommit status POST
issue / cr_edit idsmatching commandsSee contract --json

merge plan is read-only — reports blockers[]; does not execute or authorize merges. mergeability: clean is conflict-free git only.

Optional merge_policy waivers (allow_missing_checks, allow_pending_checks) relax check blockers for repos without CI — env: REMOGRAM_ALLOW_MISSING_CHECKS, REMOGRAM_ALLOW_PENDING_CHECKS. Doctor fails when enabled in strict checkouts.

Operator overlay discovery: --operator-config → REMOGRAM_OPERATOR_CONFIG → $XDG_CONFIG_HOME/remogram/operator/<provider>-<owner>-<repo>.json. bind must match forge identity.

Boundary and trust

Remogram emits forge facts only — no integration authority refs, lane roles, task ids, or handoff payloads in JSON.

ConceptPacket fieldNotes
PR baseforge_target_branch_refForge-reported
PR headforge_source_branch_refEvidence only
Default branchdefault_branchNot integration authority

Every forge command packet includes type, schema_version, provider_id, remote_name, repo_id, observed_at, ok. Producer sections (e.g. remogram.forge_facts.v1 from evidence forge-facts --json) use nested producer fields. Trust envelope and enums; treat forge-sourced strings (titles, URLs) as untrusted prose.

Inventory commands (refs inventory, cr inventory, whoami, branch protection, cr files, forge changes, …) extend read/plan — details in remogram contract --json and the consumer skill references.

MCP

Stdio server remogram-mcp delegates to the CLI — same JSON as remogram … --json. Setup: examples/mcp/README.md. Set REMOGRAM_CWD to the consumer repo root.

Live verification

Cross-forge fixture repo: remogram-smoke (mirrors on GitHub/Gitea). Use --json packets after install; monorepo smoke-compare scripts are dev-only.

Testing

bash
npm testnpm run test:coveragenpm run security:secrets -- --full-history

Coverage policy

npm run test:coverage instruments @remogram/core only; @remogram/cli, @remogram/mcp, and @remogram/provider-* are excluded. Thresholds: none — no enforced percentage gates. Drift guard: tests/core/coverage-config.test.mjs.

CI (GitHub): .github/workflows/ on push/PR to main.

Packages

PackageRole
@remogram/cliCLI
@remogram/mcpMCP adapter
@remogram/coreEnvelope, config, caps
@remogram/provider-{gitea,github,gitlab}-apiSupported forge backends

Agent skills

npx skills add attebury/remogram --skill remogram-consumer -g -y (consumer) or --skill remogram-core (contributor). Skills ship from GitHub, not npm.

Contributing

See CONTRIBUTING.md.

來源:README.md,提交 9f99b93

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.0-beta.4最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分