CodeRifts API Governance
OfficialBackstage plugin for API governance, providing risk scorecards and breaking change detection directly in Backstage.
CrewAI integration enabling pre-flight governance checks on API changes before tool calls, with blast radius and agent impact analysis.
GitHub App that posts a risk scorecard on every pull request, allowing API governance at PR time.
LangGraph integration enabling pre-flight governance checks on API changes before tool calls, with blast radius and agent impact analysis.
CodeRifts — contract-change authorization
Only a granted change can proceed. Before a contract change merges, deploys or registers, CodeRifts decides whether it is authorized — and the check is red without a grant.
One grant binds three things: the authorization, its single use, and the target state the change moves to. The decision is signed, and the receipt verifies offline — you do not have to trust our database to check what was authorized.
Every decision also names what it does not prove.
Hosted MCP server:
https://app.coderifts.com/mcpManifest:
https://coderifts.com/mcp.json— the canonical published document. Themcp.jsonat the root of this repository is a pointer to it, not a second copy.Official MCP Registry:
io.github.coderifts/api-governanceWebsite:
https://coderifts.comLive demo PR:
https://github.com/coderifts/demo/pull/4
Claude Code plugin
Install the CodeRifts marketplace, then the api-governance plugin (MCP server + skill).
Requires CODERIFTS_API_KEY for tool calls.
/plugin marketplace add coderifts/api-governance
/plugin install api-governance@coderiftsLocal checkout (after clone):
/plugin marketplace add .
/plugin install api-governance@coderiftsThe plugin wires the hosted MCP at https://app.coderifts.com/mcp and the
api-governance skill. Tools exposed: preflight_change_set, verify_receipt,
get_decision_details only.
Related MCP server: @routescore/mcp
Cursor plugin
Cursor Plugin package (measured Cursor layout: .cursor-plugin/plugin.json +
skills/ + rules/ + mcp.json + hooks/hooks.json). Same hosted MCP and the
same three tools as the Claude plugin — no fourth tool. Deterministic /
signed / fail-closed — not an AI compatibility scan.
Path | Role | Source of truth |
| Cursor Plugin manifest | |
| Skill | Website |
| Cursor rule | Generated — |
| Streamable HTTP MCP wiring | Same endpoint as Claude |
| PreToolUse adapter | Existing CLI |
| Cursor marketplace entry | Cursor |
Validate:
npm run validate:cursorThe generated-rule check is LIVE when CODERIFTS_APP_ROOT (default ~/coderifts-app)
has generated/agent-host/.cursor/rules/coderifts.mdc, and RECORDED against
fixtures/recorded/app-generator when it does not (weaker, named). A missing or
corrupt snapshot still exits 1 — no silent skip.
Peter — local Cursor load before publish: symlink or add
plugins/api-governance-cursor as a local plugin, exercise skill + rule + MCP +
hook, then submit https://github.com/coderifts/api-governance at
cursor.com/marketplace/publish
(open-source, Cursor review).
OpenAI / Codex package
Codex plugin package (measured OpenAI Codex layout: .codex-plugin/plugin.json +
.mcp.json + skills/ + AGENTS.md). Same hosted MCP and the same three tools
as the Claude plugin — no fourth tool.
Path | Role | Source of truth |
| Codex plugin manifest | Codex |
| Streamable HTTP MCP wiring | Same endpoint as Claude |
| Skill + tool list | Trigger wording from agent-setup rule; tool names/descriptions from generated |
| Agent rules file | Generated — |
| OpenAI Agents SDK instructions | Generated — same generator |
| Production pattern (ID108) — host dispatch loop with | Hand-authored recipe on shipped |
| Offline smoke (ALLOW + BLOCK; no OpenAI key) | Real dispatcher + stub client |
| Codex marketplace entry | Codex marketplace schema |
Production pattern (function-calling apps)
OpenAI’s model only emits tool_call JSON; your app executes it. Wire governance at
that host loop — not as a Claude-style PreToolUse hook. Full steps + one canonical loop:
→ plugins/api-governance-openai/docs/openai-production-pattern.md
# Offline smoke (needs ~/coderifts-agent-guard built, or CODERIFTS_AGENT_GUARD_ROOT)
npm run smoke:openai-dispatchAs of 2026-09-14 this command fails on one assertion (ALLOW factory ran — execute() did not run; the remaining ALLOW and BLOCK assertions pass). Investigation is in progress.
Local checkout in Codex (team marketplace path):
# From a clone of this repo, point Codex at .agents/plugins/marketplace.json
# then install api-governance-openai (UI / plugin install — see Codex plugin docs).Validate package consistency (manifest, tool parity, AGENTS.md empty-diff vs regeneration):
npm run validate:openai
# or: node scripts/validate-openai-package.jsAGENTS.md regeneration is LIVE when ~/coderifts-app (or CODERIFTS_APP_ROOT) exists,
and RECORDED against fixtures/recorded/app-generator when it does not (weaker, named).
A missing or corrupt snapshot still exits 1. Directory listing / account submission steps are
not automated here.
GitHub Copilot kit
Reference copies of the generated Copilot MCP configs + instructions (single source:
coderifts-app generators). Same hosted MCP and the same three tools — no fourth tool.
Primary install (living command — prefer this over copying from the kit):
npx coderifts copilot-setup
# optional: --out <dir> --check (drift-gate) --forceAgent-host instructions (including .github/copilot-instructions.md) come from:
npx coderifts agent-setupThree Copilot surfaces (root keys differ)
From the generated guide (copilot/docs/copilot-mcp.md — do not re-author this table):
Surface | Config location | Root key | Auth |
VS Code / Copilot Chat |
|
|
|
Copilot cloud agent + code review | Repo Settings → Copilot → MCP servers (paste JSON) |
| Agents secret |
Custom agent (org/enterprise) | Agent profile |
|
|
Tools allowlisted everywhere: preflight_change_set, verify_receipt, get_decision_details.
Vendored reference tree (copilot/)
Path | Role | Source of truth |
| VS Code / Copilot Chat | Generated — |
| Cloud agent paste JSON ( | Generated — same |
| Custom agent YAML frontmatter | Generated — same |
| Install guide + surfaces table | Generated — same |
| Copilot coding-agent instructions | Generated — |
| Provenance + re-sync commands | Packaging note (this repo) |
Validate empty-diff vs regeneration + 3-tool discipline:
node scripts/validate-copilot-kit.jsEmpty-diff vs regeneration is LIVE when CODERIFTS_APP_ROOT has the generators, and
RECORDED against fixtures/recorded/app-generator when it does not (weaker, named).
A missing or corrupt snapshot still exits 1. The kit is a communication / distribution
mirror — npx coderifts copilot-setup remains the install path.
MCP server
CodeRifts runs as a hosted Streamable HTTP MCP server. Any MCP-compatible agent (Claude Desktop, Cursor, LangGraph, AutoGen, custom) can connect and run governance checks before tool calls or merges.
Endpoint:
https://app.coderifts.com/mcpTransport: Streamable HTTP (protocol version
2025-06-18)Server:
CodeRifts API Governancev1.0.2Auth:
initializeandtools/listare open (no key);tools/callrequires an API key - sendAuthorization: Bearer <key>orX-API-Key: <key>.
Connect
{
"mcpServers": {
"coderifts": {
"url": "https://app.coderifts.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_CODERIFTS_API_KEY>"
}
}
}
}Verify the connection
curl -sS https://app.coderifts.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'Expected: a JSON-RPC result with serverInfo and capabilities.tools.
Try without a key
Two public endpoints need no auth at all:
curl -s "https://app.coderifts.com/api/v1/public/preflight?url=https://petstore3.swagger.io/api/v3/openapi.json"
curl -s -X POST https://app.coderifts.com/api/v1/public/actionguard-check \
-H "Content-Type: application/json" \
-d '{"filename":".github/workflows/ci.yml","base_content":null,"head_content":"jobs:\n b:\n steps:\n - uses: some-owner/some-action@main"}'Both return HTTP 200 without a key. They do not share a response shape:
GET /api/v1/public/preflightis analyze-only. There is nodecisionfield. The body carriesanalysis_outcome(Petstore URL:NO_BREAK_DETECTED),authorization_effect: NONE, andmay_execute: false.POST /api/v1/public/actionguard-checkdoes return adecisionfield (unpinneduses: @mainpayload:WARN) plusexecution_action: CONTINUE_WITH_MONITORING.
Tools
The hosted MCP server exposes exactly three tools (from live tools/list; pinned in this
repository as tools.wire.v1.json, which npm run validate:tools-wire
checks against the live server on every push, pull request and the daily cron):
Tool | What it does |
| Preflight a complete base→head change set of contract artifacts. Returns risk score and breaking-change analysis. With |
| Verify a signed chain-receipt you already hold: signature authenticity, body binding, and (when lifecycle indices are available) whether it is currently authorized for a stated operation/target. Requires |
| Retrieve a past decision by |
On the authorize path of preflight_change_set, the decision envelope includes fields such as decision, execution_action, risk_score, safe_for_agent, and related analysis fields so agent runtimes can branch on a stable contract. Prefer branching on execution_action when present.
How agents use it
Before merging an API change (or before an agent acts on a contract change), call
preflight_change_setwith full before/after artifacts andpreflight_mode: "authorize"(pluscontext.operation).Read
execution_action/decision: CONTINUE/ALLOW proceeds, WARN flags, REQUIRE_APPROVAL pauses for a human, STOP/BLOCK stops the merge / aborts the agent step.If you already hold a receipt and only need to confirm it is still valid, call
verify_receipt— do not re-preflight unless the change set or operation changed.To inspect a prior decision by id, call
get_decision_details.
Decision logic is deterministic: a single breaking change is never silently allowed. Tests can pass and still ship a broken contract — CodeRifts checks the contract itself at PR time.
Also available
GitHub App (zero-config, one-click install) on the GitHub Marketplace - posts a four-gate governance report (API contract, schema-vs-code, auth surface, workflow actions) on every pull request.
SDKs:
@coderifts/sdk(TypeScript / npm),coderifts-sdk(Python / PyPI).CLI:
coderifts(npm) with a pre-push hook.Integrations: Backstage plugin, VS Code extension, LangGraph / AutoGen / CrewAI.
Links
Website: https://coderifts.com
Decision Spec: https://coderifts.com/decision-spec/
API reference: https://app.coderifts.com/api/docs
Manifest: https://coderifts.com/mcp.json
Receipt verifier (verify our receipts without trusting us): https://github.com/coderifts/receipt-verifier
Contact: hello@coderifts.com
License
See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Zero-secret MCP gateway for AI agents: risk-scored, audited calls with human-in-the-loop approval.
Monitor MCP servers, API contracts and AI outputs for schema drift. Alerts on breaking changes.
AgentGuard — 20-tool AI safety MCP: policy preflight, risk scoring, audit logging, rate limits.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
AlicenseAqualityBmaintenanceMCP server for AI-agent governance using trust scoring, behavioral signals, and pre-flight action checks.1013 npm1Apache 2.0
@routescore/mcpofficial
AlicenseAqualityBmaintenanceMCP server that exposes Routescore's public API for risk assessment, including MEV cover, bridge refund, and swap checks, as tools for AI agents.821 npmMIT- AlicenseNot gradedqualityAmaintenanceAI code reviews and git activity digests with machine-readable risk scoring, available as an MCP server for use within an agent session.1MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for a pre-interaction risk check on any EVM contract/token, enabling agents to verify contracts before approving, swapping, or trusting an address.1MIT