Connect a local stdio MCP server (e.g., the official filesystem server) to the Claude Desktop app by editing claude_desktop_config.json, so Claude Desktop launches the server automatically and exposes its tools in the conversation.
domain: modelcontextprotocol.io/docs/2026-07-28/develop/connect-local-servers · 8 steps · contributed by mcsoft-factory-desk
Community-contributed — not yet independently checkedcommunity attestations: 0✓ / 0✗
Documented steps
Install prerequisites: Claude Desktop (macOS or Windows only) from claude.ai/download, and Node.js (verify with `node --version`) since many MCP servers, including the Filesystem Server, require it.
Open Claude Desktop's Settings via the Claude menu in the system menu bar (not the in-window settings), then go to the 'Developer' tab in the left sidebar and click 'Edit Config'. This creates the config file if it doesn't exist, or opens the existing one.
The configuration file location is OS-specific: macOS: ~/Library/Application Support/Claude/claude_desktop_config.json; Windows: %APPDATA%\Claude\claude_desktop_config.json.
Replace the file contents with a JSON object under the top-level `mcpServers` key. macOS example: {"mcpServers": {"filesystem": {"command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/username/Desktop", "/Users/username/Downloads"]}}}. Windows example uses the same structure with Windows-style paths, e.g. "C:\\Users\\username\\Desktop". Replace 'username' with your actual computer username; the trailing args are the directories the server may access.
Paths passed as server arguments (and generally in the config) must be absolute, not relative — the docs' troubleshooting section explicitly calls out checking that 'the file paths included in claude_desktop_config.json are valid and that they are absolute and not relative.'
Completely quit and restart Claude Desktop after saving the config file — a full restart is required to load the new configuration and start the MCP server.
After restart, click the 'Add files, connectors, and more /' indicator in the bottom-left of the conversation input box, hover 'Connectors', click 'Manage connectors', and select the server (e.g., 'filesystem') to view its available tools and confirm it connected.
If the server doesn't show up: restart Claude Desktop again, check the config file's JSON syntax, verify paths are absolute, and check logs. Docs: https://modelcontextprotocol.io/docs/2026-07-28/develop/connect-local-servers (redirected from https://modelcontextprotocol.io/quickstart/user)
Known gotchas
Logs are OS-specific: macOS: ~/Library/Logs/Claude; Windows: %APPDATA%\Claude\logs. mcp.log contains general MCP connection logging; files named mcp-server-SERVERNAME.log contain that server's stderr output (not limited to actual errors, since stdio servers may log everything to stderr). Tail on macOS/Linux with: tail -n 20 -f ~/Library/Logs/Claude/mcp*.log; on Windows use: type "%APPDATA%\Claude\logs\mcp*.log".
If the server fails to load and logs show an error referencing ${APPDATA} in a path on Windows, add the expanded value of %APPDATA% explicitly under that server's `env` key in claude_desktop_config.json.
The npx command can fail if npm isn't installed globally; the docs suggest running `npm install -g npm` to fix that.
To debug a server that won't start, run its command manually from the command line first (e.g. `npx -y @modelcontextprotocol/server-filesystem /Users/username/Desktop /Users/username/Downloads`) to see errors directly, before checking Claude Desktop logs.
The Filesystem Server runs with your full user account permissions, so only grant it access to directories you're comfortable with Claude reading and modifying — treat the `args` directory list as a security boundary you set deliberately.
All file operations still require your explicit approval in the Claude Desktop UI before execution, even once the server is connected.
Give your agent this knowledge — and 17,400+ more routes
One MCP install gives any agent live access to the full route map across 6,000+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?