MCP server
Connect Claude, Cursor or any MCP client once, and it can work in Lettrove as you: design an email from a brief, check who is in a list, send a test, send to a list at nine tomorrow, and tell you who opened it. One address, one sign-in, exactly your permissions.
Server address: https://lettrove.com/api/mcp
It is also listed in the MCP registry as com.lettrove/lettrove, for clients that install servers
from there.
Connect
Claude Code
-
In a terminal, add the server:
claude mcp add --transport http lettrove https://lettrove.com/api/mcp -
Inside Claude Code type
/mcp, choose lettrove, then Authenticate. Your browser opens on Lettrove: sign in if you are not, then Allow. -
Back in Claude Code the server shows as connected. Try: "list my emails in Lettrove".
Claude (claude.ai and the desktop app)
- Settings → Connectors → Add custom connector.
- Name it Lettrove and paste the address:
https://lettrove.com/api/mcp. - Claude reads the server and pre-selects the right options; leave them: Authentication Sign in now (everyone signs in through Lettrove) and OAuth client Register automatically (Claude registers itself; nothing to copy). No request headers. Click Add.
- On the Lettrove card click Connect; your browser opens Lettrove: sign in if you are not, then Allow. Lettrove then appears in the tools menu of every chat.
On a Team or Enterprise plan an Owner adds the connector in Organization settings, and Claude shows it to every member of that organization. That is how Claude works, not a sign the account is shared: each member clicks Connect and signs in to Lettrove as themselves, and only their own Lettrove account is ever listed under Settings → Profile → Connected apps.
Cursor
-
Settings → MCP → Add new global MCP server, or put this in
.cursor/mcp.json:{"mcpServers": {"lettrove": { "url": "https://lettrove.com/api/mcp" }}} -
Cursor asks you to sign in the first time a tool is used. Allow, and it stays connected.
Any MCP client
- Transport: Streamable HTTP, at
https://lettrove.com/api/mcp. - Authorization: OAuth 2.1 with PKCE, discovered from the
401(RFC 9728). Dynamic client registration is on, so there is no client id to copy. - Scopes:
mcp:toolsfor everything that reads and edits;mcp:sendto send;mcp:contactsto create lists and add people.
The first time, your browser opens Lettrove: sign in if you are not, then a screen asks whether to let the app work as you. Allow, and you are done; it stays connected until you disconnect it.
What it can do
Eighteen tools, each the same operation the app itself performs. Needs is your role in the workspace (roles); sending also needs the Send scope, and building lists the Contacts scope, both granted when connecting.
| Tool | Does | Needs |
|---|---|---|
list_workspaces | Your workspaces and your role in each | — |
list_emails · get_email | Saved emails; one email as a summary, its compiled HTML, or its design document | Viewer |
create_email | A new email: blank, from a template, or designed by the assistant from a brief | Editor |
edit_email | The assistant changes a saved email from an instruction, saved as a new revision | Editor |
list_templates | Gallery templates to start from | — |
sending_status | Whether the workspace can send, and as whom | Editor |
send_test_email | One email to one address, from your verified sender | Editor + Send scope |
list_test_sends | Your recent tests and what the provider reported | — |
list_contact_lists | Your Audiences lists with counts | Editor |
describe_audience | People, duplicates, fields with blanks, sample contacts, before a send | Editor |
create_contact_list | A new list made by hand: name, the consent basis you state, and its columns | Admin + Contacts scope |
add_list_field | Add a column (merge tag) to a list | Admin + Contacts scope |
add_contacts | Add up to 500 people to a list; each row checked, bad rows returned with the reason | Admin + Contacts scope |
send_campaign | Send to lists now or at a time, with open and click tracking switches | Admin + Send scope |
list_campaigns · get_campaign | Sends and their live figures: delivered, bounced, complained, opened, unsubscribed, per list too | Editor |
cancel_campaign | Cancel a scheduled send, or stop one in progress | Admin + Send scope |
A refusal comes back in plain words with a code (forbidden, insufficient_scope,
sender_not_configured, fields_missing…), so the assistant can explain it or fix it, never guess.
Before the first send in a workspace the assistant calls sending_status. If the workspace cannot
send yet, it stops and tells you: sending needs a verified domain and a sender address,
which you set up yourself in Lettrove. That cannot be done through these tools.
Things to say
- "Create an email in Lettrove announcing our September webinar: warm, short, one button to register."
- "Which of my lists has the most contacts, and how many have a first name?"
- "Send the 'Autumn Linen Sale' email to me as a test."
- "Send 'Welcome Aboard' to the Newsletter list tomorrow at 09:00 and track opens."
- "How did yesterday's send go? Anyone bounce?"
- "Shorten the headline of the launch email and make the button say 'Reserve my seat'."
How it stays yours
- Your permissions, never more. Every call is checked against your role in that workspace, the same check the app makes. A viewer cannot create; an editor cannot send to a list. The Send and Contacts scopes are a second lock on top: without them, nothing sends and no list is created.
- No password shared. OAuth 2.1 with PKCE. The app gets a short-lived token bound to this address, refreshed while you allow it.
- Nothing new is stored. The server uses the same services as the app, so an email it creates is an ordinary email with its author recorded, and a send it starts is an ordinary send on the status page.
- One click to disconnect. Settings → Profile → Connected apps → Disconnect. The app is refused at its next token refresh and has to ask you again.
Questions
Which workspace does it act in? Your default one. Every tool takes an optional workspaceId;
with more than one workspace, the assistant asks which you mean (list_workspaces).
Does it work on a self-hosted or preview Lettrove? Yes: the address is simply that site plus
/api/mcp.
Who operates this server? CareersCV, the company that builds and runs Lettrove. Questions and security reports: support@lettrove.com.