Docs
Connect your agent
Three steps, about two minutes. The server teaches your agent the method when it connects, so there's nothing else to set up.
1. Make a key
In the app, open Settings → API keys and create a read-and-write key. It works in one workspace and is shown once. Only owners and admins can make keys.
2. Add the Keats MCP server
Claude Code
claude mcp add --transport http keats \ https://getkeats.com/mcp \ --header "Authorization: Bearer $KEATS_API_KEY"
Claude Desktop, Cursor, Windsurf and other MCP clients
{
"mcpServers": {
"keats": {
"type": "http",
"url": "https://getkeats.com/mcp",
"headers": {
"Authorization": "Bearer aeo_…"
}
}
}
}3. Ask
- “Run this week's Keats cycle for our brand and file a ticket for every card.”
- “Run this week's Keats review for SIE.”
- “Work the top action card into a draft I can review.”
- “Tune the prompts for SIE: what should we add or retire?”
The agent does the reading, the drafting and the filing, and asks you before anything goes live.
What the agent does each week
For a whole brand, every card. The MCP prompt weekly_cycle walks it through these steps in order.
- Read the portfolio: every offering's headline numbers by engine, the change since the previous read with its noise band, flags (a drop beyond noise; a rival named without you on buying answers) and open cards. Sort by attention. (get_brand_read)
- For each flagged offering, read the week and the answers behind its biggest gaps. (get_weekly_read, explain_prompt, list_answers)
- Check coverage: the plan recommends each offering's level (full, light or none) by its share of 12-month demand, with the questions it would add against the plan's limit (get_usage). It's a recommendation for the customer; only they act on it (track_offerings). Offerings and phrasings on the not-tracking list stay out. (get_coverage_plan, list_not_tracking)
- Keep each offering's prompts sharp: retire generic ones (they name neither the offering nor the brand), add prompts for the ways buyers ask that are missing, each with tier, kind and why. (suggest_prompts, check_prompts, add_prompts, retire_prompts)
- File every open card exactly once: list_brand_actions with ticketed=false, file a ticket in your tracker for each (get_brief is its body), then link_ticket with its URL. (list_brand_actions, link_ticket)
- When a change is live, report its URL and date: that starts its evaluation at day 21 and day 35. (complete_action, record_external_work)
- Close the week: get_summary returns what changed per offering (prompts, headline moves, new cards, cards done, evaluations read, new offerings found) and the same as markdown for a ticket comment. (get_summary)
What it can and can’t do
- Keats never publishes, sends or edits anything on your site. Your agent drafts; a person publishes.
- A key works in its own workspace only. Read-only keys can’t change anything.
- Every write made with a key is recorded: which key, which operation, on what.
- An agent can’t run up a bill: the plan is a flat monthly price, and adding past its questions is refused, never charged.
Reference
- API and MCP server: auth, errors, rate limits, every operation.
- OpenAPI 3.1 spec, generated from the same list of operations as the MCP tools.
- /llms.txt, for agents that read the web.