Documentation
MCP server
rageshake.dev hosts a Model Context Protocol server over streamable HTTP at https://rageshake.dev/api/mcp. Point an AI agent at it with a management key and it can create projects, mint keys, configure destinations, and read reports — no dashboard required.
Authentication
Send your management key (rs_mgmt_…) as a bearer token. It uses the same keys as the REST API. Ingest keys (rs_ing_…) authenticate but cannot act — every tool returns a message telling you to switch to a management key. Create one with the rageshake CLI or POST /api/v1/projects/{projectId}/keys.
Add it to Claude Code
claude mcp add rageshake \
--transport http https://rageshake.dev/api/mcp \
--header "Authorization: Bearer rs_mgmt_YOUR_KEY"Add it via .mcp.json
Any MCP client that reads a project .mcp.json can use this block:
{
"mcpServers": {
"rageshake": {
"type": "http",
"url": "https://rageshake.dev/api/mcp",
"headers": {
"Authorization": "Bearer rs_mgmt_YOUR_KEY"
}
}
}
}Tools
Start with bootstrap_project — it goes from nothing to a working, routed project in one call.
| Tool | What it does |
|---|---|
| bootstrap_project | Create a project, mint its ingest key, and optionally wire up a destination in one call. Returns the ingest key and a Swift snippet. |
| create_project | Create a new project in your account. |
| list_projects | List every project in your account. |
| get_project | Fetch a single project by id. |
| delete_project | Permanently delete a project and all its keys, destinations, and reports. |
| create_ingest_key | Pull an ingest key (rs_ing_) for a project — the token you embed in the iOS app. Shown once. |
| list_api_keys | List a project's keys as metadata only; secrets are never returned. |
| revoke_api_key | Revoke a project key by id. |
| configure_destination | Create or update the project's Linear or webhook destination. Credentials are validated before saving. |
| list_destinations | List a project's destinations (secrets redacted). |
| get_destination | Fetch a single destination by id (secrets redacted). |
| delete_destination | Delete a destination by id. |
| test_destination | Run a real delivery against a destination and return the outcome (success, retryable, or permanent). |
| list_reports | List a project's reports newest-first, each with a per-delivery status summary. |
| get_report | Fetch one report in full — message, device metadata, screenshot URL, and per-destination delivery detail. |
Example: bootstrap in one call
Ask your agent to “set up a rageshake project called Acme that files reports to our Linear team” and it will call:
bootstrap_project({
"name": "Acme",
"destination": {
"type": "linear",
"linear": { "apiKey": "lin_api_…", "teamId": "TEAM_ID" }
}
})The response includes the ingest key (shown once), the destination, and a ready-to-paste Swift snippet: RageShake.configure(apiKey: "rs_ing_…").