TL;DR. Updated August 2026. Two ways in. One click: open an install link such as the Add Hatchable to Cursor button, confirm, and approve the OAuth tab. Manual: open Cursor → Settings → Cursor Settings → Tools & MCP (older builds call the tab MCP) → New MCP server, which opens ~/.cursor/mcp.json; paste the JSON config and save. Cursor picks up the change immediately. Hatchable signs in with OAuth on Cursor 1.0 and later; on older builds, grab a token at hatchable.com and paste it into the Authorization header.

What is an MCP server?

An MCP server (Model Context Protocol) is an external service that Cursor's agent can call: create files, deploy apps, run queries, hit an API. Any service that speaks MCP can be plugged in, and Cursor will let the agent invoke its tools as part of a conversation.

Hatchable's MCP server lets Cursor's agent create Hatchable projects, deploy code, and manage the project's database, all without leaving the editor.

Before you start

Add the server

  1. Open Cursor's MCP settings

    Settings → Cursor SettingsTools & MCP (older builds: MCP). You'll see a list of any servers already configured and a New MCP server button, which opens ~/.cursor/mcp.json in the editor.

  2. Paste the JSON config

    Cursor uses JSON for MCP server entries. For Hatchable on Cursor 1.0 or later, the entry is just the URL and OAuth does the rest:

    {
      "mcpServers": {
        "hatchable": {
          "url": "https://hatchable.com/mcp"
        }
      }
    }

    On an older build, or for a server that issues a static token, add a headers object:

    {
      "mcpServers": {
        "hatchable": {
          "url": "https://hatchable.com/mcp",
          "headers": {
            "Authorization": "Bearer YOUR_TOKEN"
          }
        }
      }
    }

    Swap YOUR_TOKEN for your actual token. If you're adding multiple servers, repeat the block inside mcpServers with a different key name for each one.

  3. Save and confirm

    Cursor will re-read the config on save. Back on the MCP page, your new server should show a green "connected" indicator. If it stays red, jump to Troubleshooting below.

  4. Ask the agent to use it

    Open the agent panel (⌘+L on macOS) and give it a task that requires the server. For Hatchable:

    "Create a new Hatchable project called hello-world with a page that says hi, and deploy it."

    The agent will invoke the Hatchable tools. Cursor shows a permission prompt the first time each tool runs; accept to continue.

Where the config file lives

If you'd rather edit the config file directly than go through the UI, it's at:

OSPath
macOS~/.cursor/mcp.json
Windows%USERPROFILE%\.cursor\mcp.json
Linux~/.cursor/mcp.json
One project, any OS.cursor/mcp.json at the repo root
Project-scoped config. If you want to commit an MCP config to a specific repo so teammates pick up the same servers, create .cursor/mcp.json in the repo root with the same mcpServers object. Cursor loads it automatically when the project opens.

One-click install links vs. editing mcp.json

Cursor has two front doors for the same config, and it helps to know they end in the same place. Checked against Cursor's documentation as of August 2026; Cursor renames its settings panels fairly often, so treat the menu labels as approximate.

The deeplink (one click)

Servers can publish an install link of the form cursor://anysphere.cursor-deeplink/mcp/install?name=NAME&config=BASE64, where config is the server's JSON entry, base64-encoded. Clicking it opens Cursor with an install prompt showing the name and the decoded config; confirm, and Cursor writes the entry to its config for you (in current builds, the global ~/.cursor/mcp.json). Hatchable's link is the button on the connect Cursor how-to and in the docs; its config is nothing but {"url": "https://hatchable.com/mcp"}, which you can confirm in the prompt before accepting. That is the check worth doing for any deeplink: read the decoded config, because a malicious link could just as easily install a command that runs something on your machine.

Editing the file (global or per project)

~/.cursor/mcp.json applies to every workspace; .cursor/mcp.json at a repo root applies only when that project is open, and is the one to commit for a team. Cursor loads both. Either file uses the mcpServers object shown above. For a remote server, url is all that is needed for Streamable HTTP (Cursor also still speaks the older SSE transport from the same key); a headers object carries static tokens, and values can reference ${env:NAME} so the token lives in your environment rather than in the file. On Cursor 1.0 and later, a url-only entry for an OAuth server triggers the browser sign-in the first time Cursor connects, and Cursor keeps the resulting credentials for you.

Seeing the tools Cursor loaded

Cursor Settings → Tools & MCP lists every server with a status dot; expand a server and you see each tool it advertises, with a per-tool toggle and a toggle for the server as a whole (some newer builds surface the same list under Customize in the sidebar). If Hatchable shows as connected but with no tools, that usually means the OAuth step has not completed yet; Cursor typically shows a sign-in action on the server's row for exactly that. Cursor's agent shows the same tool names in chat when it calls them, so if you want to confirm a particular tool exists, that list is the place to look.

Troubleshooting

Cursor shows the server as "not connected"

In order of frequency:

The server connects but the agent doesn't call its tools

Cursor's agent only invokes MCP tools when the conversation explicitly needs them. "Help me with this file" won't trigger Hatchable's deploy tool; "Deploy this to Hatchable" will. Be specific: name the tool ("deploy", "create project", "query the app database") in the prompt and the agent will find it.

I switched Hatchable tokens and the old one still works

That's normal: Cursor caches tool manifests. Restart Cursor (or just reload the agent panel) and the cache clears.

Deploy apps from Cursor to a free live URL.

Hatchable hosts everything Cursor builds. Free forever, bring your own AI.

Get started free →

Frequently asked questions

Does Cursor support the same MCP servers as Claude Code?

Mostly yes. Any MCP server that speaks the HTTP transport works in both. The config format is different (JSON in Cursor, claude mcp add command in Claude Code) but the servers themselves are interchangeable.

Can I put my Hatchable token in an environment variable instead of the config file?

Cursor's MCP config resolves ${env:VAR_NAME} placeholders in header values. For example: "Authorization": "Bearer ${env:HATCHABLE_TOKEN}". Then set HATCHABLE_TOKEN in your shell and Cursor will pick it up at launch.

Do I need a paid Cursor plan to use MCP?

No. MCP support is available in the Cursor free tier. What's metered on Cursor's free tier is AI requests, not the MCP feature itself.

Can I add MCP to Cursor on a specific project only?

Yes. Put the config at .cursor/mcp.json in the project root. Cursor loads project-scoped MCP servers on top of your global ones when the project opens.

Is the Hatchable token scoped to my account?

Yes. Each token Hatchable issues is tied to a single account. Sharing a token lets the holder create projects billable to that account, so don't commit it to public repos.

How do I add a remote MCP server to Cursor with just a URL and OAuth?

Put {"mcpServers": {"name": {"url": "https://server.example/mcp"}}} in ~/.cursor/mcp.json (or click the server's one-click install link, which writes the same entry), then open Tools & MCP. On Cursor 1.0 and later, Cursor opens a browser tab for the server's OAuth sign-in on first connect and then lists its tools under the server. For Hatchable the URL is https://hatchable.com/mcp and the sign-in creates your free account.