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

bash
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:

json
{
  "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.

ToolWhat it does
bootstrap_projectCreate a project, mint its ingest key, and optionally wire up a destination in one call. Returns the ingest key and a Swift snippet.
create_projectCreate a new project in your account.
list_projectsList every project in your account.
get_projectFetch a single project by id.
delete_projectPermanently delete a project and all its keys, destinations, and reports.
create_ingest_keyPull an ingest key (rs_ing_) for a project — the token you embed in the iOS app. Shown once.
list_api_keysList a project's keys as metadata only; secrets are never returned.
revoke_api_keyRevoke a project key by id.
configure_destinationCreate or update the project's Linear or webhook destination. Credentials are validated before saving.
list_destinationsList a project's destinations (secrets redacted).
get_destinationFetch a single destination by id (secrets redacted).
delete_destinationDelete a destination by id.
test_destinationRun a real delivery against a destination and return the outcome (success, retryable, or permanent).
list_reportsList a project's reports newest-first, each with a per-delivery status summary.
get_reportFetch 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:

json
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_…").