Connecting tools / How-to
How to add an MCP server to Claude Desktop
The one-click way, then the way that works when the thing you want isn't in the list.
Every guide that says “connect Claude to your tools” shows you a directory. You open it, scan the list, and the thing you actually need isn’t there.
This covers both halves. The list, which takes one click. And the part after the list, which is where people give up.
An MCP server is a small program that gives an AI app a door to one specific thing. One server for your files. A different one for your calendar. It isn’t an app or an account. It’s a door, and you decide what’s on the other side of it.
The short path: check the list first
Claude Desktop has a built-in directory of reviewed servers packaged for one-click install.
Open Settings, then Extensions, then Browse extensions. Find what you want and install it. That’s the whole process. No file editing, no restart, no terminal.
Check here before doing anything else. If what you need is in this list, the rest of this guide is not for you today.
Two things worth knowing about the list. It’s reviewed, which is the point of using it. And it’s short, which is why the rest of this page exists.
When it isn’t in the list
Now you edit a config file. A config file is a plain text file that tells an app how to behave when it starts. Nothing runs it, nothing compiles it. It’s a note the app reads on the way up.
Here is the whole process, using the official filesystem server as the worked example. It gives Claude access to folders you name, and it’s the one most people want first.
1. Check you have Node
Most servers need Node.js, the thing that runs them. Open Terminal on a Mac, or Command Prompt on Windows, and type:
node --version
A version number means you’re set. An error means you don’t have it, and you can install it from nodejs.org. Take the LTS version.
This is the only terminal command in this guide.
2. Open the config file
Click the Claude menu in your computer’s menu bar. Not the settings inside the Claude window. The one in the bar at the very top of the screen, next to the Apple menu on a Mac.
Choose Settings, then the Developer tab, then Edit Config.
That opens the file, and creates it if it wasn’t there. It lives here:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
3. Paste the configuration
Replace what’s in the file with this, then change username to your actual computer username and set the folders to ones you want reachable.
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop",
"/Users/username/Documents/notes"
]
}
}
}
Every piece of that has a job:
| Part | What it means |
|---|---|
mcpServers | The list of servers. Everything else nests inside it |
"filesystem" | Your name for this one. It’s the label you’ll see in Claude |
command | What to run. npx is a Node tool that fetches and runs the package |
-y | Answer yes to the install prompt, so it doesn’t hang waiting |
@modelcontextprotocol/... | Which server to fetch |
| The paths after it | The folders this server may touch. Nothing outside them |
Those last lines are the important ones. That list is the entire boundary. A folder you don’t name is a folder it can’t open.
Use full paths, starting from the top of the drive. A shortened path like ~/Desktop or ./notes will fail quietly.
4. Restart properly
Quit Claude Desktop completely and reopen it. Closing the window is not enough, and this is the single most common reason a correct config appears to do nothing.
5. Confirm it worked
In a conversation, click the Add files, connectors, and more control at the bottom left of the message box. Hover Connectors, click Manage connectors, and look for the name you chose.
Working looks like: your server listed, with its tools underneath it.
Broken looks like: the name missing entirely, or present but showing no tools. Both send you to the section below.
Then ask for something you can verify instantly. “List the files on my Desktop” is a good first request, because you already know the answer.
What you handed over
The server runs as you. Anything you could open by double-clicking, it can open. That’s not a flaw, it’s how it reaches your files at all, but it means the folder list in that config is a real decision and not a formality.
Claude asks before each action, and you can refuse any of them. Read those prompts for the first few days rather than clicking through. That’s when you find out what it actually does with a vague instruction.
Two practical rules. Point it at a working folder rather than your whole home directory. And if a folder holds anything covered by a policy at work, leave it out until you’ve asked.
When it breaks
Nothing appeared after restarting. Quit the app fully and reopen. On a Mac, that’s Cmd-Q, not the red button.
Still nothing. The file is almost certainly invalid. JSON is unforgiving about one thing in particular: a comma after the last item in a list breaks the whole file, silently. Paste the file into any JSON validator and it will point at the line.
It appears but has no tools. The server started and then failed. Run it by hand to see the error it was hiding:
npx -y @modelcontextprotocol/server-filesystem /Users/username/Desktop
Whatever it prints is the real problem, and it’s usually a path that doesn’t exist.
A path with a space in it. Wrap it in quotes as normal, but check for a stray trailing space too. Copying a path out of Finder or Explorer often brings one along.
npx not found. Node isn’t installed, or isn’t installed for this account. Reinstall from nodejs.org and restart the computer, not just the app.
You added a remote server and it won’t connect. Config files are for servers that run on your own machine. A hosted one has to go in through Settings, then Connectors, instead. This one catches people out because the config file accepts the entry without complaint and then ignores it.
You want to see what actually happened. Claude writes logs. On macOS they’re in ~/Library/Logs/Claude, on Windows in %APPDATA%\Claude\logs. The file mcp.log covers connections, and each server gets its own file named after it.
The menus don’t match this page. These move. The shape of the task doesn’t: find the config, add an entry under mcpServers, restart fully, check the connectors panel. If a menu name has changed, that sequence still tells you what you’re looking for.
What you can’t do this way
You can’t add something that has no server. MCP is a common shape, not universal coverage, and plenty of tools have nobody maintaining one.
You also can’t reshape what a server does. If the filesystem server reads files and you needed it to read files and pull out the three fields you care about, no amount of configuration gets you there. That’s the wall the next guide is about.
Next
- Build your own MCP server For when nothing in the directory does the job
- Browse the other guides Same format, different task
- Subscribe by RSS New guides as they publish
Stuck on this page?
Ask about anything on this page and you'll get an answer drawn from this guide only. No account needed. It can still be wrong. Check anything that matters.