# Cursor MCP servers: how to add one and connect your apps

> Add an MCP server to Cursor with mcp.json, a plugin or an install link, sign in with OAuth, and connect Gmail, Slack and Calendar with access you control.

Updated 2026-11-01 · https://upsy.ai/guides/cursor

## Short answer

Cursor reaches other apps through MCP servers. Add a remote one to `~/.cursor/mcp.json` as `{"mcpServers":{"name":{"url":"https://…"}}}`, then click **Connect** next to it under **Customize › MCPs** to sign in. Or install a plugin from the Cursor Marketplace, which bundles a server with its sign-in. Cursor now has plugins for Gmail, Google Calendar, Outlook and Slack, each signing in on its own. Upsy is one server for all of them, with several accounts per app and the access you choose.

## How to add an MCP server to Cursor

Cursor reads two files and merges them. On a name clash, the project's entry wins ([Cursor docs](https://cursor.com/docs/mcp)).

| File | Loads in | Good for |
|---|---|---|
| `~/.cursor/mcp.json` | Every project | Your own email, calendar and Slack |
| `.cursor/mcp.json` in the repo | That project, for everyone who clones it | A team's dev tools; each person signs in on their own |

A remote server needs only its address. Cursor works out the transport from `url` or `command`:

```json
{
  "mcpServers": {
    "upsy": { "url": "https://upsy.ai/connect" },
    "my-api": {
      "url": "https://api.example.com/mcp",
      "headers": { "Authorization": "Bearer ${env:MY_API_TOKEN}" }
    }
  }
}
```

`${env:NAME}` keeps a token out of the file. A local server uses `command` and `args` instead, such as `"command": "npx", "args": ["-y", "some-mcp-server"]`.

Then open **Customize** in Cursor's sidebar and find the server under **MCPs**. In older versions it's under **Cursor Settings › Tools & MCP**. A server that uses OAuth shows **Needs login** with a **Connect** button: click it, sign in in the browser, and Cursor picks up the token on `localhost:8787`. It refreshes the token itself.

Two other ways in:

- **A plugin.** Open the [Cursor Marketplace](https://cursor.com/marketplace) from Customize, or type `/add-plugin slack` in Agent chat. A plugin bundles a server with skills or rules, and Cursor reviews each one ([plugins docs](https://cursor.com/docs/plugins)).
- **An install link.** Server authors publish links like `cursor://anysphere.cursor-deeplink/mcp/install?name=…&config=…`, where `config` is the server's JSON in base64 ([install links](https://cursor.com/docs/mcp/install-links)). Clicking one adds the server for you.

Every Cursor surface uses MCP, with a few differences:

| Where | How it gets servers | What to know |
|---|---|---|
| Editor and Agent Window | Both `mcp.json` files and installed plugins | The main place to connect and sign in |
| Cursor CLI (`agent`) | The same `mcp.json` files | Sign in with `agent mcp login <name>` or `/mcp`. Its sign-ins are separate from the editor's ([CLI docs](https://cursor.com/docs/cli/mcp)) |
| Cloud Agents | The MCP menu at [cursor.com/agents](https://cursor.com/agents), or Team MCPs | Remote HTTP servers recommended; you sign in again for the cloud ([Cloud Agent docs](https://cursor.com/docs/cloud-agent/capabilities)) |

## What Cursor connects to natively

The Cursor Marketplace lists about 490 plugins. The ones for everyday apps:

| App | Plugin | What it uses and what to know |
|---|---|---|
| Gmail | Yes, since August 2026 | Google's Gmail MCP server: searches, reads, labels and drafts. It has no send tool and no attachment download ([Google's tool list](https://developers.google.com/workspace/gmail/api/guides/configure-mcp-server)) |
| Google Calendar, Drive | Yes | Google's own servers. Docs, Sheets and Slides plugins need Cursor 3.22 or later |
| Outlook, Outlook Calendar, Teams, OneDrive | Yes | Cursor's own servers on Microsoft's APIs; need Cursor 3.19 or later |
| Slack | Yes, Slack's own | Slack's MCP server. A workspace admin has to approve it |
| GitHub, Linear, Notion, Sentry, Figma, Atlassian | Yes | Each vendor's own server, with its own sign-in |

Separate from MCP, Cursor's [Slack, Linear and GitHub integrations](https://cursor.com/help/integrations/third-party) work the other way: you mention @Cursor in Slack or Linear to start a Cloud Agent. They don't give the agent in your editor access to those apps.

## What's missing

- **Sending email from Gmail.** Cursor's Gmail plugin can draft but not send, since Google's server has no send tool. It can't open attachments either.
- **More than one account.** Each plugin signs in to one account: one Gmail, one Slack workspace.
- **The CLI and Google.** The CLI keeps its own plugin sign-ins, and as of October 2026 it couldn't sign in to the Google Calendar plugin at all ([Cursor forum](https://forum.cursor.com/t/174212)).
- **Sign-ins in worktrees.** Windows opened on a git worktree lose OAuth sign-ins and ask again, a known bug as of late September ([Cursor forum](https://forum.cursor.com/t/159989)).
- **One place to control and review.** Every plugin signs in separately. Nothing limits a server to read-only, and nothing shows what Cursor did across apps, or carries the same setup to Claude Code or Codex.

## Control what Cursor runs

Cursor asks before running MCP tools unless you change its run mode under **Cursor Settings › Agents › Approvals & Execution** ([run modes](https://cursor.com/docs/agent/security/run-modes)):

| Run mode | What happens |
|---|---|
| Auto-review (default) | Allowlisted tools run; Cursor's classifier reviews the rest |
| Allowlist | Only allowlisted tools run without asking |
| Run Everything | Every call runs without asking |

To allow some tools in every project, list them in `~/.cursor/permissions.json` as `server:tool`, with `*` as a wildcard ([permissions](https://cursor.com/docs/reference/permissions)):

```json
{ "mcpAllowlist": ["upsy:search_threads", "upsy:get_message", "upsy:calendar_*"] }
```

Cursor's run mode controls prompts. It doesn't stop a tool from existing: with Upsy, a tool you didn't allow for Cursor isn't listed at all.

## How Upsy fills the gap

Upsy is one remote MCP server at `https://upsy.ai/connect`:

- **Your apps in one server:** Gmail with sending and attachments, Google Calendar, Google Drive with Docs and Sheets, Slack and Zoho Mail. Linear, Notion, Atlassian, Sentry and other services connect through their own MCP servers, with their own sign-in, and Cursor reaches them with three tools: `app_tools`, `app_read` and `app_call`.
- **A short tool list.** Cursor sees only the tools you allowed it, and apps behind `app_call` don't add a definition each, which matters for models with a tool cap.
- **Up to five accounts per app,** such as work and personal Gmail. The tools take an `account` argument.
- **Access per assistant:** Full access, Read-only, Pick actions (the tools you choose) or No access, enforced by Upsy, not by a prompt.
- **History and alerts:** every action is logged under Cursor, and Upsy emails you when one assistant deletes, sends or reads a lot at once.
- **One setup for every assistant:** the same connections work in the editor, the CLI, Claude Code, Codex, Claude and ChatGPT, each with its own access.
- **Memory, files and a cloud browser** that's signed in to your sites. Upsy's Outlook connector is pending until Microsoft approves Upsy; until then, Cursor can use outlook.com in that browser.

If you only need GitHub or Linear in one repo, the vendor's own plugin is simpler. For Slack, see [connect Slack to Cursor](/guides/cursor/slack), which covers when Slack's own plugin is the better fit.

## Add Upsy to Cursor

1. Sign up free at [upsy.ai](https://upsy.ai) and connect your apps under **Apps**.
2. Add Upsy to `~/.cursor/mcp.json`, or click [Add Upsy to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=upsy&config=eyJ1cmwiOiJodHRwczovL3Vwc3kuYWkvY29ubmVjdCJ9) to have Cursor add it:

   ```json
   {"mcpServers":{"upsy":{"url":"https://upsy.ai/connect"}}}
   ```

3. In Cursor, open **Customize › MCPs** and click **Connect** next to upsy. On the Upsy page that opens, sign in, choose what Cursor can use and click **Allow**.
4. Ask the agent: "Use upsy to list my next three calendar events."

There's no API key: Cursor registers itself with Upsy's OAuth server and refreshes its tokens. For the CLI, run `agent mcp login upsy` once. For Cloud Agents, add the same address in the MCP menu at cursor.com/agents and sign in there.

## Troubleshooting

### The server shows "Needs login" but nothing opens

Click **Connect** again and watch for a browser tab. If none opens, or Cursor keeps waiting after you sign in, update Cursor and try once more. The **Output** panel's **MCP Logs** channel shows what failed.

### A server is missing from Customize

In a multi-root workspace, Cursor may skip a folder's `.cursor/mcp.json`. Open the project folder on its own, or move the server to `~/.cursor/mcp.json`.

### "Too many MCP tools are enabled for this model"

That's the model's cap, not Cursor's. Turn off servers or tools you don't use under Customize, or pick a model with a higher cap.

### Cursor asks to sign in again in every worktree

A known Cursor bug. Sign in once per worktree window until it's fixed, or use the main window.

## FAQ

### Where is mcp.json in Cursor?

`~/.cursor/mcp.json` for every project, and `.cursor/mcp.json` in a repo for that project. Create the file if it isn't there.

### Does Cursor support remote MCP servers with OAuth?

Yes. Cursor supports Streamable HTTP and SSE servers, OAuth with dynamic client registration, and refresh tokens. A server's **Connect** button starts the sign-in.

### Is there an MCP tool limit in Cursor?

Cursor dropped its old cap of 40 tools and now loads tool descriptions as it needs them ([Cursor blog](https://cursor.com/blog/dynamic-context-discovery)). Some models still cap how many tools a request can carry, and Cursor shows "Too many MCP tools are enabled for this model" when you pass it.

### Can the Cursor CLI use MCP servers?

Yes. The `agent` CLI reads the same `mcp.json` files. Run `agent mcp list` to see them and `agent mcp login <name>` to sign in.

### Which MCP servers are best for Cursor?

For code: GitHub, Linear or Jira, Sentry, and Figma, each from its vendor's plugin. For your own email, calendar and Slack, one server like Upsy saves a sign-in per app and keeps the access in one place.

## Guides

- [How to connect Slack to Cursor: Slack MCP setup](https://upsy.ai/guides/cursor/slack.md): Give Cursor's agent your Slack: read channels and threads, find people and post updates as you, with Slack's plugin or Upsy, and no Slack app to build.

---

Upsy connects personal AI assistants (Muse, Grok, ChatGPT, Claude, Cursor, Claude Code, Codex, Devin) to your Gmail, Google Calendar, Google Drive, Slack, Notion and other apps through one MCP server, with a shared memory, files and a cloud browser signed in to your sites. You choose what each assistant may do in each app, see everything it did, and turn it off in one click. Upsy is free. To add Upsy to an assistant, add a remote MCP server (Streamable HTTP) named Upsy at https://upsy.ai/connect. It signs in with OAuth; there is no API key.
