Cursor MCP server: there isn't one, and why
Cursor sits on the other side of the protocol. What that means if you came looking for a Cursor connector, and what to connect to Cursor instead.
Last verified 1 September 2026 · from Cursor's changelog and documentation, its GitHub organization and the MCP registry
This page is one of 90 in a directory of monitoring and developer tools. Each page checks what an AI coding agent can get out of the tool through its MCP server, the connector that lets the agent query the tool directly.
Summary
Cursor does not publish an MCP server, and the absence is by design rather than an omission. Its own documentation covers three transports, and six capabilities it consumes: five MCP protocol features and one Cursor extension.
MCP has two sides. A server exposes one product's data as tools. A client connects to servers and lets a model call those tools. Cursor is a client, and one of the most used ones.
So the useful question is not which Cursor server to connect. It is which servers to connect to Cursor, and Cursor's own documentation covers exactly that.
What is the Cursor MCP server, and is it usable?
Cursor is an AI code editor. Its role in the Model Context Protocol is to be the thing an agent runs inside. You configure servers in ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one, and Cursor makes those tools available to the model.
Every vendor page in this guide has a Cursor configuration block for that reason. The connector belongs to the vendor whose data it exposes; Cursor is where it gets used.
There is no Cursor-shaped data an MCP server would expose. An editor's state is the file you have open, which the agent already has.
Every one of the 90 vendors in this directory gets the same four checks. Cursor passes 0 of them.
| Check | Result | Evidence |
|---|---|---|
| Official | Fail | No first-party MCP server. mcp.cursor.com does not resolve, the cursor organization carries only an archived mcp-servers directory, and there is no entry in the official MCP registry. |
| Maintained | Fail | Nothing to maintain: no server exists to be maintained. |
| Distributed | Fail | No package, image or endpoint published. |
| Usable | Fail | Cursor's own MCP documentation is client configuration: how to connect Cursor to other people's servers. |
Cursor operates in code, tests and review as the thing an agent runs inside. It publishes no server of its own, by design.
| Part of the work | What Cursor has here | Can an agent reach it |
|---|---|---|
| Code, tests & review | The editor itself | No. Cursor is where the agent runs, not something an agent queries |
| CI & release | None | No CI product, and no server |
| Production observability | None | No telemetry, and no server |
| Agent observability & evals | None | No traces or evaluations, and no server |
| AI cost management | None | No spend data exposed over MCP |
The takeaway is a redirection rather than a verdict. Cursor has nothing to connect to because it is the thing you connect things to. If you arrived looking for a Cursor MCP server, the page you want is the one for whichever product holds the data you need, and its Cursor setup block.
What can an AI agent do with Cursor?
One thing goes wrong here, and it is a search rather than a server.
Searching for "Cursor MCP server" returns configuration guides, not a server to install.
The results are Cursor's own documentation for adding other servers, plus third-party lists of servers that work well in Cursor. None of them is a Cursor server, because none exists.
Checked on 24 August 2026: mcp.cursor.com does not resolve, the cursor GitHub organization holds only an archived mcp-servers directory, and the official MCP registry has no Cursor entry. Cursor's changelog through July 2026 mentions MCP only as client extensibility.
Guard: Search for the product whose data you want instead. Every vendor page in this guide carries a Cursor configuration block.
How to configure Cursor MCP for agents
- 1
Choose the scope
.cursor/mcp.jsonin a project applies to that project.~/.cursor/mcp.jsonapplies everywhere. - 2
Pick the transport deliberately
Cursor documents stdio as local, single-user and manually authenticated, while SSE and Streamable HTTP are deployed servers that support multiple users and OAuth.
- 3
Interpolate rather than hardcode
Cursor resolves variables in
command,args,env,urlandheaders, so a secret can come from the environment instead of the file. - 4
Set the team allowlist before rollout
Cursor states that allowlisting approves a configuration; it does not distribute or install the server.
- 5
Use tool allowlists to narrow a server
They restrict which tools from an approved server run automatically, and an empty list allows all of them.
Paste this into your agent’s instructions
Cursor supports more of the protocol than tools alone, so an answer can come from a resource or a prompt rather than a tool call. Naming the source keeps that visible.
When you answer inside Cursor, state: - Which server answered, and whether the answer came from a tool, a resource or a prompt. Cursor supports all three. - Whether the server was project-scoped or global, because the two files can define different servers. Never state that data does not exist. State which server you queried and what it returned. Write your answer in ASD-STE100 Simplified Technical English. Use short sentences with one idea in each.
Do you need the MCP server at all?
There is no Cursor server to need, so the question becomes what to connect to Cursor. Cursor reads ~/.cursor/mcp.json for all projects and .cursor/mcp.json for one, and both take the same shape as the blocks on the vendor pages here.
For code and pipelines, GitHub and CircleCI are the usual pair. For what happens after a deploy, Grafana, Datadog and Dynatrace. For your own agents, Langfuse, Arize Phoenix and LangSmith.
One practical note that applies to all of them: every server you add spends context before you ask anything, and that budget is shared. Connecting five servers of the size measured on the vendor pages here can cost a fifth of the window before the first question.
Pick the servers for the data you actually query in Cursor, and keep the list short. The cost is paid at connection, not at use.
Cursor MCP server setup
Nothing here installs a Cursor server, because there is none. This is how other vendors' servers are added to Cursor, which is what a reader on this page is usually after.
Two files decide scope: .cursor/mcp.json for one project, ~/.cursor/mcp.json for everywhere. Both use the mcpServers key.
No credential needs to sit in the file. Cursor's interpolation resolves ${env:NAME} inside command, args, env, url and headers.
A local server
The stdio shape. Cursor documents stdio as local, managed by Cursor, single-user, taking a shell command, with authentication handled manually.
{"mcpServers":{"server-name":{
"command":"npx",
"args":["-y","mcp-server"],
"env":{"API_KEY":"value"}}}}A remote server
SSE and Streamable HTTP are deployed servers supporting multiple users, and Cursor documents OAuth for both.
{"mcpServers":{"server-name":{
"url":"https://api.example.com/mcp"}}}Keep secrets out of the file
Cursor's own guidance is to use environment variables for a client ID and secret rather than hardcoding them. The same interpolation works in env, url and headers.
{"mcpServers":{"server-name":{
"url":"https://api.example.com/mcp",
"auth":{
"CLIENT_ID":"${env:MCP_CLIENT_ID}",
"CLIENT_SECRET":"${env:MCP_CLIENT_SECRET}"}}}}Path variables
Beyond ${env:NAME}, Cursor resolves ${userHome}, ${workspaceFolder}, ${workspaceFolderBasename}, and ${pathSeparator} or ${/}. ${workspaceFolder} is the folder containing .cursor/mcp.json.
No credentials are involved in these; they are path and name substitutions.
${env:NAME} ${userHome} ${workspaceFolder}
${workspaceFolderBasename} ${pathSeparator} ${/}Every other client
Each block below is the configuration for one client, with the file path and the key that client expects.
Team and enterprise allowlist
Admins control which servers users may run from the Cursor dashboard, under Team Settings, MCP Configuration. Cursor is explicit that allowlisting approves a configuration and does not distribute or install anything.
Command entries approve local stdio servers by command pattern. URL entries approve remote HTTP and SSE servers by URL pattern. Tool allowlists restrict which tools of an approved server run automatically, and an empty tool allowlist allows all of them.
No credentials appear in the dashboard settings. Each approved server still authenticates on its own terms.
Team Settings -> MCP Configuration command entries -> approve local stdio servers URL entries -> approve remote HTTP/SSE servers tool allowlists -> empty means all tools allowed
Registering a server from an extension
Cursor documents a programmatic route for extensions, vscode.cursor.mcp.registerServer(), which registers a server alongside personal and workspace configurations rather than editing either file.
No credentials are passed by this call. The registered server authorizes on its own terms, through OAuth or its own key.
vscode.cursor.mcp.registerServer()
Read-only access, permissions and security
Allowlisting is approval, not installation
Cursor states plainly that allowlisting approves an MCP configuration. It does not distribute or install the server. An approved entry still has to be installed by the user.
An empty tool allowlist means every tool
Leaving the list empty allows all tools from that server to run automatically, which is the opposite of what an empty list usually implies.
stdio authenticates manually
Cursor's transport table marks stdio as manual auth and single user, while SSE and Streamable HTTP support OAuth and multiple users.
Secrets belong in the environment
Cursor's documented example uses
${env:MCP_CLIENT_ID}and${env:MCP_CLIENT_SECRET}rather than literal values inmcp.json.The surface is wider than tools
Cursor supports tools, prompts, resources, roots, elicitation and interactive apps. Roots tell a server which folders it may see. Elicitation lets a server ask the user a question mid-call. Reviewing a server therefore means reviewing more than its tool list.
Troubleshooting
- You cannot find a Cursor MCP server to install
- There is not one. Cursor is the client. Search instead for the vendor whose data you want, and add that server to
mcp.json. - A server works in one project and not another
- Check which file defines it.
.cursor/mcp.jsonis project-scoped;~/.cursor/mcp.jsonapplies everywhere. - A variable appears literally instead of resolving
- Interpolation applies to
command,args,env,urlandheadersonly. A variable placed in any other field is left as written. - An allowlisted server still is not available
- Allowlisting approves a configuration; it does not install anything. The server still has to be configured on the machine.
- Tools run automatically when you did not expect it
- An empty tool allowlist allows every tool from that server. Name the tools explicitly to narrow it.
Cursor MCP server: Reference
| Item | Value |
|---|---|
| Role in MCP | Client. Cursor consumes servers other vendors publish |
| Server published | None |
| Project config | .cursor/mcp.json |
| Global config | ~/.cursor/mcp.json |
| Config key | mcpServers |
| Transports | stdio · SSE · Streamable HTTP |
| Auth by transport | stdio manual · SSE and Streamable HTTP support OAuth |
| Interpolated fields | command, args, env, url, headers |
| Variables | ${env:NAME}, ${userHome}, ${workspaceFolder}, ${workspaceFolderBasename}, ${pathSeparator} |
| Protocol support | Tools, prompts, resources, roots, elicitation and apps |
| Team control | Team Settings, MCP Configuration, with command and URL allowlists |
| Tool allowlist | Empty allows every tool from that server |
| Programmatic route | vscode.cursor.mcp.registerServer() |
| Inventory source | Cursor's MCP documentation, read 25 August 2026 |
What engineers report
There is no server to have opinions about, so this section records what the search for one actually finds.
| What was checked | What it shows |
|---|---|
mcp.cursor.com | Does not resolve |
cursor GitHub organization | An archived mcp-servers directory, nothing current |
| Official MCP registry | No Cursor entry |
| Cursor changelog to July 2026 | MCP appears only as client extensibility |
DNS checked and the registry and organization searched on 24 August 2026. Cursor's role as a client is documented by Cursor itself.
Should you connect an agent to Cursor?
There is nothing to connect: this is the agent side of MCP. Best for connecting a small, deliberate set of vendor servers rather than looking for a Cursor one.
- Strongest fit
- Teams who want an editor that can call other vendors' MCP servers, which is what Cursor is for.
- Main advantage
- Mature client support, with per-project and global server configuration.
- Main weakness
- Nothing to connect to. There is no Cursor data an agent could query.
- Operational risk
- Every server added to Cursor spends context at connection, and the budget is shared across them.
From Oodle
One platform for agent traces and infrastructure
Agent traces usually sit in a different product from the rest of your telemetry, so when a slow database makes an agent slow the symptom is in one tool and the cause is in another. Oodle keeps both in one query surface, from $10 per million spans.
See agent observabilityFrequently asked questions
Does Cursor have an MCP server?
No. Checked 24 August 2026: mcp.cursor.com does not resolve, the cursor GitHub organization has only an archived mcp-servers directory, and there is no entry in the official MCP registry.
Why doesn't Cursor publish an MCP server?
Cursor is an MCP client. Servers expose a product's data as tools; clients connect to servers. An editor's state is the file you have open, which the agent already sees.
How do I add an MCP server to Cursor?
Put it in ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one. Every vendor page in this guide carries a Cursor block you can copy.
How many servers should I connect?
Fewer than you might expect. Each server sends its tool definitions at connection, and the cost is shared across the context window whether or not a tool is called.