Setup

One protocol. Seven places the list of servers actually lives.

MCP standardised how an agent talks to a server. It did not standardise where the server is written down — so the same connector is declared under three different keys, in two file formats, at five different scopes, across the tools one company runs.

how these pages are written

Every file path, JSON key, TOML table and CLI flag on these pages was read from the vendor's own current documentation on 2026-07-26, and each page links the exact page it came from.

Where a vendor's documentation is not publicly reachable, the page says so and publishes nothing rather than guessing. An invented settings path is worse than a missing one — a reader who follows it and fails does not come back.

The divergence, in one table

5 surfaces keep servers in a file and 2 administer them in a console. Among the file-based ones there are 3 different top-level keys — which is why a definition copied between two tools can produce a valid file that declares nothing.

surfacekeyformat
Claude CodemcpServersJSON
CursormcpServersJSON
Gemini CLImcpServersJSON
GitHub CopilotserversJSON
OpenAI Codexmcp_serversTOML
Claude.aino file — settingshosted
ChatGPT Enterpriseno file — settingshosted

What the table is actually evidence of

The immediate consequence is a support burden: a definition copied from one tool's documentation into another produces a file that parses cleanly and declares nothing, which is the single most common MCP failure and costs somebody an afternoon each time it happens.

The structural consequence is bigger. Because there is no shared location, there is no shared list — and because there is no shared list, the same server can be connected to four tools on one laptop, at four different scopes, holding four differently scoped credentials, reviewed by nobody. Every vendor's admin console can honestly report that its own surface is governed while that sentence stays true.

The other half is scope. Most of these surfaces support a personal scope that follows an engineer into every project they open, including repositories whose owners never reviewed it. That scope is where unreviewed servers accumulate, and it is invisible to the project-level review that people assume is catching things.

None of this is a criticism of the protocol. MCP standardised the wire, which was the hard part and the right part. Configuration was always going to be each host's business — which is exactly why the inventory has to be somebody's job at the organisation level rather than each vendor's.

Frequently asked

Is the MCP config format the same across tools?
The per-server fields are broadly similar — a command and arguments for a local process, a URL and headers for a remote one — but the container is not. Claude Code, Cursor and Gemini CLI use `mcpServers`; VS Code and Copilot use `servers`; Codex uses a `[mcp_servers.<name>]` TOML table. Claude.ai and ChatGPT have no file at all.
Why does my copied MCP config silently do nothing?
Almost always the top-level key. A file using `mcpServers` in a place that expects `servers` is valid JSON that declares no servers, so there is no parse error to point at. Check the key before you check anything else, then check whether an organisation policy is gating MCP for that surface.
Which surface has the strongest native MCP governance?
It depends on which control you mean, and they genuinely differ. Claude.ai centralises addition to owners on Team and Enterprise plans, which is the strongest default. Cursor documents the most detailed enterprise policy surface, including network access restriction for user-configured servers. Copilot gates MCP through an organisation policy that is off by default. Each page covers its own in detail.
Do we need a separate approval process per surface?
No — you need one, applied to the server rather than to the surface. The same MCP server shows up on several tools, and reviewing it once per tool produces several reviews of varying quality and no shared record. Review the server, record the decision somewhere no single vendor console owns, and let each surface's config be the distribution mechanism rather than the review.

Keep reading

One list, distributed to every surface in the table

Vincosha Registry holds the reviewed, pinned set of MCP connectors once and distributes it to every AI surface your company runs, whatever key each one wants it under. Vincosha Assay vets a server before it enters that set, and Vincosha Ledger records which versions were live in the session you are investigating.