Connect over MCP
Create a workspace and project in Console, then open Connections for your host-specific MCP configuration. The MCP server authenticates with a workspace key (rcsk_…) sent as a Bearer token. Pass your workspace ID and project name when calling its tools; it does not automatically index a repository.
claude mcp add --transport http ricursor https://api.ricursor.com/v1/mcp --header "Authorization: Bearer rcsk_YOUR_KEY"
Context API
Create an API key in Connections. GET /v1/agent/context serves stored constraints and recent state for the key’s workspace. The optional project query is a project name. This is a context API, not an OpenAI-compatible model proxy.
GET https://api.ricursor.com/v1/agent/context?project=YOUR_PROJECT_NAME Authorization: Bearer YOUR_API_KEY
Memory and reported activity
Add constraints in Console → Elastic memory. Connected agents can report usage and file-change, delta or alert events using ricursor_report or POST /v1/agent/ingest. The Playground guard is a simulation; automatic correction verification and model-request interception are not connected yet.
POST https://api.ricursor.com/v1/agent/ingest
Idempotency-Key: UNIQUE_REPORT_ID
[{"type":"state","project":"YOUR_PROJECT_NAME","kind":"file_change","path":"src/auth.ts","detail":"authGuard added"}]Guardrails & retry safety
Reports are atomic and tenant-scoped. Reuse the same Idempotency-Key (API) or request_id (MCP) with unchanged data when retrying; changed data with the same ID is rejected. Use a new ID for each new logical report. Batches accept at most 200 events and 256 KiB, real calendar dates, integer tokens up to one billion, and safe relative paths. Named projects must exist; nothing silently falls back to another project. Each workspace accepts 60 new reports per minute; retries of already recorded IDs do not consume this allowance. Receipts persist until the workspace is deleted. These are ingestion safeguards, not an autonomous model safety guarantee.
Success: {"ok":true,"inserted":1,"replayed":false}
Retry: {"ok":true,"inserted":1,"replayed":true}
Conflict: HTTP 409
MCP: ricursor_report({workspace, project, request_id, usage, state})API reference
Base address https://api.ricursor.com/v1. Requests and replies are JSON. Errors return {"error": { "code", "message", "requestId" }}. Members of other workspaces get 404; weaker roles get 403.
Agent API
Authorization: Bearer rcsk_… (workspace key)
| GET | /agent/context?project=NAME | key | Saved constraints and recent state for the key's workspace |
| POST | /agent/ingest | key | Report usage and state events; requires Idempotency-Key |
| POST | /mcp | key | MCP JSON-RPC endpoint (ricursor_context, ricursor_report) |
Sign-in
Public, then Authorization: Bearer SESSION
| GET | /health | public | Backend status |
| POST | /auth/sign-up | public | Create an account and personal workspace; returns a session |
| POST | /auth/sign-in | public | Email + password; returns a session |
| POST | /auth/password-reset | public | Request a password reset |
| GET | /auth/me | signed in | Current account |
| POST | /auth/sign-out | signed in | End this session |
| POST | /auth/sign-out-others | signed in | End every other session |
| POST | /auth/password | signed in | Change password (needs current password) |
| POST | /auth/email | signed in | Change email (needs current password) |
Workspaces, team & invites
Authorization: Bearer SESSION
| GET | /workspaces | signed in | Workspaces you belong to |
| POST | /workspaces | signed in | Create a workspace (you become owner) |
| PATCH | /workspaces/:ws | admin | Rename |
| GET | /workspaces/:ws/members | member | List members |
| POST | /workspaces/:ws/members | admin | Add a member |
| PATCH | /workspaces/:ws/members/:user | admin | Change role (never owner) |
| DELETE | /workspaces/:ws/members/:user | admin | Remove a member |
| GET | /workspaces/:ws/invites | admin | Pending invites |
| POST | /workspaces/:ws/invites | admin | Create invite link |
| DELETE | /invites/:id | admin | Revoke invite |
| GET | /invites/:token | public | Preview invite |
| POST | /invites/:token/accept | signed in | Accept once |
Projects, memory & keys
Authorization: Bearer SESSION
| GET | /workspaces/:ws/projects | member | List projects |
| POST | /workspaces/:ws/projects | writer | Create project |
| PATCH | /projects/:id | writer | Rename project |
| DELETE | /projects/:id | admin | Delete project |
| GET | /workspaces/:ws/constraints?project=ID | member | Saved constraints |
| POST | /workspaces/:ws/constraints | writer | Add constraint |
| DELETE | /constraints/:id | writer | Delete constraint |
| GET | /workspaces/:ws/projects/:p/constraints | writer | Constraints applying to a project |
| GET | /workspaces/:ws/keys | admin | List workspace keys |
| POST | /workspaces/:ws/keys | admin | Create key (secret shown once) |
| DELETE | /keys/:id | admin | Revoke key |
State, activity, usage, AI & CI
Authorization: Bearer SESSION
| GET | /workspaces/:ws/state?project=ID | member | Live state events |
| POST | /workspaces/:ws/state | writer | Record state events |
| GET | /workspaces/:ws/activity | member | Activity history |
| POST | /workspaces/:ws/activity | member | Record a switch/recovery entry |
| GET | /workspaces/:ws/usage?project=ID | member | Token usage rows |
| POST | /workspaces/:ws/projects/:p/review | writer | AI review of changes against constraints |
| POST | /workspaces/:ws/projects/:p/analyze | writer | AI CI-log analysis, saved to history |
| GET | /workspaces/:ws/ci | member | CI analyses and applied fixes |
| POST | /workspaces/:ws/ci/fixes | writer | Mark a finding as fixed (once) |
Profile & account
Authorization: Bearer SESSION
| GET | /profile | signed in | Your profile |
| PATCH | /profile | signed in | Update name |
| GET | /preferences | signed in | Your preferences |
| PUT | /preferences | signed in | Save preferences |
| PUT | /avatar | signed in | Upload photo (PNG/JPEG/WebP) |
| DELETE | /avatar | signed in | Remove photo |
| GET | /avatars/:user | signed in | Photo of someone you share a workspace with |
| GET | /account/export | signed in | Download your data |
| DELETE | /account | signed in | Delete account (password + "DELETE") |
Staff (administration)
Session + staff role + authenticator code
| GET | /admin/access | staff | Your staff role and 2FA state |
| POST | /admin/mfa/enroll | staff | Start authenticator setup |
| POST | /admin/mfa/verify | staff | Verify a 6-digit code |
| GET | /admin/sections/:name | staff | Read-only staff section (audited) |
| GET | /admin/accounts | staff | Account directory |
| POST | /admin/accounts | owner + recent 2FA | Change an account's name or plan |
| GET | /admin/ci | staff | CI trends across workspaces |