MCP.so
Sign In
Back to blog

Claude Desktop MCP: Extensions, Config File and Connectors

Oct 15, 2026MCP.so TeamMCP.so Team

Claude Desktop MCP guide: install desktop extensions (.mcpb), edit claude_desktop_config.json on macOS and Windows, add remote connectors and fix errors.

Three Ways to Add MCP Servers to Claude Desktop

Claude Desktop connects to MCP servers in three ways: desktop extensions (one-click .mcpb bundles installed from Settings, then Extensions), the claude_desktop_config.json file (local stdio servers you configure by hand), and custom connectors (remote MCP servers added by URL under Customize, then Connectors). Use an extension when one exists, the config file for anything else that runs locally, and a connector for hosted servers.

This guide is checked against Anthropic's local MCP server help article, the custom connector docs and the MCP project's Claude Desktop tutorial. Need a server first? Browse the MCP server directory.

Which Method Should You Use?

You haveUseRuns whereSetup
A server in the extension directory, or a .mcpb fileDesktop extensionYour computerClick Install, fill in settings
A local server with an npx, uvx or python commandclaude_desktop_config.jsonYour computerEdit JSON, restart
A hosted server URL (https://.../mcp)Custom connectorAnthropic's cloud connects to itPaste URL, sign in

The practical difference: extensions and the config file run the server on your machine with your user permissions, so they can touch local files and apps. Connectors call a server on the internet, and the same connector also works in Claude on the web.

Method 1: Desktop Extensions (.mcpb)

Desktop extensions are local MCP servers packaged as a single file with a manifest. The format was originally called DXT (.dxt files); the project has since been renamed to MCPB, MCP Bundles, and new bundles use the .mcpb extension.

From the directory:

  1. Open Settings, then Extensions.
  2. Click Browse extensions and pick an Anthropic-reviewed extension.
  3. Click Install and enter any required settings, such as an API key.

From a .mcpb file: go to Settings, then Extensions and drag the file onto the page; Claude shows a preview, then you click Install and confirm. Anthropic's help center also describes an Advanced settings route, then Install Extension... under the Extension Developer section.

Why extensions are the easiest path:

  • Claude Desktop ships with a built-in Node.js runtime, so you don't need Node installed. Python and binary servers are supported too.
  • Fields marked sensitive (API keys) are stored in the OS secure store: Keychain on macOS, Credential Manager on Windows.
  • Directory extensions update automatically. Privately shared .mcpb files must be reinstalled by hand to update.

On Team and Enterprise plans, Owners can allowlist or block public extensions and upload custom ones. If Extensions is missing from your settings, your organization has turned it off.

To build your own bundle, install the CLI and run two commands from your server folder:

npm install -g @anthropic-ai/mcpb
mcpb init   # creates manifest.json
mcpb pack   # builds the .mcpb file

Method 2: claude_desktop_config.json

For servers that don't have an extension, edit the config file directly.

Where is claude_desktop_config.json?

OSPath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json

You don't have to find it by hand. Open the Claude menu in your system menu bar (not the settings inside the chat window), choose Settings..., open the Developer tab and click Edit Config. That creates the file if it doesn't exist and opens it.

Add a server

Each server goes under mcpServers with a command, args and optional env. This example runs the Filesystem MCP server with access to two folders:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/Users/username/Downloads"
      ]
    }
  }
}

On Windows, use escaped backslashes in paths, such as "C:\\Users\\username\\Desktop". Directories listed in args are the only ones the server can reach, so keep the list tight.

Add more servers and API keys

Add more keys next to filesystem. Secrets go in env:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop"
      ]
    },
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    },
    "my-api": {
      "command": "npx",
      "args": ["-y", "some-mcp-package"],
      "env": {
        "API_KEY": "your-key-here"
      }
    }
  }
}

That second entry is the Memory MCP server, a local knowledge graph Claude can write to across chats. Unlike extensions, keys in this file are stored as plain text, so don't sync or share it.

Restart and verify

Fully quit Claude Desktop (not just close the window) and reopen it. The app only reads the config at startup. Then click the + button ("Add files, connectors, and more") at the bottom left of the message box, hover over Connectors and click Manage connectors. Your server should be listed with its tools. Claude will ask for approval before running each tool.

Method 3: Remote Servers as Custom Connectors

Hosted MCP servers (Notion, Linear, Sentry, your own deployment) are added by URL, not in the config file:

  1. Go to Customize, then Connectors.
  2. Click Add custom connector.
  3. Enter the server URL, for example https://mcp.notion.com/mcp for the Notion MCP server.
  4. Optionally open Advanced settings for an OAuth client ID and secret, then click Add.
  5. Click Connect and sign in through the server's OAuth page.

Notes from Anthropic's docs:

  • Custom connectors work on Free, Pro, Max, Team and Enterprise plans; the Free plan is limited to one custom connector.
  • On Team and Enterprise plans, an Owner adds the connector under Organization settings, then Connectors, and members click Connect.
  • A URL ending in /sse selects the older SSE transport; otherwise Streamable HTTP is used.
  • You can't edit authentication after adding a connector. Remove it and add it again.
  • Toggle connectors per chat from the + menu, under Connectors, and block individual tools in the connector's settings.

Because the connection comes from Anthropic's servers, the URL must be reachable from the internet; localhost won't work. If you need a hosted server that only speaks to local clients, the community mcp-remote bridge can run it as a local stdio entry in your config:

{
  "mcpServers": {
    "remote-example": {
      "command": "npx",
      "args": ["mcp-remote", "https://remote.mcp.server/mcp"]
    }
  }
}

For how the sign-in flow works, see our MCP authentication guide, and for the hosted landscape, the remote MCP servers guide.

Logs: Where Claude Desktop Writes MCP Errors

OSLog folder
macOS~/Library/Logs/Claude
Windows%APPDATA%\Claude\logs
  • mcp.log covers general MCP connection activity and failures.
  • mcp-server-SERVERNAME.log holds each server's stderr output (many stdio servers log everything there, not just errors).

Follow them live on macOS:

tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

On Windows, type "%APPDATA%\Claude\logs\mcp*.log" shows recent entries. For extensions, enable debug logging in settings and check the extension's logs in the Extensions panel.

Troubleshooting Claude Desktop MCP

SymptomFix
Server doesn't appear at allFully quit and restart. Check the JSON for trailing commas. Make sure every path is absolute, not relative.
Server appears but failsRead mcp-server-NAME.log. Run the exact command in a terminal (for example npx -y @modelcontextprotocol/server-filesystem ~/Desktop) and fix whatever error it prints.
ENOENT with ${APPDATA} in the path (Windows)Add the expanded path to the server's env, such as "APPDATA": "C:\\Users\\you\\AppData\\Roaming\\", and make sure npm is installed globally (npm install -g npm).
npx not foundClaude Desktop may not see your shell's PATH (common with nvm). Use the full path to npx in command, or switch to a desktop extension, which bundles Node.
Extension installed but no toolsRestart, check required fields, re-enter credentials. On macOS, check privacy permissions in System Settings.
Tool calls fail silentlyCheck logs, confirm the server runs without errors on its own, restart Claude.
Connector won't connectConfirm the URL is public and correct (/mcp vs /sse), then remove and re-add it to reset auth.

When logs aren't enough, connect the same server to the MCP Inspector. If it works there, the problem is in your Claude config; if not, it's the server.

Reusing Your Config in Claude Code

Already set up servers in Claude Desktop? On macOS and WSL, Claude Code can import them with claude mcp add-from-claude-desktop. Our Claude Code MCP guide covers the rest.

Next Steps

Frequently asked questions

Where is claude_desktop_config.json located?

On macOS it is at ~/Library/Application Support/Claude/claude_desktop_config.json and on Windows at %APPDATA%\Claude\claude_desktop_config.json. The quickest way to open it is Claude menu, Settings, Developer, Edit Config.

How do I add a remote MCP server to Claude Desktop?

Remote servers are added as custom connectors: go to Customize, then Connectors, click 'Add custom connector', paste the server URL and sign in. The URL must be reachable from the internet, because Anthropic's cloud makes the connection.

What is a .mcpb file in Claude Desktop?

A .mcpb file is an MCP Bundle, a desktop extension that packages a local MCP server with a manifest for one-click install. The format was previously called DXT and used the .dxt extension.

Why is my MCP server not showing up in Claude Desktop?

Fully quit and restart Claude Desktop, check the config for JSON errors, and make sure all paths are absolute. Then read mcp.log and mcp-server-NAME.log in ~/Library/Logs/Claude on macOS or %APPDATA%\Claude\logs on Windows.