- “How did Skate do on Acme this week? What went unresolved?”
- “Which topics are failing, and why?”
- “Show me the conversations that ended in a false claim caught.”
- “Add an instruction: refunds go to a person.” (needs a key that can write)
Every tool reads only the sites on your account. What visitors typed is masked, as on the dashboard by default.
Connect
There are two ways to sign in. Pick one.
- Sign in with your Skate account (OAuth). Claude.ai, ChatGPT, Claude Code and Cursor support it. You add the URL, the app opens a Skate page, and you press Allow. No key to copy.
- An API key. In the dashboard, open Settings → API keys and press Create key. Copy it. Skate shows it once. Tick “Can write” only if the agent should add instructions or change ticket status.
Either kind shows up under Settings → API keys, where you can revoke it at any time.
Claude.ai (web and desktop)
Settings → Connectors → Add custom connector. Name it “Skate”, and set the URL to https://api.useskate.com/mcp. Then press Connect. Skate asks you to log in and press Allow.
Claude Code
With OAuth:
claude mcp add --transport http skate https://api.useskate.com/mcp
Then run /mcp in Claude Code and choose skate to sign in.
With a key:
claude mcp add --transport http skate https://api.useskate.com/mcp \ --header "Authorization: Bearer sk_skate_…"
Cursor
In ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project). With OAuth:
{ "mcpServers": { "skate": { "url": "https://api.useskate.com/mcp" } } }With a key. Keep it in an environment variable, not in the file:
{
"mcpServers": {
"skate": {
"url": "https://api.useskate.com/mcp",
"headers": { "Authorization": "Bearer ${env:SKATE_API_KEY}" }
}
}
}ChatGPT
Turn on Developer Mode (Settings → Apps & Connectors → Advanced). Then create a connector:
- name “Skate”
- URL
https://api.useskate.com/mcp - authentication OAuth
ChatGPT registers itself and sends you to Skate’s Allow page. In a chat, open + → Developer Mode and pick Skate. ChatGPT’s menu names change often, and which plans may add custom connectors depends on your workspace.
Tools
| Tool | What it returns |
|---|---|
list_sites | Your sites: id, name, address, state. |
get_resolution | Requests, resolved, rate, handed to a person, false claims caught, satisfaction, AI spend, cost per resolution, hours saved (estimate), each against the period before. |
get_usage | Tasks, visits, visitors, model calls, tokens, spend, task time, credits left. |
list_topics | What visitors ask about, grouped, with what was resolved and the fix for the rest. |
list_conversations, get_conversation | Recent visits, the requests in each, how each ended and why, and the steps Skate took. |
get_inbox | What visitors needed and did not get, worst first. |
list_tickets | Requests handed to a person, with contact details masked. |
get_review_queue | Conversations the review rules flagged. |
weekly_report | The weekly report as text. |
list_walkthroughs, get_walkthrough_link | Your live walkthroughs, each with the link that runs it through Skate. |
add_instruction | Write keys only. Adds a “how to” rule or a “a person handles this” rule. |
set_ticket_status | Write keys only. Marks a ticket open, replied or closed. It sends nothing. |
“Resolved” means the change was made and checked on the page, or was confirmed by your app’s own action, or the question was answered from a source that backs it. In each case no person was needed and the visitor did not say it failed. Changes confirmed only by your app are counted on their own line (doneByApp).
Limits and privacy
- 120 calls a minute per key or connection.
- Each call is logged for your account: which key, which tool, which site, whether it worked. The arguments are never logged.
- A site on another account reads exactly like one that does not exist.
- Want a plain HTTP endpoint instead?
POST /v1/askanswers one question from your instructions and help docs (see the API guide).