Skip to content
On this site

Agents

Hand Rasket to an AI agent and it can set up your account the way a person would: a key, a domain and its DNS, a first send, and on to broadcasts and automations. There is one recipe of twelve steps, written once — this page, the skill, the rules file and the MCP server all read the same one.

Install it in your agent

Claude Code

The skill is a folder: SKILL.md with the recipe and its rules, three small Node scripts, and two references. Put it in the project and ask the agent to set Rasket up.

mkdir -p .claude/skills
cp -r rasket-setup .claude/skills/

Download SKILL.md; its scripts/ and references/ sit beside it under /skills/rasket-setup/.

Cursor

Save the rules file as .cursor/rules/rasket.mdc. It carries the same recipe in the SDK's vocabulary, and the client's rules.

Windsurf

The same file, saved as .windsurf/rules/rasket.mdc.

Or connect over MCP

An MCP client needs no key: it signs in with OAuth and holds only the scopes you approve. The toolset parameter narrows the server to the tools setting up and sending need, and arrives with the full tool catalogue.

claude mcp add --transport http rasket "https://api.rasket.com/mcp?toolset=setup,send"
{
  "mcpServers": {
    "rasket": {
      "url": "https://api.rasket.com/mcp?toolset=setup,send"
    }
  }
}

Every script, sample and file here reads the key from RASKET_API_KEY. Export it in the agent's shell; never paste a key into a chat or a file.

The MCP server page covers the boundary, the budgets and every tool.

The recipe

Twelve steps, in order. Each names its call on every surface and what it needs: a scope for an MCP client, otherwise a key permission. What “done” looks like and the failure each step most often meets are in the skill.

The setup recipe
#StepRESTNode SDKMCP toolNeeds
1Create an API keyPOST /api-keysapiKeys.createa full_access key
2Add a domainPOST /domainsdomains.createcreate_domaindomains:write
3Publish its DNS recordsGET /domains/{domain_id}domains.getget_domain_recordsdomains:read
4Verify the domainPOST /domains/{domain_id}/verifydomains.verifyverify_domaindomains:write
5Set the sender identityPATCH /teamteam.updateupdate_teamteam:write
6Send an emailPOST /emailsemails.sendsend_emailemails:send
7Add a webhook and check its signaturePOST /webhookswebhooks.createcreate_webhookwebhooks:write
8Create and publish a templatePOST /templates/{id}/publishtemplates.publishpublish_templatetemplates:write
9Add a contactPOST /contactscontacts.createcreate_contactcontacts:write
10Create a segmentPOST /segmentssegments.createcreate_segmentsegments:write
11Send a broadcastPOST /broadcasts/{id}/sendbroadcasts.sendsend_broadcastbroadcasts:write
12Create an automationPOST /automationsautomations.createcreate_automationautomations:write

The Python client names every method the same way in snake_case — api_keys.create for apiKeys.create. A step marked “not yet” names something still on its way; an agent skips it and says so.

Where an agent reads the docs

Machine-readable addresses on this site
AddressWhat it is
/openapi.jsonThe whole API as an OpenAPI document.
/llms.txtAn index of every docs page, written for a model to read.
/llms-full.txtEvery docs page, one after another, in one file.
/docs/<page>.mdAny docs page as Markdown — or request the page itself with Accept: text/markdown.
/skills/rasket-setup/The skill and the rules file on this page, as files.

All of these are served by this site, not the API origin. The OpenAPI address, the Markdown pages and the two llms files arrive with the machine-readable docs; until then the API serves its document at /api/v1/openapi.json.

The SDKs

npm install rasket
pip install rasket

Both are published as rasket, on the npm registry and on PyPI. The Node SDK page covers the client in full.