New: campaigns, automations and product emails in the same account. Meet Postal
Sign in Create account
EditorCompatible per the specificationChecked on 10/28/2026

Connect Cursor to Postal

Connect the Cursor editor to Postal to look up domains, deliveries and templates and send test emails without leaving your code.

How you sign in
Account or key
Transport
HTTP
Recommended access
Read and send
1

Before you start

Check these points before opening the Cursor setup. They prevent most connection failures.

  • A team with the "MCP server" plan feature (mcp_access); without it the server responds 403 plan_limit_reached.
  • To send emails, the team needs at least one verified domain.
  • If you will use an API key: create the key in the dashboard, under API keys. It starts with ps_; a send-only key is enough if you will only send.
  • Each connection acts on a single team. To use another team, connect again and pick the other one.
  • Connections are listed under Settings › AI connections in the dashboard, where they can be revoked at any time.

What Cursor requires

Cursor with support for remote MCP servers (the documentation does not state a minimum version). The OAuth login uses the computer's browser. Postal must be reachable over public HTTPS (it is).

2

Connect

Follow the steps in order. The server address is always https://api.postal.so/mcp. Recommended path: sign in with your account (OAuth). The API key is the alternative.

  1. 1

    Create (or edit) the project's .cursor/mcp.json file, or ~/.cursor/mcp.json to apply to all projects.

  2. 2

    Paste the configuration below. Only the URL is needed: Cursor registers itself (Dynamic Client Registration) and opens the Postal OAuth login.

  3. 3

    On the Postal screen, choose the team and click Allow. Cursor stores and renews the tokens on its own.

  4. 4

    To use an API key instead of OAuth, use the second configuration and set POSTAL_API_KEY in the environment that starts Cursor.

OAuth (recommended)

.cursor/mcp.json
{
  "mcpServers": {
    "postal": {
      "url": "https://api.postal.so/mcp"
    }
  }
}

API key

.cursor/mcp.json
{
  "mcpServers": {
    "postal": {
      "url": "https://api.postal.so/mcp",
      "headers": {
        "Authorization": "Bearer ${env:POSTAL_API_KEY}"
      }
    }
  }
}

Install link ("Add to Cursor" button)

Text
cursor://anysphere.cursor-deeplink/mcp/install?name=postal&config=eyJ1cmwiOiJodHRwczovL2FwaS5wb3N0YWwuc28vbWNwIn0=
3

Access the tool needs

Postal splits access into three levels, explained in the scopes table. For Cursor:

Required
Read your datamcp:read

View emails, domains, contacts, segments, topics, templates, broadcasts, automations, forms, inbox conversations, metrics and usage.

Recommended
Send emails and eventsmcp:send

Send and schedule emails from verified domains and record events for automations.

Only if you want
Manage everythingmcp:full

Everything above, plus creating, changing and deleting contacts and templates, creating and sending broadcasts (send_broadcast requires confirm: true), canceling scheduled emails and working in inboxes (organize, reply, create drafts).

mcp:read lets the assistant look up domains, emails and templates (diagnosing delivery); mcp:send is what allows sending test emails. mcp:full only if you want it to create templates, contacts and broadcasts. Cursor requests the three scopes Postal announces; to limit them, use the sending_access API key or Cursor's auth block (which requires a client id you registered yourself at POST /oauth/register).

4

How to confirm it worked

The simplest proof is to ask for something read-only inside Cursor itself. The connection also shows up under Settings › AI connections in the Postal dashboard, with the app, the team and the last use.

Illustrative example

List my domains on Postal.
I found 2 domains on the Aurora Cosméticos team: exemplo.com.br (verified) and loja.exemplo.com.br (verifying).

For those who want the technical proof

Terminal: tool list with an API key
npx @modelcontextprotocol/inspector --cli https://api.postal.so/mcp \
  --transport http \
  --header "Authorization: Bearer ps_..." \
  --method tools/list
34Tools expected with a full-access key

The Inspector proves that the Postal server responds. It does not test Cursor itself. The full walkthrough is in Validate the connection.

5

If something goes wrong

Go through the list in order. Then read what we know (and what we don't know) about Cursor.

Check

  • The address is exactly https://api.postal.so/mcp, with /mcp at the end.
  • The connection type is HTTP (Streamable HTTP). Postal does not offer SSE: if the tool gives you the choice, use HTTP.
  • The team has the "MCP server" feature on its plan. Without it, the server responds 403 plan_limit_reached.
  • To send emails, the team has at least one verified domain.
  • Each connection acts on a single team. To use another one, connect again and pick the other.
  • 429 response (rate_limit_exceeded): the plan's requests-per-second limit was reached. Wait a moment and try again.
  • If the tool complains about the response size, ask for smaller lists (at most 100 items per call; the default is 20).
  • To start over from scratch, revoke the connection under Settings › AI connections and connect again.

What was tested and what was not

Compatible per the specificationChecked on 10/28/2026

We followed the app's specification and documentation, but have not yet tested with the real app. Below is the full note on what was and was not verified.

Test details

Verified by test: the three redirects that Cursor's documentation and forum mention (cursor://, localhost:8787 and cursor.com) are accepted in registration and in the full flow, and the API key in a header works with the official SDK client. Not tested with the real Cursor. A public report from 2026 (Cursor forum, version 3.19.13) describes Cursor registering the three URIs but sending localhost:8787 in the authorization; Postal accepts all three, so the report does not apply to it.

Frequently asked questions

Do I need an API key to connect Cursor?

Not required. Cursor can sign in with your Postal account (OAuth) or with an API key. Recommended path: sign in with your account (OAuth). The API key is the alternative. The send-only key (sending_access) exposes only send_email and track_event.

Can I limit what Cursor does on my account?

mcp:read lets the assistant look up domains, emails and templates (diagnosing delivery); mcp:send is what allows sending test emails. mcp:full only if you want it to create templates, contacts and broadcasts. Cursor requests the three scopes Postal announces; to limit them, use the sending_access API key or Cursor's auth block (which requires a client id you registered yourself at POST /oauth/register). You can revoke the connection at any time under Settings › AI connections.

Ready to use Postal in Cursor?

Create your account and connect. If you need help, talk to us through the contact form.