GRAFOMEM CGR Capture について
GRAFOMEM CGR Captureは、コーディングエージェントが判断と後の結果をGRAFOMEM Cloudに記録するMCPサーバーです。指定したwork_item_idで両者を関連付けます。記録のみを担当し、スコアの計算や表示は行いません。署名エンベロープ検証器も任意で含まれます。
主な機能
- 01判断と後の結果の記録
- 02work_item_idによる記録の関連付け
- 03設定済みロールへの判断の帰属
- 04テナント先の固定と検証
- 05任意の二者署名検証器
活用シーン
- 01デプロイの安全判断と結果の記録
- 02スキャンやレビューの指摘の正誤確認
- 03後のスコアリングに向けた帰属可能な記録の蓄積
MCP 対応
stdioのMCPサーバーを通じて、コーディングエージェントに判断と結果を記録するツールを提供し、指定したGRAFOMEM Cloudテナントに書き込みます。スコアの計算や取得、操作の承認や遮断は行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx grafomem-cgrGRAFOMEM_CGR_TENANT_KEYシークレットYour GRAFOMEM Cloud tenant API key (X-API-Key). Needs decisions:read for the durability guard.GRAFOMEM_CGR_TENANTThe tenant id you expect that key to resolve to. If the key resolves to any other tenant, every write is refused.GRAFOMEM_CGR_ROLE_KEYS_JSONシークレットRole handles to public agent_key (64-hex Ed25519), inline as JSON. Example: {"cc-builder@acme":"<64-hex>"}. Use this or GRAFOMEM_CGR_ROLE_KEYS.GRAFOMEM_CGR_ROLE_KEYSシークレットPath to a JSON file with the same role-handle to public agent_key mapping. Use this or GRAFOMEM_CGR_ROLE_KEYS_JSON.GRAFOMEM_CGR_FORBIDDEN_TENANTSComma-separated tenant ids to always refuse, even if pinned by mistake. Put your production tenant here.GRAFOMEM_APIGRAFOMEM Cloud base URL. Defaults to https://api.grafomem.com.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
grafomem-cgr
コーディングエージェントが自身の判断と、その結果を記録できるMCP サーバーです。 ご利用のGRAFOMEM Cloudテナントに記録します。
モデルは今記録し、後で評価する方式です。エージェントが誤る可能性のある判断を下すたびに、「このデプロイは安全」「このスキャンに問題はない」「このレビューでの指摘は妥当」といった判断を記録します。後に実際の結果が明らかになった時点で、その結果を記録します。両者は、ユーザーが指定するwork_item_idで結び付けられます。こうして、判断とその結果を、帰属先を明確にした追記専用の記録として蓄積します。
このパッケージが担うのは、記録の部分だけです。テナントに書き込みますが、スコアの計算、提供、表示は行いません。
cgr.cosign.v1検証ツール(オプション)
記録クライアントに加えて、このパッケージにはcgr.cosign.v1二者間連署エンベロープのリファレンス検証ツールも含まれています。grafomem_cgr.cosign_verify.verify(record, registry, ledger, trusted_issuers)は、docs/cgr/cgr-cosign-v1-spec.md §8(決定0010および0011による改訂)を実装しています。trusted_issuersは必須です(§8.2aの発行者ピン留め)。発行者のキー ID のコレクションを指定します。デフォルト値はなく、すべてを信頼する方法もありません。省略するか空のセットを渡すと、レコードが自己申告した発行者を信頼せず、拒否します。これは2つ目の独立したリファレンス実装です(1つ目はJS版の@gns-foundation/cgr-verifyです)。どちらも、conformance/cgr-cosign-v1/にある同じ28個のベクトル適合性コーパスに対し、判定の不一致ゼロで合格しています。追加機能を指定して依存関係をインストールしてください。
pip install grafomem-cgr[verify] # rfc8785 + cryptography
記録機能はこの検証ツールに依存しません。追加機能は検証専用です。
対象外
- 記録時にスコアを算出せず、セッションにスコアを読み戻すこともありません。
- エージェントの安全性を高めたり、何かを制限したりするものではありません。ブロック、承認、阻止は行いません。
- コンプライアンス、監査、セキュリティ製品ではありません。
- GRAFOMEM Cloudのスコアリングは、現在、単一のディメンションで行われます。
domainに関係なく、すべての判断/認定は1つのディメンションでスコアリングされます。指定したdomainは判断ごとに永続的に保存されるため(下記参照)、後から帰属先を確認できますが、現時点では個別にスコアリングされません。
要件
GRAFOMEM Cloudアカウントが必要です。無料プランで十分です。想定される利用量は1日あたり数件の判断です。管理対象の判断は、プラン上で実際の利用量として計上される点にご注意ください。サーバーの起動時に現在の利用量が表示されるため、予想外の請求は発生しません。
インストールと設定
コマンドを1つ実行し、環境変数を設定するだけです。リポジトリのチェックアウトや起動スクリプトは不要です。
Claude Code:
claude mcp add grafomem-cgr --scope user \
--env GRAFOMEM_CGR_TENANT_KEY=sk_your_api_key \
--env GRAFOMEM_CGR_TENANT=your_tenant_id \
--env GRAFOMEM_CGR_ROLE_KEYS_JSON='{"cc-builder@acme":"<64-hex public key>"}' \
-- uvx grafomem-cgr
または、JSON 設定を読み込む任意のMCPクライアント:
{
"mcpServers": {
"grafomem-cgr": {
"command": "uvx",
"args": ["grafomem-cgr"],
"env": {
"GRAFOMEM_CGR_TENANT_KEY": "sk_your_api_key",
"GRAFOMEM_CGR_TENANT": "your_tenant_id",
"GRAFOMEM_CGR_ROLE_KEYS_JSON": "{\"cc-builder@acme\":\"<64-hex public key>\"}"
}
}
}
}
環境変数
| 変数 | 必須 | 意味 |
|---|---|---|
GRAFOMEM_CGR_TENANT_KEY | はい | テナントのX-API-Keyです。耐久性ガードにはdecisions:readが必要です。 |
GRAFOMEM_CGR_TENANT | はい | このキーの解決先として想定するテナント ID です。キーの解決先が異なる場合、すべての書き込みが拒否されます。 |
GRAFOMEM_CGR_ROLE_KEYS_JSON | いずれか一方 | ロールハンドルから公開agent_keyへの対応付けを、JSON でインライン指定します。 |
GRAFOMEM_CGR_ROLE_KEYS | 次の2つのうちいずれか | 同じ対応付けを、JSON ファイルへのパスで指定します。 |
GRAFOMEM_CGR_FORBIDDEN_TENANTS | いいえ | 誤ってピン留めされている場合でも、常に拒否するテナント ID をカンマ区切りで指定します。本番テナントをここに設定してください。 |
GRAFOMEM_API | いいえ | ベース URL です。デフォルトはhttps://api.grafomem.comです。 |
ロールキー
ロールハンドル(cc-builder@acme)は、判断の帰属先となる ID です。そのagent_keyは安定した**Ed25519公開鍵(64桁の16進数)**で、レコードが対象として結び付ける相手を表します。ロールごとに1つ生成してください。
openssl genpkey -algorithm Ed25519 -out cc-builder.pem
openssl pkey -in cc-builder.pem -pubout -outform DER | tail -c 32 | xxd -p -c 64
秘密鍵は保管してください。このバージョンでは使用せず、公開鍵のみに結び付けますが、判断ごとの所有証明は今後のセキュリティ強化として予定されています。秘密鍵を保持していれば、その ID が自分のものであることを証明できます。
ツール
cgr_record_decision — 判断を記録します。
| arg | |
|---|---|
work_item_id | 任意に選ぶ安定した結合キー(PR 番号、タスク ID、実行 ID) |
agent_handle | 設定済みのロールハンドルのいずれか |
domain | deploy-verification | security-scan | adversarial-review |
decision | certify | reject |
verifiability_tag | judgment(デフォルト)| rule |
reason_code, reason_text | 任意 |
agent_confidence | 任意。受け付けられますが、まだ保存されません — 以下を参照 |
agent_confidence は前方互換性のためにツールスキーマで受け付けられますが、現在、判断記録には書き込まれません。保存されることを前提にしないでください。
スコアを動かすのは judgment + certify のみです。rule による判断は決定論的で、評判への影響はありません — 正直にタグ付けしてください。
cgr_record_outcome — 結果を記録します。
| arg | |
|---|---|
work_item_id | 判断時に使用したものと同じ結合キー |
result | 結果ラベル。例:deploy_succeeded、ci_failed、vuln_found、review_confirmed |
source | 任意の来歴文字列 |
認識されない result は意図的に何もしません。 推測で解決するのではなく、判断は保留のままです — 判断を誤って解決すると、記録が恒久的に損なわれます。対応するラベルは次のとおりです。deploy_succeeded、deploy_healthy、ci_passed、migration_applied、merge_landed、pr_merged、scan_clean、no_vuln_confirmed、review_confirmed、finding_correct、bug_confirmed(成功);deploy_failed、deploy_rolled_back、migration_failed、ci_failed、merge_reverted、vuln_found、secret_found、review_refuted、finding_wrong、bug_not_real(失敗)。
安全性の特性
- テナントの固定。 テナントを事前に指定します。この固定は起動時に適用され、各判断の応答で API が実際に解決したテナントと再照合されます — キーがローテーションされたり、誤って指定されたりしても、気付かないうちに別の場所へ書き込まれることはありません。
- 拒否リスト。
GRAFOMEM_CGR_FORBIDDEN_TENANTSに指定したテナントは明示的に拒否されます。 - キーの管理。 呼び出し元はロールのハンドルを選び、サーバーがそのロールのキーを挿入します。ツール呼び出しで任意のキーを指定したり、別のテナントを対象にしたりすることはできません。
- フェイルオープン。 サーバーの設定に誤りがある場合、サーバーはゼロ以外の終了コードで終了し、読み込まれません。セッションはブロックされずに続行され、ツールは登録されません。拒否されたツール呼び出しは、MCP サーバーをクラッシュさせるのではなく、通常のツール出力としてエラーを返します。
- ドメインの永続性。
domainは専用フィールドとして送信され、各判断についてサーバー側で、暗号化されず CGr から読み取り可能な判断parameters内のcgr_domainとして保存されます — クライアント側のログではなく、署名済みの判断記録に保存されます。selftestには永続性ガードが含まれており、書き込んだ判断を再読み込みし、cgr_domainが往復していなければ、ドメインのない判断を黙って記録するのではなく、明確なエラーを出して中断します。
CLI
grafomem-cgr # run the stdio MCP server (the default)
grafomem-cgr setup # register your role identities on the tenant (idempotent)
grafomem-cgr selftest --handle cc-builder@acme --domain deploy-verification
selftest は、判断 → 永続性ガード → 結果 → スコア読み取りの一連の流れを一度実行し、変化とメーターを表示します。サーバーをセッションに組み込む前に実行してください。
リンク
MIT ライセンスです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。