Model Context Protocol
Hand Sifr to your agents.
Run Sifr as an MCP server so any compatible agent — Claude Desktop, Claude Code, Cursor, Codex — can query your identity inventory, manage access requests, and read the audit chain through the same 23 tools your security engineers use directly.
HTTP transport
Bearer auth
SCOPED TO YOUR KEY
REST API · Status
General public REST is not the supported surface yet.
Sifr's admin app uses internal REST routes (/nhi/*, /discovery/*, /connectors/*, /api/demo-request). These are not versioned, not stable, and not documented for external consumers. They will move under a stable /api/v1/* namespace with an OpenAPI spec when public REST is announced.
If you need workflow access today, use MCP. The typed tools above cover the same workflows the dashboard does, with per-key scoping, audit logging, and rate-limiting already in place. The activity endpoint below is intentionally narrow.
Send agent activity
POST /api/ingest/agent-activity
Use a Sifr API key as Bearer auth. Sifr derives tenant scope from the validated key; do not send tenant identifiers in request JSON.
{
"agent_id": "agent-prod-01",
"events": [
{
"event_type": "tool_call",
"status": "allowed",
"tool_name": "salesforce.search",
"resource": "customer_records",
"environment": "production",
"metadata": {"run_id": "run-20260713-01"}
}
]
}
Schema: agent_id is a governed agent identifier, and events is an array of 1-100 activity events. Each event can include timestamp, event_type, status, tool_name, resource, environment, actor_type, and metadata. When provided, timestamp must be an ISO-8601 datetime with the UTC timezone; Sifr canonicalizes it before storing and hashing the evidence. Sifr limits both authentication attempts by source and authenticated requests by API key; a 429 response includes Retry-After.
curl -X POST https://app.sifrhq.com/api/ingest/agent-activity \
-H "Authorization: Bearer sk-sifr-REPLACE_ME" \
-H "Content-Type: application/json" \
-d '{"agent_id":"agent-prod-01","events":[{"event_type":"tool_call","status":"allowed","tool_name":"salesforce.search"}]}'
Dead-letter semantics: valid events are accepted independently. The response reports accepted and dead_lettered counts so runtimes can retry or investigate rejected evidence without resending successful events.