Documentation
Every client, every key, and the day we read it.
Set-up documentation for 13 AI clients. Each page carries the exact configuration that client wants, taken off the vendor's own page rather than from memory, with the lines nobody could confirm marked as unconfirmed instead of guessed.
- Clients 13
- To connect One URL, then sign in
- Read 30 August 2026
All documentation
On this page
Start here
Set up in four steps
The same four steps in every client. Only the third one differs, and the page for your own client says exactly how.
-
Create an account and add a mailbox
Sign up at the control panel, then add the mailbox you want your assistant to reach. Gmail, Microsoft 365, or anything that speaks IMAP.
-
Copy your connector URL
Each mailbox has its own, and you copy it from the Connector tab of that mailbox in your control panel. It looks like
https://mcp.mailbox-mcp.com/db/mcp/YOUR-MAILBOX-KEY, with a key at the end that identifies the mailbox.The snippets below show that placeholder, so replace it with your own. Use the right URL for each mailbox rather than the same one twice: Claude and several other clients treat two connectors with the same address as one connector, so a shared URL means your second mailbox refuses to be added at all.
-
Put it in your client
A settings screen in the chat clients, a JSON or YAML file in the editors. Find your client below: the page names the file, the key and the transport value it wants.
-
Sign in when it asks
Your client sends you back here to sign in and choose which mailbox to open. It stores its own credential afterwards, so you do this once.
Adding the mailbox
Step one has three parts and the panel walks you through them, but it is worth knowing what it is going to ask for before you start.
-
Part one
Which provider
Microsoft 365 signs you in and there is no password to find. Gmail wants an app password. Everything else wants four settings your existing mail client already holds.
-
Part two
The connection check
The panel opens the mailbox before it saves anything, so a wrong server name or a rejected password is a message on the form rather than a tool that silently returns nothing next week.
-
Part three
A name you will recognise
Name it for the mailbox, not for us. Your client lists connectors by that name, and three of them called mcp-server tell you nothing a month later.
The step we do not have
Most set-up documentation for a remote MCP server has a step where you copy a client ID and a client secret out of one panel and paste them into another. Ours does not, and the difference is worth a paragraph because it changes what you have to keep safe afterwards.
This server does dynamic client registration, the part of the OAuth specification that lets a client introduce itself and be issued credentials on the spot. Your client asks the server who it should talk to, the server tells it, and the two of them settle it between themselves. You paste a URL and press a button.
So when a client shows you an advanced OAuth section with empty boxes for a client ID and a secret, leave them empty. They exist for servers that cannot do this. Filling them in here does not make the connection more secure; it gives it one more thing to get wrong, and it puts a credential in your clipboard that never needed to be there.
The free tier is 5 MCP calls a day on any mailbox with no card, which is enough to work through any page in this section against your own mail.
Find your client
Every page names the file, the key, the transport value and the UI route, and ends on the vendor page it was read from and the day it was read.
AI assistants
Chat clients. Paste a URL, sign in, done.
-
Claude.ai
URL only, then sign inSettings, Connectors, Add custom connector. One URL and a sign-in. The advanced OAuth fields stay empty, which is the opposite of what most set-up guides tell you.
-
Claude Desktop
URL only, then sign inThe same Connectors screen as the web, and the same URL. Worth its own page because most desktop set-up guides still send you to a JSON file and a local bridge you do not need.
-
ChatGPT
URL only, then sign inPlus needs no administrator, and we sent real mail through a Plus account on it. Business and Enterprise/Edu need an admin to switch developer mode on first. Web only.
Editors and coding agents
A JSON or YAML file, and the keys differ in every one.
-
Claude Code
URL only, then sign inA single command, and one flag that decides whether the mailbox follows you between projects or vanishes when you change directory.
-
Cursor
URL only, probablyTwo lines of JSON in mcpServers. Cursor documents a type key for local servers only, so a remote entry that carries one is copied from somewhere it did not belong.
-
VS Code
URL only, then sign inThe one client where the top-level key is servers, not mcpServers. Paste the wrong one and nothing appears, with no error to tell you why.
-
Zed
URL only, then sign inThe key is context_servers, and the absence of a headers block is a setting rather than an omission. It is what tells Zed to sign in instead of expecting a token.
-
Windsurf
URL only, probablyThe URL key is serverUrl, which no other client uses. And the documentation you will land on is branded Devin, so you will think you have the wrong page.
-
Cline
URL and an access tokenThe transport is streamableHttp in camel case, alone among every client here. And OAuth appears nowhere in Cline's documentation, so this one takes an access token.
Agents and automation
Platforms that run without somebody watching.
-
Goose
URL and an access tokenYAML rather than JSON, extensions rather than mcpServers, uri rather than url, and streamable_http with an underscore. Nothing about this one matches anything else.
-
LibreChat
URL and an access tokenThe transport is streamable-http with a hyphen. More usefully, its per-user placeholder is the one mechanism here that gives every member of a team their own mailbox behind one config file.
-
n8n
URL and an access tokenThe documentation and the node disagree. Which fields you see depends on the version of the node in your workflow, and an old one cannot do MCP OAuth at all.
-
Copilot Studio
URL only, then sign inPick Dynamic discovery and it needs nothing but the URL. Two traps first: generative orchestration is off by default, and your tenant DLP policies govern MCP servers too.
9 clients, 4 names for one key
This is the table we could not find anywhere else, which is why it is here. Every value in it was read off that vendor's own documentation on , and the reason it is worth the trouble is that every one of these clients is being configured for the same server, over the same transport, and no two of them describe it the same way.
| Client | Top-level key | URL key | Transport |
|---|---|---|---|
| Claude Code | mcpServers |
url |
"type": "http" |
| Cursor | mcpServers |
url |
none documented |
| VS Code | servers |
url |
"type": "http" |
| Zed | context_servers |
url |
none documented |
| Windsurf | mcpServers |
serverUrl |
none documented |
| Cline | mcpServers |
url |
"type": "streamableHttp" |
| Goose | extensions |
uri |
type: streamable_http |
| LibreChat | mcpServers |
url |
type: streamable-http |
| n8n | no file | Endpoint |
HTTP Streamable |
Read 30 August 2026 Each row comes from that vendor's own current documentation, linked at the foot of its page here. Where a client's page named a transport in prose but documented no key for it, the cell says so rather than repeating the prose as though it were a field.
One transport, five wordings
Every client in that table connects over Streamable HTTP. Four of them
want you to type its name into a file, and no two spell it alike:
http, streamableHttp,
streamable_http and streamable-http. Camel case,
snake case, kebab case and a bare word, for one thing. n8n makes it a
menu choice instead and calls it HTTP Streamable, which
is a fifth wording and the only one with a space in it.
That is not carelessness on anybody's part. The protocol says how a client and a server talk once they are connected and says nothing about what the configuration file looks like, so each client invented its own vocabulary and each is right within its own program. It only becomes a trap when you set up a second client by adapting the snippet from the first, which is what everybody does, including us: the control panel shipped one JSON block for three clients and it worked in none of them until this reading was done.
The shape of the mistake
A wrong key does not usually produce an error. The client reads a file it does not recognise, finds nothing it understands, and starts up with no server attached, which looks exactly like a server that is down. If a client shows no tools at all, suspect the key before you suspect us.
Three docs sites that moved
If you searched for your client's MCP documentation before arriving here, there is a fair chance you landed somewhere stale. Three of the pages this section is built on are no longer where the search results point:
-
docs.claude.com/en/docs/claude-code/mcp301code.claude.com/docs/en/mcp -
docs.windsurf.com/windsurf/cascade/mcp307docs.devin.ai/desktop/cascade/mcp -
block.github.io/goose/docs/404 Goose documentation is atgoose-docs.ai
The Windsurf one is the one to watch. Its MCP documentation is now served under Cognition's Devin brand and the page uses "Devin" and "Windsurf" interchangeably, so a reader who follows the redirect reasonably concludes they have the wrong page and goes back to searching.
What to type first
A connector that is set up correctly says nothing at all, so the honest way to check it is to use it. Ask for something you can verify against your own mailbox in one glance.
Try this first
Summarise my five most recent unread emails, oldest first, and tell me which ones actually need me.
If the messages it names are the messages you expect, the connector works. Nothing is marked read by asking: reading through this server never sets the seen flag, so your own unread markers survive the test.
When that works, the use cases are worth a look for the things that are less obvious, and the full tool reference lists everything an assistant can reach and marks which tools are read-only.
Frequently asked questions
Do I need a client ID and a client secret?
No. This server registers your client for you the first time it connects, using the dynamic client registration part of the OAuth specification. You paste one URL and sign in. If a set-up guide asks you to copy a client ID and a secret out of a panel, it is describing a server that cannot do that, and pasting values into those fields here only gives the connection something else to get wrong.
Which config file does the snippet go in?
It differs per client and every page in this section names the file at the top of the block, because a correct snippet in the wrong file is the most common way a set-up fails silently. Cursor reads ~/.cursor/mcp.json, VS Code reads .vscode/mcp.json or a user file it opens by command, Zed reads its settings.json and Goose reads ~/.config/goose/config.yaml.
Why does the top-level key change between clients?
Because no standard names it. The protocol specifies how a client and a server talk once they are connected; it does not specify what the configuration file looks like. So Cursor, Windsurf, Cline and LibreChat use mcpServers, VS Code uses servers, Zed uses context_servers and Goose uses extensions, and all four are correct for their own client.
Does reading a message mark it as read?
No. Reading through this server never sets the seen flag, so an assistant can go through a backlog without destroying your own unread markers. That is a deliberate design rule rather than a side effect, and it is checked against a real mailbox rather than asserted. Marking something read is a separate tool that only runs when you ask for it.
My client is not in this list. Will it still work?
Probably. This is an ordinary remote MCP server over Streamable HTTP, so anything that speaks the protocol can hold it, and the SDKs speak it directly. The pages here exist because the settings live somewhere different in every client, not because the server needs anything special from any of them. Tell us which client you are using and we will read its documentation and add a page.
Can I connect more than one mailbox?
Yes. Add the server a second time under a different name and sign in again, choosing the other mailbox. The URL is the same both times, because the mailbox is decided during the sign-in rather than by the address. That is why every page here tells you to name the connector after the mailbox: your client will show two entries that are otherwise identical, and "mcp-server-1" tells you nothing about which is which a month later.
What happens to the connection if I change my mailbox password?
The mailbox stops answering and the tools start failing, because the credential we hold is the one you gave us. Update it in the control panel and the connector starts working again. The connector URL itself does not change, so nothing in your client needs touching.
Do I need ChatGPT Business to connect an MCP server?
No. ChatGPT Plus is enough, and you switch developer mode on yourself without an administrator. We connected this server to a Plus account in a browser on 1 September 2026 and it read, searched and sent. OpenAI's own FAQ says full MCP is a Business and Enterprise/Edu feature and gives even Pro read and fetch, and it does not mention Plus at all, so treat this as tested rather than promised. Free is untested.
Can ChatGPT send email through an MCP server?
Yes. The claim that MCP in ChatGPT is read-only described an earlier connector model. We asked a Plus account to send an email with no tool and no folder named, and the message was delivered from the right address with that account's own signature on it. ChatGPT asks for confirmation before some write actions depending on the app's permissions, and OpenAI blocks a few especially risky ones outright rather than offering them for approval.
Will my mailbox work in the ChatGPT phone app?
No. OpenAI answers this one directly: MCP apps are web only. Set the connector up in a browser and expect it to be missing on mobile. If you want the same mailbox on a phone, Claude.ai holds it on any plan and its mobile apps see the connector like any other.
Is any of this specific to Claude?
No, and the key table on this page is the evidence. Claude was the first client most people connected because it was first to ship remote MCP support, but there are 13 clients documented here and the server cannot tell them apart. It answers the protocol, not a brand.
What this section does not cover
The same rule as the rest of the site. Saying what is missing is cheaper than letting somebody find out.
-
Not protocol documentation
If you are building your own MCP server rather than connecting to one, the specification at modelcontextprotocol.io is the thing to read. These pages are about configuring clients.
-
No panel screenshots
Control-panel screens go stale faster than anything else on a website and a wrong one costs more than an absent one. The panel describes itself as you use it.
-
No other vendors' prices
Whether your client needs a paid tier for MCP is that vendor's to state, and it changes. Each page links to their own page rather than repeating a figure that will be wrong.
-
Mail, and a calendar you connect
This server reads and writes email, and a calendar once one has been connected to the mailbox, which is a separate step. No contacts, no files on a drive.
Find your client, then take two minutes.
5 MCP calls a day on any mailbox, with no card. Enough to connect a client and see your own mail come back through it.