Docs
Connect an agent
SynthRank exposes the same Autopilot loop over HTTPS and MCP. Create a scoped API key in Settings → API Keys, then point your agent at the MCP endpoint. You need a workspace first. Create an account at /login?mode=signup to get started.
MCP
{
"mcpServers": {
"synthrank": {
"url": "https://synthrank.com/functions/v1/mcp",
"headers": {
"x-api-key": "sr_...",
"x-synthrank-tenant": "<tenant-uuid>"
}
}
}
}REST
curl -X POST "https://synthrank.com/functions/v1/agent-api" \
-H "x-api-key: sr_..." \
-H "Content-Type: application/json" \
-d '{"action":"get_workspace","tenant_id":"<tenant-uuid>"}'Rate limits & quotas
content-api and content-write don't enforce a request-rate limit today. Call them as fast as your integration needs, scoped to your key's workspace.
Generating articles (start_runs, start_article) draws from your workspace's monthly Autopilot run cap, and tool calls that chain through more than one SynthRank function server-side (blog CRUD, Autopilot's crawl/run tools) share Supabase's platform-wide budget of at least 5,000 requests/minute per request chain. The real status and body for both depend on which transport you call — it is not one shape everywhere.
REST (POST /agent-api, or POST /agent-mcp/<tool_name>) returns real HTTP statuses:
Quota exceeded:
HTTP 409
{ "error": "Monthly Autopilot quota exceeded (13 of 13 used; 0 left, requested 1)" }
Chain rate limit exhausted:
HTTP 429
Retry-After: <seconds>
{ "error": "Too many chained SynthRank requests right now. Wait for the given delay, then retry.", "retry_after_seconds": <seconds> }The quota one resets at the start of next month (UTC) — there's no short retry delay for it. Check what's left anytime with get_workspace (quota: { used, cap, remaining }), the same number shown live in the dashboard under Settings → Publishing.
MCP JSON-RPC (tools/call over /mcp or /agent-mcp — what Cursor, Claude, or any MCP client actually uses) wraps every tool error the same way instead, with no distinct HTTP status and no Retry-After header for either case:
HTTP 200
{ "jsonrpc": "2.0", "id": 1, "result": {
"content": [{ "type": "text", "text": "{\"error\":\"Monthly Autopilot quota exceeded (13 of 13 used; 0 left, requested 1)\"}" }],
"isError": true
} }If you're driving an agent over MCP, don't wait for an HTTP 429 or 409 — check result.isError on every tools/call response and parse the error text. Full detail in AGENT-INTEGRATION.md's “Rate limits & quotas” section.
Ops / support agents
Customer support is agent-led. Superadmins issue a sr_ops_ key from Customers. Point the support agent at ops-mcp with no tenant header. The agent can list tickets, look up workspaces, and reply. Humans take over only when needed.
Email is AgentMail on synthrank.com: support@synthrank.com for triage, hello@synthrank.com for general mail, and nova@synthrank.com for the ops agent mailbox.
{
"mcpServers": {
"synthrank-ops": {
"url": "https://synthrank.com/functions/v1/ops-mcp",
"headers": { "x-api-key": "sr_ops_..." }
}
}
}See llms.txt and AGENT-INTEGRATION.md in the repo for the full tool list.