Set Up Cursor MCP Servers: 12 Steps, 45 Min [2026] Cursor released CLI version v2026.10.08, which changes how the agent treats Model Context Protocol tool calls by distinguishing low-risk actions (drafting, previewing, planning, reading) from high-impact ones (sending, publishing, applying, deleting), so a workflow that reads a dozen files and writes one commit no longer needs a dozen manual approvals. The release covers three surfaces — the Cursor editor, the Cursor CLI, and Cursor's cloud agents — which all read the same mcp.json file but handle authentication and approval differently, and Cursor requires CLI v2026.10.08 or later plus Node.js 18 or later for stdio servers run via npx. The change matters because teams had either disabled approval prompts entirely out of fatigue, removing the guardrail between an agent and a production system, or kept prompts on and accepted the interruption cost on every tool call. Cursor shipped CLI release v2026.10.08 with a quiet but important change: the agent now tells the difference between a Model Context Protocol action that merely drafts, previews, or reads something, and one that sends, publishes, applies, or deletes it. That distinction only matters if your MCP servers are actually configured, authenticated, and approved in the first place. Search interest around “cursor mcp” has climbed as more teams wire GitHub, Figma, Postgres, and internal tooling directly into their agent sessions, yet the setup path spans three different surfaces: the Cursor editor, the Cursor CLI, and Cursor’s cloud agents. Each reads the same mcp.json file but handles authentication and approval differently. We will configure a local stdio server, an HTTP remote server, verify discovery inside the editor, authenticate from the terminal, inspect exposed tools, and lock down the risky actions before they run unattended. By the end you will have a repeatable project template plus a troubleshooting checklist for the errors that show up most often. Don't miss new tech stories on Google Add Shattered once in the Google app and our stories show up in your news suggestions. Add now https://www.google.com/preferences/source?hl=en&q=https%3A%2F%2Fshattered.io%2F What MCP Actually Does Inside Cursor Model Context Protocol is the open standard that lets an AI agent call out to external tools, APIs, and data sources through a consistent interface instead of a pile of one-off integrations. Inside Cursor, an MCP server might expose a database query tool, a ticket-creation tool, a design-file reader, or a deployment trigger. The agent discovers these tools, decides when to call them based on your prompt, and depending on your approval settings either runs them automatically or waits for you to click approve. Cursor supports two server transport types. A stdio server runs as a local process on your machine, typically started with a command like npx or python , and communicates over standard input and output. An HTTP or SSE server runs remotely and Cursor talks to it over a URL, which is the shape most third-party SaaS integrations use. Both are declared in the same mcp.json file, and both are visible to the editor, the Cursor CLI https://cursor.com/docs/cli/reference/parameters.md , and cloud agents once configured correctly. What changed recently is the approval model around those tool calls. Earlier CLI builds treated every MCP action as equally risky, which meant constant interruptions even for a read-only lookup. The v2026.10.08 release separates low-risk actions drafting, previewing, planning, reading from high-impact ones sending, publishing, applying, deleting , so a workflow that reads a dozen files and only writes one commit does not require a dozen manual approvals. That split matters more than it sounds. Before the change, a lot of teams either disabled approval prompts entirely out of fatigue, which removed the one guardrail between an agent and a production system, or kept prompts on and accepted the interruption cost on every single tool call, which pushed people away from using MCP servers at all for anything beyond quick experiments. The new model is an attempt to keep the guardrail where it actually protects you while getting it out of the way everywhere else, and the setup steps https://shattered.io/zksync-era-bridge-setup-2026/ below are built around taking advantage of that distinction rather than just getting a server to connect. Prerequisites and Versions Before starting, confirm you have the following in place. Version mismatches are the single most common reason an MCP server shows up in the editor but fails silently in the CLI, or vice versa. - Cursor editor, latest stable build Settings → General → Check for Updates - Cursor CLI v2026.10.08 or later run agent --version to check - Node.js 18 or later, if any of your stdio MCP servers run via npx - Python 3.10 or later, if any stdio server runs via uvx or python - A terminal with write access to your project root and your home directory - Admin access to any third-party service GitHub, a database, an internal API you plan to connect through MCP, since several setups require generating a personal access token or OAuth client ID first Install the CLI if you have not already. On macOS, Linux, and Windows under WSL, run: curl https://cursor.com/install -fsS | bash On native Windows PowerShell, use the equivalent installer: irm 'https://cursor.com/install?win32=true' | iex After installation, the binary lands in ~/.local/bin on Unix-like systems. If agent --version comes back as “command not found,” add that directory to your shell’s PATH and reopen the terminal before continuing. Step 1: Decide Project-Level or Global Configuration Cursor reads MCP configuration from two locations, and the choice affects who can see and use a given server. Project-level configuration lives at .cursor/mcp.json inside the repository, gets committed to version control minus any secrets, which belong in environment variables , and only applies while you have that project open. Global configuration lives at ~/.cursor/mcp.json in your home directory and applies across every project you open on that machine. Both the editor and the CLI follow the same precedence order: project configuration first, then global, then any nested configuration further down the directory tree. For a team setup, put shared servers like an internal ticketing tool or a shared Postgres read replica at the project level so every contributor gets the same tools automatically. Keep personal servers, like a local filesystem browser scoped to your own dotfiles, in the global file. Create the project-level file now: mkdir -p .cursor touch .cursor/mcp.json Step 2: Add a Local stdio MCP Server stdio servers are the fastest way to get started because most published MCP servers ship as an npm package you run with npx , with no deployment step. The configuration schema uses a top-level mcpServers object, where each key is a name you choose and each value describes how to launch that one server. Open .cursor/mcp.json and add a filesystem server, which is a common first server because it lets the agent read and list files outside the project directory when you explicitly grant that access: { "mcpServers": { "filesystem": { "command": "npx", "args": "-y", "mcp-server", "--root", "/Users/you/reference-docs" , "env": { "LOG LEVEL": "info" } } } } The command field is required and must resolve on your system PATH. args is optional and gets passed straight to that command. env injects environment variables scoped to that one server process, which is where API keys and tokens belong rather than hard-coded in args . There is also an envFile field if you would rather point at a separate .env file instead of inlining values. Step 3: Add a Remote HTTP MCP Server Remote servers skip the local process entirely and point Cursor at a URL, which is how most SaaS vendors expose MCP today. The same mcpServers object holds both types side by side, so your project can mix a local stdio server with a hosted one without any extra wiring: { "mcpServers": { "filesystem": { "command": "npx", "args": "-y", "mcp-server", "--root", "/Users/you/reference-docs" }, "internal-api": { "url": "https://api.yourcompany.com/mcp", "headers": { "Authorization": "Bearer ${API TOKEN}" } } } } For services that support full OAuth instead of a static bearer token, Cursor accepts an auth block with a client ID, client secret, and scopes list: { "mcpServers": { "oauth-server": { "url": "https://api.example.com/mcp", "auth": { "CLIENT ID": "your-oauth-client-id", "CLIENT SECRET": "your-client-secret", "scopes": "read", "write" } } } } Never commit a real client secret to version control, even in a project-level file. Reference an environment variable the same way the bearer token example does above, and keep the actual value in your shell profile, a secrets manager, or an untracked .env file loaded through envFile . Step 4: Open Cursor and Verify Server Discovery Save mcp.json and open or reload the project in the Cursor editor. Go to Settings → MCP, where both servers should appear in the list with a status indicator. A green or active status means Cursor successfully started the stdio process or reached the HTTP endpoint. A gray or error status usually points to a bad command path, a missing dependency, or a malformed JSON file. If nothing shows up at all, check that the file is valid JSON first. A single trailing comma will cause Cursor to silently ignore the entire file rather than show a parse error in some builds, so running the file through any JSON validator before troubleshooting further saves time. Step 5: Authenticate from the Cursor CLI The CLI automatically detects and respects the same mcp.json file the editor uses, so there is no separate configuration step for the terminal. What does need a separate action is authentication for any server that requires it. Run: agent mcp login internal-api This triggers a streamlined login flow with automatic callback handling, meaning the CLI opens a browser tab for the OAuth exchange and picks up the resulting token on its own without you pasting anything back into the terminal. For servers using a static bearer token instead of OAuth, this command is unnecessary since the token already lives in the headers field of the config. Step 6: List Configured Servers and Inspect Their Tools Confirm the CLI sees everything the editor sees: agent mcp list This prints every configured server and its current status. Once a server shows as reachable, inspect exactly which tools it exposes and what arguments each one accepts, which matters before you let an agent call something you have not reviewed: agent mcp list-tools internal-api Read through the tool names and argument schemas here before moving on. This is the step most tutorials skip, and it is the one that catches a server exposing a destructive “delete record” tool you did not expect to have access to. Step 7: Enable the Server for Agent Use A configured server is not automatically trusted. Add it to your local approved list with: agent mcp enable internal-api If you ever want to pull a server out of rotation without deleting its configuration, for example while you investigate unexpected behavior, the inverse command stops it from loading or prompting for approval at all: agent mcp disable internal-api Step 8: Test the Integration in Agent Mode Back in the editor, open a chat and switch to Agent mode. Ask something that clearly requires the new server, such as “list the open tickets assigned to me” if you connected a project-tracker MCP server, or “read the README in the reference-docs folder” for the filesystem example above. Watch the tool-call card that appears in the conversation. It should name the exact server and tool it is invoking, along with the arguments, before or after running it depending on your approval settings. If the agent answers from general knowledge instead of calling the tool, it usually means either the server is not enabled, or your prompt was too vague for the agent to recognize the tool as relevant. Being explicit about which tool or server to use in the first test prompt removes that ambiguity. Step 9: Reuse the Exact Same Setup from the Terminal Because the CLI shares configuration, rules, and MCP servers with the editor, you can run the identical workflow from a terminal session, which matters for CI pipelines, remote servers without a GUI, or just a faster keyboard-driven loop. The CLI exposes a handful of mode shortcuts worth knowing: - /plan switches to planning mode before any code changes happen - /ask switches to a read-only exploration mode with no file modifications - Shift+Tab rotates between modes without typing a command - @ followed by a path includes a specific file or folder in context - /summarize compresses the current context window when it gets long - Prefixing a prompt with & hands the task off to a cloud agent instead of running locally For scripted or CI use, run the CLI non-interactively and capture structured output: agent -p "check the internal-api MCP server for any tickets labeled urgent" \ --output-format json \ --approve-mcps The --approve-mcps flag skips interactive approval prompts entirely, auto-approving every configured server for that run. Reserve it for pipelines you trust and for servers you have already reviewed with list-tools , since it removes the one safety check that normally sits between the agent and a high-impact tool call. Step 10: Add Project Guidance with .cursor/rules MCP gives the agent tools, and rules tell it when and how to use them. Both the editor and the CLI read the same rules system, stored as files inside a .cursor/rules directory at your project root, plus any AGENTS.md or CLAUDE.md file sitting directly in the root. Create a rule that steers tool usage: mkdir -p .cursor/rules cat .cursor/rules/mcp-usage.md << 'EOF' --- description: Guidance for using the internal-api MCP server alwaysApply: true --- - Always call list-tools logic before assuming a tool exists; do not guess argument names. - Never call a delete or close-ticket tool without explicit user confirmation in the same turn. - Prefer the filesystem MCP server over shell commands when reading files outside the repo root. EOF If your team already maintains an AGENTS.md file for other agent tooling, Cursor's CLI will pick it up automatically alongside this directory, so there is no need to duplicate guidance across both formats. Step 11: Set Approval Boundaries for High-Impact Actions This is where the v2026.10.08 CLI release matters directly. The agent now classifies MCP tool calls into lower-risk actions drafting, previewing, planning, reading and higher-impact ones sending, publishing, applying, deleting , and only the second group should require your explicit approval by default. In Cursor's settings, review the approval policy for each enabled MCP server and confirm that any tool name containing "delete," "send," "publish," "merge," or "deploy" is flagged for manual review rather than silently approved. For a server you fully trust and have already audited with list-tools , such as a read-only analytics dashboard, auto-approval is reasonable. For anything that writes to a production system, keep the approval prompt on even if it adds friction. The whole point of separating risk tiers is so that friction only shows up where it is earning its keep. Step 12: Extend MCP to Cloud Agents and Teams Local mcp.json configuration only helps the person running it. For a team running agents in Cursor's cloud environment, servers need to be registered at the team level instead. Go to the MCP dropdown at cursor.com/agents and add the same server definitions there. Cloud agents support both HTTP and stdio transports, OAuth authentication for servers that need it, and ship with a built-in Cursor Cloud MCP that exposes run diagnostics such as transcripts, run events, environment details, and setup logs for any agent run, which is useful when a cloud run fails and you need to see exactly what the agent attempted. Keep in mind that cloud-agent MCP configuration is managed separately from your local file, so a server you added to your laptop's ~/.cursor/mcp.json will not automatically appear for cloud runs. Add anything a cloud agent needs through the web dashboard as a deliberate second step. Cursor MCP CLI Command Reference Keep this table nearby while you work through the steps above. These are every agent mcp subcommand documented for the Cursor CLI as of the v2026.10.08 release. | Command | What it does | Typical use | |---|---|---| | agent mcp list | Shows every configured server and its current status | First check after editing mcp.json | | agent mcp list-tools