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>"
}
}
}
}
MCP Tools
| Tool | Call it when⦠|
|---|---|
preflight_change_set | Before 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_receipt | To 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_details | To 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.
| Endpoint | Description |
|---|---|
POST /api/v1/preflight | Same job as preflight_change_set. Pass preflight_mode (analyze | authorize). Authorize may return a signed receipt; analyze never does. |
POST /api/v1/verify-receipt | Verify a CodeRifts receipt (same job as verify_receipt). |
POST /api/v1/decisions/lookup · GET /api/v1/decisions/:id | Retrieve a previously issued decision (same job as get_decision_details). |
POST /api/v1/agent-readiness-score | Static 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.