kitepod

Home / MCP guides

Claude Desktop MCP: The Config File, Extensions and Connectors

Updated October 31, 2026

Claude Desktop MCP works three ways: edit claude_desktop_config.json to run local servers, install a desktop extension (.mcpb) in one click, or add a remote server as a connector. On a Mac the config file lives at ~/Library/Application Support/Claude/claude_desktop_config.json, and on Windows at %APPDATA%\Claude\claude_desktop_config.json.

Most GitHub READMEs still send you straight to the JSON file. That's often the slowest of the three. Check for an extension or a hosted URL before you open the config file.

The first two run servers on your own computer and only work in the desktop app. Connectors talk to servers on the internet and work across Claude's apps. (The Claude MCP servers page explains local vs remote in full.)

Which one to use

Config fileDesktop extensionConnector
Server runsOn your computerOn your computerOn the internet
SetupEdit JSON, restart the appClick InstallPaste a URL or pick from the directory, sign in
Needs Node.js installedUsually (for npx servers)No, Claude Desktop bundles itNo
Works outside Claude DesktopNoNoYes
UpdatesYouAutomatic for directory extensionsThe server's owner

If you're not a developer and the server has an extension, use the extension. If it has a URL, use a connector. The config file is for everything else, and for developers who like seeing exactly what runs.

Run a local server from claude_desktop_config.json

Here's the official route, using the Filesystem server from the MCP docs as the example.

Open the file

  1. Click the Claude menu in your computer's menu bar (not the settings inside the chat window) and choose Settings.
  2. Open the Developer tab in the left sidebar.
  3. Click Edit Config. Claude creates the file if it doesn't exist yet.

Where the file lives:

Add a server

Each server goes under mcpServers, with a name, a command and its args. This one gives Claude two folders on a Mac:

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

The folders at the end are the only places the server can reach. But inside them it runs with your user account's permissions, so it can do any file operation you can. List fewer folders rather than more.

A second server is another entry next to filesystem in the same mcpServers object. Servers that need an API key usually take it in an env block.

Restart and check

Quit Claude Desktop completely and reopen it. Closing the window isn't enough, because the app reads the file only at startup.

Then click the + ("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 asks for your approval before each file action.

Install a desktop extension (.mcpb)

Desktop extensions are local MCP servers packaged as single .mcpb files you install like a browser extension. You skip the JSON entirely, and you don't need Node.js, because Claude Desktop includes its own. They can run Node.js, Python or binary servers.

From Anthropic's directory:

  1. Go to Settings → Desktop app and click Manage next to Extensions. (On older versions it's Settings → Extensions.)
  2. Click Browse extensions and pick one. These are Anthropic-reviewed.
  3. Click Install and fill in any settings it asks for, like an API key.

For a .mcpb file someone sent you, go to the same Extensions screen, open Advanced settings, find the Extension Developer section and click Install Extension.

API keys and other sensitive fields are stored in your system's keychain: Keychain on macOS, Credential Manager on Windows, your distribution's keychain manager on Linux. Directory extensions update automatically, and ones you installed from a file need a new file. On Team and Enterprise plans, owners can turn public extensions off and push their own.

Add a remote server as a connector

If a server gives you an https:// address, it goes in as a connector, not in the config file. The official guide for that file only covers local commands.

In the desktop app it lives under Customize → Connectors, behind the + Add button. Paste the URL into the custom connector dialog and follow it through. The custom connector guide has every step and what each sign-in option means.

But connectors behave differently from the other two in two ways. They live on your Claude account rather than this computer, so the same connector is there on claude.ai and in Claude Code. And the server has to be reachable from the internet, for reasons the custom connector guide explains.

A worked example: a WordPress site from Claude Desktop

Say you want Claude Desktop to make changes on your WordPress site. Nothing about that lives on your computer, so it's a connector. Using Kitepod as the example (a free remote MCP server plus a WordPress plugin), you install the plugin, click Connect in wp-admin, then add https://kitepod.com/mcp as a custom connector and sign in.

You never touch the config file or install Node.js. Then:

Ask your assistant

Change the tagline on my site to "Small-batch bread, baked daily" and show me a preview first.

More on the WordPress side on the WordPress MCP page.

What goes wrong

Work through these in order when a config-file server won't show up:

  1. Quit Claude Desktop completely and reopen it. A closed window doesn't count.
  2. Check the JSON is valid. A trailing comma is the usual culprit.
  3. Check every path is absolute, not relative.
  4. Run node --version in a terminal. Most config-file servers need Node.js for npx.
  5. Run the server's command yourself in a terminal to see the real error.
  6. Read the logs. On macOS they're in ~/Library/Logs/Claude, on Windows in %APPDATA%\Claude\logs, and on Linux in ~/.config/Claude/logs. mcp.log covers connections, and each mcp-server-NAME.log holds that server's own output. On a Mac, tail -n 20 -f ~/Library/Logs/Claude/mcp*.log follows them live.

On Windows, an ENOENT error that mentions ${APPDATA} means you should add the expanded APPDATA path to the server's env block, as the MCP docs show. If npx still fails, install npm globally with npm install -g npm.

If an extension's tools are missing, update Claude Desktop, restart it, and check its required settings are filled in.

And if a server works here but not on claude.ai, nothing's broken. Local servers stay on this computer.

Finer points

Where is claude_desktop_config.json?

~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows and ~/.config/Claude/ on Linux. Settings → Developer → Edit Config opens it and creates it if it's missing.

Do I need Node.js for Claude Desktop MCP?

For most config-file servers, yes. For desktop extensions and connectors, no.

Can I move my Claude Desktop servers to Claude Code?

Yes. Run claude mcp add-from-claude-desktop and pick the servers to import. It works on macOS and WSL, and server names containing spaces get skipped.

Does Claude Desktop MCP work on Linux?

Yes. The MCP project's guide lists Claude Desktop for Linux, with the config at ~/.config/Claude/claude_desktop_config.json and logs in ~/.config/Claude/logs, and Anthropic's extension docs cover Linux keychain storage.

And when a server has neither an extension nor a URL, the JSON file is still there, and it still does the job.

Connect your assistant to WordPress, free

A plugin on your site and one URL in Claude, ChatGPT or Cursor. Unlimited sites and tool calls, staged changes, approvals and a 90-day undo.

Get started free