Skip to main content
Guide5 min read

How to install MCP servers in Claude Desktop (step-by-step)

Complete walk-through to install your first MCP server in Claude Desktop. Config paths, common mistakes, how to verify the hammer icon appears.

Installing an MCP server in Claude Desktop takes about three minutes once you know where the config file lives. This guide walks through the entire flow with screenshots-worth-of-detail — so you will not get stuck.

Before you start

  • Claude Desktop 1.0 or newer — download from claude.ai/download
  • Node.js 20+ installed (for npm-based MCP servers)
  • Your MCP server of choice — we will use Filesystem MCP as the example

Step 1: Find the config file

Claude Desktop reads MCP server definitions from a single JSON file. Its location depends on your OS:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

If the file does not exist yet, create it. The easiest way is from inside Claude: Settings → Developer → Edit Config. This opens the file in your default editor, creating it if needed.

Step 2: Add your first MCP server

Paste this minimal config:

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

Replace /Users/yourname/Documents with an absolute path to the folder you want Claude to access. Avoid pointing at your whole home directory — scope it.

Step 3: Fully quit Claude Desktop

This is where most people get stuck. Simply closing the window is not enough; Claude stays in the background and does not re-read the config.

  • macOS: Cmd+Q or right-click in Dock → Quit
  • Windows: right-click tray icon → Quit

Step 4: Relaunch and verify

Open Claude Desktop again. Look at the message input area — you should see a small hammer icon 🔨. Click it and the list of tools from your MCP server appears.

If no hammer icon: check Settings → Developer → MCP Logs. 90% of issues are (a) invalid JSON, (b) wrong Node version, (c) path you pointed at does not exist.

Step 5: Use it

Ask Claude something that requires the tool. For filesystem:

List the files in my Documents folder and summarise anything that looks interesting.

Claude will ask for permission the first time (standard), then list the folder and give you a summary.

Adding more servers

Every additional server goes into the same mcpServers object. Common additions:

{
  "mcpServers": {
    "filesystem": { /* ... */ },
    "github": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
               "ghcr.io/github/github-mcp-server"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
      }
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres",
               "postgresql://user:pass@host:5432/db"]
    }
  }
}

Common gotchas

  • JSON syntax errors break the whole config. Validate at jsonlint.com before saving.
  • Relative paths in args are resolved from Claude’s working directory, not your terminal. Always use absolute paths.
  • Environment variables must go in the env object, not inline in args.
  • Node / npm not found — Claude uses the PATH at launch time. On macOS, launching from Dock does not pick up .zshrc. Launch from Terminal once, or symlink npx into /usr/local/bin.

What to install next

Once filesystem is working, grab GitHub MCP and Memory MCP. Those three combined cover 80% of daily dev workflows. Or skim our Top 15 list.

Loadout

Build your AI agent loadout

Directory
Contact
© 2026 Loadout. Built on Angular 21 SSR.