How to install an MCP server in Claude Desktop (2026, step by step)
Claude Desktop ships with a handful of built-in connectors, and everything else about your work lives somewhere Claude can't see: your files, your task manager, your notes, your calendar. The Model Context Protocol (MCP) is how you fix that. Installing a server used to mean editing a JSON file and hoping; in 2026 there are three ways to do it, and two of them take under a minute.
Quick answer: As of October 2026 there are three install paths. One-click: Settings → Extensions, install a .mcpb bundle. Remote: Customize → Connectors → Add → Custom → Web, paste an https URL, sign in. Manual: add the server to claude_desktop_config.json and fully restart Claude Desktop. Custom connectors work on every plan; Free accounts get one.
Which install method should you use?
Desktop Extensions (.mcpb) for local servers
The one-click path. An extension bundles a local MCP server with its manifest into a single .mcpb file that installs like a browser extension. If the tool you want is in the extension directory, use this and skip the JSON entirely. Anthropic renamed the format from .dxt to .mcpb (MCP Bundle) in late summer 2025 (the repository was renamed on August 21 and the @anthropic-ai/mcpb package shipped on September 11); old .dxt files still work.
Custom connectors for remote servers
For hosted services that expose an MCP endpoint over HTTPS. No local process, no Node.js, nothing to keep running. You paste a URL, sign in through the service's own login page, and Claude connects from Anthropic's infrastructure. This also means the same connector works in Claude Desktop, on claude.ai in the browser, and in the mobile apps.
The JSON config for everything else
The original method, still fully supported: declare local stdio servers in claude_desktop_config.json. You need this when the server isn't packaged as an extension, when you want to pass custom arguments, or when you're developing your own.
How do you install a one-click extension?
- Open Claude Desktop → Settings → Extensions.
- Click Browse extensions and install from the directory, or double-click a downloaded
.mcpbfile and click Install. - For unlisted bundles: Advanced settings → Extension Developer → Install Extension… and pick the file.
That's the whole procedure. Configuration (API keys, folder paths) is prompted per extension.
How do you add a remote MCP server?
- Open Customize → Connectors (Claude Desktop grouped skills, plugins and connectors under Customize in February 2026; older builds have it under Settings).
- Click Add, hover over Custom, and select Web.
- Give the connector a name, paste the server's full
https://URL, and click Continue. - Review the authentication settings Claude detected. For an OAuth server like Calmara, keep Sign in now; a server that uses a fixed API key or bearer token instead takes it under Request headers.
- Click Add, complete the sign-in the service presents, review the requested permissions, and approve.
A concrete example: connecting Calmara, which exposes tasks, notes, calendar, and an auditable AI memory over MCP. The connector URL is https://api.calmara.app/mcp. Claude opens Calmara's consent page, the consent page lists exactly which scopes the client is asking for (memory, knowledge, tasks, events, projects, analytics, with read and write listed separately), and you allow or deny the set, and from then on Claude can read and write your actual work data in any chat. The same one-URL flow applies to Notion's hosted MCP, Reclaim's, or any other service that publishes an endpoint.
Two details worth knowing:
- Plan availability. Custom connectors are available on Free, Pro, Max, Team, and Enterprise, per Anthropic's connector documentation. Free accounts are limited to one custom connector. On Team and Enterprise, an Owner or Primary Owner has to enable connectors for the organization before members can use them. The old restriction that limited custom connectors to paid tiers is gone.
- Transport. Current remote servers speak Streamable HTTP; Claude still accepts the legacy HTTP+SSE transport but Anthropic marks it as being deprecated. A revised, stateless version of the spec was finalized on July 28, 2026, so expect server URLs to keep converging on plain
/mcpendpoints. If you run a server rather than just connect to one, what that revision changes is the operator version of this page.
How do you configure a local server manually?
The manual path uses the config file. From the menu bar (not the in-window settings): Claude → Settings… → Developer → Edit Config. That opens or creates:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
The canonical first example is the official filesystem server, which gives Claude read/write access to folders you name:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/username/Desktop", "/Users/username/Downloads"]
}
}
}
Three rules that prevent most failed installs:
- Paths must be absolute. Relative paths are the most common config mistake. On Windows, escape backslashes:
C:\\Users\\username\\Desktop. - You need Node.js for npx-based servers. The official quickstart recommends the LTS version; check with
node --version. - Fully quit and restart Claude Desktop after saving. The config is only read at startup.
After the restart, click the "Add files, connectors and more" control in the bottom-left of the input box, hover Connectors, and your server should be listed under Manage connectors.
How do you troubleshoot a server that doesn't show up?
Work through these in order; they resolve nearly everything:
- Restart completely. Quit from the menu bar, don't just close the window.
- Validate the JSON. A trailing comma or unescaped backslash silently kills the whole
mcpServersblock. - Check the logs. macOS:
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log. Windows:type "%APPDATA%\Claude\logs\mcp*.log". The filemcp.logcovers connections;mcp-server-NAME.logcaptures each server's own errors. - Run the command yourself. Paste the exact
npx -y @modelcontextprotocol/server-filesystem /pathinto a terminal. If it fails there, the problem is your environment, not Claude. - Windows and env vars: if the log shows ENOENT around
${APPDATA}, add an expandedAPPDATAvalue to the server'senvblock.
For extensions, connection status and logs live under Settings → Developer.
If a server that used to work now shows as disconnected, or you are looking at a specific error string like spawn npx ENOENT or the SSE content-type error, the dedicated troubleshooting guide maps each disconnection symptom to its cause and fix.
Is it safe to connect MCP servers?
Treat an MCP server like software you install, because that's what it is. Anthropic's own documentation warns that custom connectors point Claude at services it has not verified, and advises connecting only to servers from organizations you trust and reviewing the permissions requested during authentication. For local servers, the filesystem example runs with your full user permissions: it can do anything to those folders that you can.
The risks are concrete rather than theoretical: tool poisoning, lookalike servers, and over-scoped tokens are all documented in the wild. Before you connect anything to real data, it's worth ten minutes with the MCP security risks AI assistants don't mention, which covers what to check and why registry provenance matters. Prefer servers that use OAuth with explicit scope approval over ones that ask you to paste a long-lived API key into a config file, and revoke access you stop using.
FAQ
Can free Claude accounts use MCP?
Yes. As of July 2026, custom connectors work on every plan including Free, with Free limited to one custom connector. Desktop Extensions are available to all Claude Desktop users.
Do MCP connectors work on claude.ai in the browser, or on mobile?
Remote custom connectors do: they run from Anthropic's infrastructure, so they follow your account across web, desktop, and the mobile apps. Local servers (extensions and JSON-configured) are Claude Desktop only.
What is a .mcpb file?
An MCP Bundle: a zip archive containing a local MCP server plus a manifest, installable with one click. It's the format formerly called .dxt (Desktop Extension); the rename happened in late summer 2025 (repository August 21, npm package September 11) and old .dxt files continue to work.
Do I need Node.js?
Only for the manual JSON path with npx-based servers. Extensions bundle what they need, and remote connectors run nothing on your machine at all.
Why doesn't my server appear after I edited the config?
Almost always one of three things: Claude Desktop wasn't fully restarted, the JSON has a syntax error, or a path is relative instead of absolute. The logs at ~/Library/Logs/Claude/mcp*.log (macOS) or %APPDATA%\Claude\logs (Windows) name the culprit.
What's the difference between Streamable HTTP and SSE for remote servers?
Streamable HTTP is the current transport; HTTP+SSE is the 2024-era legacy one that Anthropic marks as deprecated. As a user you rarely choose: you paste the URL the service gives you. Server operators are migrating to the stateless spec revision finalized on July 28, 2026.
How do I disconnect a server?
Extensions and connectors are removed in the same Settings sections where you added them. For OAuth-based remote connectors, remove the connector on the Claude side; Calmara does not yet offer per-connector OAuth revocation in Settings (personal access tokens for stdio clients are revocable one at a time under Settings → Connections → Personal Access Tokens).
Can one MCP server give Claude memory across chats?
That's one of the main uses. A memory-backed connector lets Claude store and recall facts about your work between conversations, and the good implementations let you see and edit that record. What separates a memory you can trust from one you can't is covered in what ChatGPT's self-rewriting memory costs you.
---
Pick the smallest useful first install: the filesystem server if you live in local files, or one remote connector for the tool you check most. Connect it, ask Claude something it couldn't answer yesterday, and you'll know within five minutes whether MCP earns a place in your setup. And if you run more than one assistant, the natural next step is pointing them all at the same memory.
Written by Dan Hagen