Skip to main content

πŸš€ Beta: All Pro and Team features are free. Install on GitHub β†’

CodeRifts Β· MCP server Β· for agents

Check an API change before you depend on it.

CodeRifts is a hosted MCP server that scores API and tool-schema changes before merge. Ask it whether a change is safe, who breaks, by what pattern, and at what cost β€” and get a deterministic ALLOW / WARN / REQUIRE_APPROVAL / BLOCK decision back. MCP tools report; they do not prevent a call by themselves β€” see what each path does.

Endpoint

URL
https://app.coderifts.com/mcp
Transport
Streamable HTTP (protocol 2025-06-18)
Auth
Bearer API key β€” Authorization: Bearer <key> (from coderifts.com)
Manifest
coderifts.com/mcp.json
Registry
io.github.coderifts/api-governance

Connect

{
  "mcpServers": {
    "coderifts": {
      "url": "https://app.coderifts.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_CODERIFTS_API_KEY>"
      }
    }
  }
}
Add to Cursor

MCP Tools

ToolCall it when…
preflight_change_setBefore modifying contract artifacts in one change set. Requires preflight_mode: analyze (risk only β€” not permission) or authorize (needs context.operation; may mint a receipt). Mode-less requests return 400.
verify_receiptTo confirm a CodeRifts chain receipt you hold is authentic and unaltered. Verifies its signature and integrity. Not for deciding whether a change is safe β€” run preflight_change_set for that.
get_decision_detailsTo look up a past decision by decision_id or fingerprint. Returns the stored decision_result envelope and receipt. Read-only β€” not for making new safety decisions.

Only the three tools above are exposed through MCP. The REST rows below mirror that calling path (plus readiness) for agents that hit HTTP without MCP β€” the agent-relevant surface, not the full product API.

Agent-relevant REST endpoints

HTTP equivalents of the governance operations an agent actually calls. Not an exhaustive product API index.

EndpointDescription
POST /api/v1/preflightSame job as preflight_change_set. Pass preflight_mode (analyze | authorize). Authorize may return a signed receipt; analyze never does.
POST /api/v1/verify-receiptVerify a CodeRifts receipt (same job as verify_receipt).
POST /api/v1/decisions/lookup · GET /api/v1/decisions/:idRetrieve a previously issued decision (same job as get_decision_details).
POST /api/v1/agent-readiness-scoreStatic 0–100 readiness score for one OpenAPI/MCP document (advanced; not a change-set preflight).

Verify

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"}}}'

Response contract (Decision Spec v2)

preflight_change_set is a mode-discriminated union on preflight_mode. Analyze is not permission. verify_receipt and get_decision_details return different shapes. Schema: preflight-response.v2.consumer.json.

ANALYZE (informational β€” branch on may_execute / analysis_outcome; no execution_action / decision / safe_for_agent):

{
  "preflight_mode": "analyze",
  "decision_spec_version": "2.0",
  "analysis_outcome": "BREAKS_DETECTED",  // NO_BREAK_DETECTED | BREAKS_DETECTED | ANALYSIS_FAILED
  "authorization_effect": "NONE",
  "may_execute": false,
  "receipt_kind": "NONE",
  "risk_score": 57,
  "breaking_changes": 1,
  "patterns": [ ... ]
}

AUTHORIZE (operation-bound β€” requires context.operation; branch on execution_action; gates verify receipt conjunctively):

{
  "preflight_mode": "authorize",
  "decision_spec_version": "2.0",
  "receipt_kind": "operation_authorization",
  "decision": "BLOCK",
  "execution_action": "STOP",
  "safe_for_agent": false,
  "risk_score": 57,
  "chain_receipt": "...",
  "breaking_changes": 1,
  "patterns": [ ... ]
}

Mode-less request β†’ 400. Optional 30-day legacy pin: decision_spec_version: "1.0" (sunset 2026-09-07T00:00:00Z) restores the pre-v2 shape with Deprecation headers. Permission still requires authorize + verified receipt (receipt AND currently_authorized AND operation AND fingerprint AND execution_action) β€” never analyze alone.