Add a real mailbox to Cline in VS Code. Read, search, send, reply, forward, schedule and organize mail, with a key scoped to exactly what you want the agent to do.
In the Cline panel, open MCP Servers, then Remote Servers. Paste https://mcpemails.com/api/mcp, set the transport type to Streamable HTTP, add the server, then add an Authorization Bearer header holding an API key from your dashboard.
Cline does not run the OAuth browser flow against a remote MCP server, so it authenticates with a bearer token instead. Create an API key in your dashboard, tick only the scopes the agent needs, and paste it into Cline as an Authorization: Bearer header. Key connections and OAuth connections hit the same endpoint and get the same tool catalogue; the difference is only how the token is obtained.
Everything on this page is a way of getting this URL into Cline.
| Field | Value |
|---|---|
| MCP server URL | https://mcpemails.com/api/mcp |
| Transport | Streamable HTTP (MCP 2025-06-18) |
| Authentication | Authorization: Bearer, using a scoped API key from your dashboard. |
Four steps. The first two are the same for every client, the rest are specific to this one.
Sign up at mcpemails.com, no card required, then go to Dashboard, Inboxes, Connect Inbox. Gmail connects with one-click Google sign-in; iCloud, Fastmail, Yahoo, Zoho and Yandex take an app-specific password; anything else connects over plain IMAP and SMTP. The free plan holds one inbox, forever.
In Dashboard, API Keys, click Create key. Name it and tick only the scopes this agent needs: read:email, search:email, send:email, manage:folders, delete:email, manage:drafts, manage:contacts, schedule:email and manage:automations. The key looks like mcpe_ followed by 64 hex characters and is shown once, so copy it before you close the dialog.
In the Cline panel, click the MCP Servers icon, open the Remote Servers tab, enter a name and paste https://mcpemails.com/api/mcp. Set Transport Type to Streamable HTTP, then click Add Server.
Add a header named Authorization with the value Bearer followed by a space and your key. The server accepts bearer tokens on that header only.
Official Cline documentation for remote MCP servers: https://docs.cline.bot/mcp/configuring-mcp-servers
Wondering which mailbox to connect first? See the provider compatibility matrix
The Remote Servers tab offers more than one transport. This server speaks Streamable HTTP under the 2025-06-18 protocol revision. Picking SSE produces a server that appears to add cleanly and then never answers, which is a slow way to discover a one-field mistake.
The header value is Bearer, a single space, then the key. Pasting the raw key on its own is the most common cause of a 401 here, and a 401 from this endpoint carries an OAuth discovery pointer rather than a message saying the header was malformed, which does not help you guess.
Cline does not run the OAuth consent flow, so the scopes you tick when creating the key are the entire boundary. A key with read:email, search:email and manage:drafts lets Cline triage and draft, and cannot send or delete anything. Widen it later by issuing a second key rather than by loosening the first.
Only a SHA-256 hash of the key is stored, so there is no way to show it again. If you lose it, revoke it and create another. Revocation from Dashboard, API Keys takes effect on the next call.
Add mcpemails as a remote server: MCP Servers, Remote Servers, paste https://mcpemails.com/api/mcp, set Transport Type to Streamable HTTP, and add an Authorization Bearer header with an API key from your dashboard. Cline then has tools for reading, searching, sending, replying, forwarding, organizing and scheduling mail.
Because the two clients handle remote MCP authentication differently. Cursor runs the OAuth browser flow and stores the token itself. Cline authenticates with whatever header you configure, so a bearer key is the path that works. Both hit the same endpoint and get the same tools; only the way the token is obtained differs.
Revoke it. Keys are listed in Dashboard, API Keys and revocation applies to the next call, with no wait. Because a key carries only the scopes you ticked, a leaked read-only key also cannot have sent or deleted anything.
Gmail over Google sign-in, iCloud, Fastmail, Yahoo, Zoho and Yandex with an app-specific password, and any other mailbox that speaks IMAP and SMTP on the standard ports. The client sees them all through the same connection: your agent calls inbox_list first to discover every connected mailbox and its id, so there are no UUIDs to paste anywhere.
Only if you let it. Sending is gated on the send:email scope, so a key or a token without that scope cannot send at all. On top of that, an inbox owner can require human approval in the dashboard, which holds every send, reply, forward, draft send and scheduled send until a person releases it.
No. Every message is fetched live from your provider for the request that asked for it and handed straight to your client. Only the encrypted OAuth token or app password is kept, so future calls can authenticate. Deleting the inbox in the dashboard, or revoking access at your provider, ends the connection at once.
One remote server, one scoped key. One inbox free forever, no card required.