Skip to main content
mcpFirst-partyLow risk Safety Privacy
Anthropic logo

Claude Desktop MCP Setup

Configure MCP servers in the Claude Desktop app by editing claude_desktop_config.json. Grounded walkthrough covering config file locations, the mcpServers JSON structure, the filesystem server, and how to verify and troubleshoot the connection.

by JSONbored·added 2025-10-27·
HarnessClaude CodeClaude Desktop

Citation facts

Source-backed facts for citing this resource, derived directly from the registry — also available as plain text for AI assistants.

Source URLs
https://modelcontextprotocol.io/docs/develop/connect-local-servers, https://github.com/JSONbored/awesome-claude/blob/main/content/mcp/desktop-mcp-setup.mdx
Brand
Anthropic
Brand domain
anthropic.com
Brand asset source
brandfetch
Package URL
/downloads/mcp/desktop-mcp-setup.mcpb
Package SHA256
57690091c83e5827fb0e82a2a6193d2da2171c6637fae598edb894029828d1b5
Safety notes
Local MCP servers run as processes on your machine with your user account's privileges, so they can perform any file or system operation you can. Only add servers you trust, and restrict filesystem server paths to the minimum directories the workflow needs., Each Claude Desktop tool call (file write, delete, move) requires your explicit approval before it executes; review every request before approving.
Privacy notes
Configured servers receive the prompts, file contents, and directory data needed to run their tools, and may store credentials (API keys, tokens) passed through the env block., The claude_desktop_config.json file holds server commands, file paths, and environment-variable names; keep it private and do not commit it to public repositories.
Author
JSONbored
Claim status
unclaimed
Last verified
2025-10-27

Decision playbook

Ready to evaluate for your workflow

Signals are comparatively strong, but you should still validate source, privacy posture, and package provenance for your environment.

Compare context
Selected

0

Current score

96

Baseline

Delta

No baseline selected

No major trust-signal divergence detected in the current selection.

Source and provenance checks

Complete

Confirm ownership and provenance before trusting install instructions.

  • Source link availableRequired

    Open the canonical repository and verify ownership.

    Done
  • Source provenance statusRequired

    Marked as first-party.

    Done
  • Metadata reviewed

    Registry metadata indicates a reviewed listing.

    Done

Safety and privacy checks

Complete

Validate risk disclosures before installation or API wiring.

  • Safety notes presentRequired

    Review the listed safety guidance before running commands.

    Done
  • Privacy notes presentRequired

    Review data handling notes before connecting accounts or secrets.

    Done
  • Trust level risk gateRequired

    Trust level does not block evaluation.

    Done

Package and install checks

Complete

Check package metadata and artifact integrity signals.

  • Install payload available

    Install or copy payload is available for review.

    Done
  • Package verification flag

    Package marked verified.

    Done
  • Checksum metadata

    SHA-256 hash is present.

    Done

Compare-driven decision checks

Needs review

Use compare context to validate trade-offs before adoption.

  • Compare tray has multiple entries

    Add at least one more entry to compare trust differences.

    Pending
  • Baseline comparison available

    No baseline peer selected yet.

    Pending
  • Diverging trust signals identified

    No major trust-signal divergence found.

    Pending

Setup at a glance

Package install

Copy-ready — paste the snippet to get started.

10 minutes

Install command

Provided

Config snippet

Provided

Copy snippet

Provided

Prerequisites

10 to clear

Platforms

2 listed

Difficulty

20/100

Adoption plan

Balanced adoption plan

Current risk score 0/100. Use staged verification before broader rollout.

Risk 0

Pre-adoption checks

Validate source and review signals before any execution.

  • Confirm source provenanceRequired

    Source URL/provenance metadata is present.

    Done
  • Confirm metadata review state

    Listing has review metadata.

    Done
  • Verify install payload

    Install/config payload exists and can be inspected.

    Done

Security checks

Confirm safety, privacy, and package integrity signals.

  • Review safety notesRequired

    Safety notes are present.

    Done
  • Review privacy notesRequired

    Privacy notes are present.

    Done
  • Verify package integrity metadata

    Package verification/checksum metadata is available.

    Done

Rollout

Adopt in controlled steps based on the selected plan.

  • Run in isolated sandbox firstRequired

    Use a constrained sandbox and observe behavior across multiple tasks.

    Pending
  • Roll out graduallyRequired

    Roll out to a small cohort before wider usage.

    Pending
  • Set monitoring and fallback

    Define rollback path and monitor errors after adoption.

    Pending

Evidence readiness

Evidence readiness matrix · balanced

Required evidence gates are covered (6/6 signals complete).

Risk 0

Source provenance

Present

Source repository/provenance is listed.

Required in this preset

Metadata review

Present

Review metadata is present.

Required in this preset

Safety notes

Present

Safety notes are present.

Required in this preset

Privacy notes

Present

Privacy notes are present.

Optional in this preset

Package integrity

Present

Package integrity metadata is present.

Optional in this preset

Install payload

Present

Install payload is available.

Required in this preset

Required evidence gates are covered for this preset.

Decision timeline

Decision timeline · balanced

6/6 steps complete with no blocking gaps for this preset.

Risk 0

triage

Confirm source provenanceRequired

Source/provenance metadata is available.

Done

triage

Check metadata review statusRequired

Review metadata is available.

Done

verify

Review safety notesRequired

Safety notes are available.

Done

verify

Review privacy notes

Privacy notes are available.

Done

verify

Validate package integrity metadata

Package integrity metadata is available.

Done

rollout

Verify install payload and commandsRequired

Install payload is available.

Done

No required blockers for this timeline preset.

Prerequisite readiness

Prerequisite readiness

10 prerequisites to line up before setup. Have accounts and credentials ready first.

0/10 ready
Account & credentials1Install & runtime3Configuration1Permissions & scopes1Network & hosting1General310 minutes

Safety & privacy surface

Safety & privacy surface

2 safety and 2 privacy notes across 3 risk areas. Review closely: credentials & tokens, network access.

3 areas
  • SafetyLocal filesLocal MCP servers run as processes on your machine with your user account's privileges, so they can perform any file or system operation you can. Only add servers you trust, and restrict filesystem server paths to the minimum directories the workflow needs.
  • SafetyNetwork accessEach Claude Desktop tool call (file write, delete, move) requires your explicit approval before it executes; review every request before approving.
  • PrivacyCredentials & tokensConfigured servers receive the prompts, file contents, and directory data needed to run their tools, and may store credentials (API keys, tokens) passed through the env block.
  • PrivacyLocal filesThe claude_desktop_config.json file holds server commands, file paths, and environment-variable names; keep it private and do not commit it to public repositories.

Safety notes

  • Local MCP servers run as processes on your machine with your user account's privileges, so they can perform any file or system operation you can. Only add servers you trust, and restrict filesystem server paths to the minimum directories the workflow needs.
  • Each Claude Desktop tool call (file write, delete, move) requires your explicit approval before it executes; review every request before approving.

Privacy notes

  • Configured servers receive the prompts, file contents, and directory data needed to run their tools, and may store credentials (API keys, tokens) passed through the env block.
  • The claude_desktop_config.json file holds server commands, file paths, and environment-variable names; keep it private and do not commit it to public repositories.

Prerequisites

  • Claude Desktop installed and running (macOS, Windows, or Linux)
  • Basic JSON knowledge - understand JSON syntax, objects, arrays, and key-value pairs
  • Text editor with JSON syntax highlighting (VS Code, Sublime Text, or similar)
  • Node.js 18+ installed for running npx commands and MCP server packages
  • npm or compatible package manager for installing MCP server packages
  • Command-line access (Terminal on macOS/Linux, PowerShell or Command Prompt on Windows)
  • File system permissions to create and edit configuration files in application support directories
  • Network access for downloading MCP server packages via npx (if using remote servers)
  • API keys or tokens for services you want to integrate (GitHub, databases, etc.)
  • Understanding of your operating system file paths and environment variable syntax

Schema details

Install type
package
Reading time
6 min
Difficulty score
20
Troubleshooting
Yes
Breaking changes
No
Package metadata
Package verified
Yes
SHA-256
57690091c83e5827fb0e82a2a6193d2da2171c6637fae598edb894029828d1b5
Skill and platform metadata
Retrieval sources
https://modelcontextprotocol.io/quickstart/userhttps://code.claude.com/docs/en/mcp
Collection metadata
Estimated setup
10 minutes
Difficulty
beginner
Full copyable content
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/Users/username/Downloads"
      ]
    }
  }
}

About this resource

Overview

Claude Desktop can connect to local MCP (Model Context Protocol) servers, which are programs that run on your computer and expose tools Claude can call with your approval — reading files, querying a database, searching the web, and more. You enable these servers by editing a single JSON file, claude_desktop_config.json, that tells Claude Desktop which servers to launch and how to run them.

This guide walks through the official setup flow using the Filesystem Server as the worked example: where the config file lives, the exact mcpServers JSON structure, how to start and verify a server, and how to read the logs when something fails. The same pattern applies to any stdio MCP server.

A few facts worth knowing up front:

  • Claude Desktop is available for macOS and Windows.
  • Many servers (including the Filesystem Server) need Node.js installed, because they are launched with npx.
  • Every tool action a server takes requires your explicit approval before it runs, so you stay in control of file and system access.

Prerequisites

  • Claude Desktop installed (macOS or Windows). To confirm you are on the latest build, open the Claude menu and choose "Check for Updates...".
  • Node.js installed, required for the Filesystem Server and most stdio servers. Verify with:
node --version

If it is missing, install the LTS release from nodejs.org. If npx fails on Windows, confirm npm is installed globally (%APPDATA%\npm should exist).

Config file location

The configuration is the same file regardless of how many servers you add. Its path differs by operating system:

Operating system claude_desktop_config.json location
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json

You do not need to find this file by hand. The fastest way to open it is from inside the app, described in the next section, which creates the file if it does not yet exist.

Step-by-step setup

  1. Open Claude Desktop settings. Click the Claude menu in your system menu bar (not the gear inside the Claude window) and choose Settings.... This opens the desktop configuration window, which is separate from your Claude account settings.
  2. Open the config file. In the Settings window, select the Developer tab in the left sidebar, then click Edit Config. This creates claude_desktop_config.json if it does not exist and opens it for editing.
  3. Add a server. Replace the file contents with the mcpServers structure below (macOS example), substituting your real username and the directories you want to expose:
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/Users/username/Downloads"
      ]
    }
  }
}

On Windows, use escaped backslashes in the paths:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "C:\\Users\\username\\Desktop",
        "C:\\Users\\username\\Downloads"
      ]
    }
  }
}
  1. Restart Claude Desktop. Completely quit the app and reopen it. Claude Desktop reads the config and starts the configured servers on launch.
  2. Verify the connection. After restart, an MCP server indicator appears in the bottom-right corner of the conversation input box. Click it to see the tools the server exposes. If the indicator does not appear, see Troubleshooting below.

Understanding the configuration

Each entry under mcpServers is keyed by a friendly name and describes how to launch a local (stdio) server:

  • "filesystem" — the display name for the server inside Claude Desktop.
  • "command": "npx" — the program used to launch the server. npx runs the Node package without a separate global install.
  • "-y" — auto-confirms installation of the server package.
  • "@modelcontextprotocol/server-filesystem" — the package name of the server.
  • The remaining array entries — arguments passed to the server. For the Filesystem Server, these are the directories it is allowed to access.

To pass secrets such as API keys, add an env object to the server entry. The Windows ${APPDATA} workaround from the official troubleshooting guide is a real example of the env shape:

{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": {
        "APPDATA": "C:\\Users\\user\\AppData\\Roaming\\",
        "BRAVE_API_KEY": "your-key-here"
      }
    }
  }
}

Use a directory you are comfortable letting Claude read and modify: the server runs with your user account's permissions, so it can do anything you can do manually with those files.

Using the server

Once the Filesystem Server is connected, you can ask Claude things like "What files are in my Downloads folder?" or "Save this text to a file on my Desktop." Before any file operation runs, Claude requests your approval, so review each request and deny anything you are not comfortable with.

Transports: local vs. remote

The config above uses the stdio transport — a local process Claude talks to over standard input/output. Claude Code (the CLI, a separate product) also supports remote transports, which is useful context when choosing how a server connects:

Transport Where it runs Notes
stdio Local process on your machine Ideal for tools needing direct system access or custom scripts; used by claude_desktop_config.json servers. Local processes are not auto-reconnected.
HTTP (streamable-http) Remote service Recommended for cloud servers; supports OAuth. In Claude Code: claude mcp add --transport http <name> <url>.
SSE Remote service Server-Sent Events; deprecated in favor of HTTP where available.

For Claude Desktop, stdio via claude_desktop_config.json is the documented local-setup path covered by this guide.

Troubleshooting

Server / tools icon not showing up. Restart Claude Desktop completely. Check claude_desktop_config.json for valid JSON. Make sure every path in the config is absolute, not relative. Then read the logs (below). You can also run the server manually to surface errors:

npx -y @modelcontextprotocol/server-filesystem /Users/username/Desktop /Users/username/Downloads

Read the logs. MCP logging is written to:

  • macOS: ~/Library/Logs/Claude
  • Windows: %APPDATA%\Claude\logs

mcp.log holds general connection logging; mcp-server-SERVERNAME.log holds a specific server's stderr. To follow recent logs on macOS/Linux:

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

Tool calls failing silently. Check Claude's logs for errors, verify the server runs without errors on its own, and restart Claude Desktop.

Windows ${APPDATA} ENOENT error. If a server's log shows an error referencing ${APPDATA} in a path, add the expanded %APPDATA% value to that server's env block (see the brave-search example above), then relaunch Claude Desktop. Confirm npm is installed globally if npx keeps failing.

Next steps

Source citations

Add this badge to your README

Show that Claude Desktop MCP Setup is listed on HeyClaude. Paste this Markdown into your README — it renders the badge and links back to this page.

Listed on HeyClaude
[![Listed on HeyClaude](https://heyclau.de/badge/mcp/desktop-mcp-setup.svg)](https://heyclau.de/entry/mcp/desktop-mcp-setup)

How it compares

Claude Desktop MCP Setup side by side with 3 alternatives on trust, install, platform support, and disclosed safety notes — all from reviewed registry metadata.

2 trust signals differ across this comparison (Package trust, Submitter).

Next steps differ across entries — use the actions in the table below to copy install commands and source links per resource.

Field

Configure MCP servers in the Claude Desktop app by editing claude_desktop_config.json. Grounded walkthrough covering config file locations, the mcpServers JSON structure, the filesystem server, and how to verify and troubleshoot the connection.

Open dossier

Master MCP server development from scratch. Create custom Claude Desktop integrations with TypeScript/Python in 60 minutes using production-ready patterns.

Open dossier

A practical pre-installation review workflow for Model Context Protocol servers. Inventory tools, resources, prompts, credentials, network reach, storage, and runtime permissions before connecting a server to Claude or another MCP client.

Open dossier

Connect existing MCP servers to Claude Code with claude mcp add: stdio, HTTP, and SSE transports, local/project/user scopes, .mcp.json, and /mcp OAuth.

Open dossier
Next stepsDiffers
Trust
Review statusReviewedMaintainer reviewedReviewedMaintainer reviewedReviewedMaintainer reviewedReviewedMaintainer reviewed
Package trustDiffersPackage verifiedPackage not verifiedPackage not verifiedPackage not verified
Source provenanceSource-backedSource-backedSource-backedSource-backed
SubmitterDiffersMkDev11
Install riskLow riskReview firstReview firstReview first
Notes Safety Privacy Safety Privacy Safety Privacy Safety Privacy
BrandAnthropic logoAnthropic
Categorymcpguidesguidesguides
Sourcefirst-partysource-backedsource-backedsource-backed
AuthorJSONboredJSONboredMkDev11JSONbored
Added2025-10-272025-10-272026-06-042025-10-27
Platforms
Claude CodeClaude Desktop
Claude Code
Claude Code
Claude Code
Source repo
Safety notesLocal MCP servers run as processes on your machine with your user account's privileges, so they can perform any file or system operation you can. Only add servers you trust, and restrict filesystem server paths to the minimum directories the workflow needs. Each Claude Desktop tool call (file write, delete, move) requires your explicit approval before it executes; review every request before approving.Building and connecting an MCP server runs a local process (or connects to a remote one) that executes tools with your user privileges; only connect servers you trust and review the command and URL first.An MCP server gives Claude Code model-callable tools that can run on your behalf; a stdio server runs as a local process with your environment access, so treat installing one as running third-party code. Anthropic reviews connectors against its listing criteria before adding them to the Anthropic Directory but does not security-audit or manage any MCP server, so trust verification is your responsibility (per code.claude.com/docs/en/security). Servers that fetch external content can expose you to prompt injection; Claude Code requires trust verification for new MCP servers and prompts for approval before using project-scoped servers from .mcp.json. Prefer least-privilege credentials, scoped directories, and explicit approval for side-effect tools.Local stdio servers run their command with your user privileges, and remote servers expose model-controlled tools, so connect only servers you trust and review the command, URL, and headers first.
Privacy notesConfigured servers receive the prompts, file contents, and directory data needed to run their tools, and may store credentials (API keys, tokens) passed through the env block. The claude_desktop_config.json file holds server commands, file paths, and environment-variable names; keep it private and do not commit it to public repositories.Connecting servers can pass secrets via --env and OAuth tokens stored in Claude Code's local config; the server process can access whatever data and credentials you grant it.MCP servers can expose local files, resources, prompt templates, tool arguments, tool outputs, logs, and retrieved data to the connected client and model workflow. For HTTP/SSE transports, OAuth access tokens are stored in the system keychain (macOS) or a credentials file; use "Clear authentication" in the /mcp menu to revoke access. For stdio servers, credentials come from the environment you pass in. Restrict OAuth scopes with oauth.scopes in .mcp.json so a remote server only receives the access it needs, and revoke credentials and delete persisted state when uninstalling a server that had access to private repositories, databases, or files.Server URLs, command paths, header names, and tool results can expose internal hosts and private data; keep API keys and tokens out of shared `.mcp.json` and use environment-variable expansion or `/mcp` OAuth instead.
Prerequisites
  • Claude Desktop installed and running (macOS, Windows, or Linux)
  • Basic JSON knowledge - understand JSON syntax, objects, arrays, and key-value pairs
  • Text editor with JSON syntax highlighting (VS Code, Sublime Text, or similar)
  • Node.js 18+ installed for running npx commands and MCP server packages
— none listed
  • The MCP server's documentation, package/repository source, config example, and declared tools/resources/prompts.
  • A list of credentials, files, network services, databases, browsers, or cloud APIs the server will access.
  • Permission to install the server in an isolated test profile before connecting it to production or personal data.
  • A rollback plan for removing the server and revoking tokens.
  • Claude Code installed and signed in, with the `claude` CLI on your PATH.
  • The connection details for the server you are connecting: its transport (stdio command, HTTP/SSE URL), any required header or environment variable, and its trust/source information.
Install
node --version
Config
Edit via Settings > Developer > Edit Config, then restart Claude Desktop:
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop"
      ]
    }
  }
}
Citations
ClaimUnclaimedUnclaimedUnclaimedUnclaimed
Open 4 picks in the interactive comparison tool

Related guides

Signals

Loading live community signals…

More like this, weekly

A short, calm digest of reviewed Claude resources. Unsubscribe any time.