Key takeaways
- Claude Desktop stores MCP config in a JSON file that you edit directly
- Local plugins use
npxoruvx; remote plugins use a URL - The most common setup issue is PATH problems with
npxoruvxin the desktop app
Claude Desktop supports MCP plugins natively. You add a JSON config snippet, restart the app, and Claude gains access to external tools like GitHub, databases, file systems, and search engines.
This guide walks through the full setup on macOS and Windows. For a general overview of MCP installation across all apps, see How to install an MCP server.
Where is the Claude Desktop config file?
Claude Desktop reads plugin configuration from a single JSON file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows:
%APPDATA%\Claude\claude_desktop_config.json
You can also open it from within Claude Desktop: go to Settings and look for the option to edit the MCP configuration. If the file does not exist yet, create it.
How do you add a local plugin?
Local plugins run on your machine. You need Node.js (for JavaScript plugins) or Python with uv (for Python plugins) installed.
Step 1: Find a plugin
Browse MCP Marketplace to find the plugin you want. Each listing shows what the plugin does, what credentials it needs, and its security score.
For recommendations, see Best MCP servers for developers.
Step 2: Copy the config
Each plugin listing includes a config snippet. For example, the GitHub plugin config looks like this:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
}
}
}
}
Replace the placeholder values with your actual credentials.
Step 3: Add it to your config file
Open the config file and add the plugin to the mcpServers object. If you are adding multiple plugins, separate them with commas:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
}
}
}
Step 4: Restart Claude Desktop
Save the config file and fully restart Claude Desktop (quit and reopen, not just close the window). The app reads the config file on startup.
Step 5: Verify it works
Start a new conversation and ask Claude: "What tools do you have available?" You should see the plugin's tools listed. Try a simple command to confirm it works, like "List my recent GitHub repositories" if you installed the GitHub plugin.
How do you add a remote plugin?
Remote plugins run in the cloud. There is nothing to install on your machine. Make sure you are running a recent version of Claude Desktop.
{
"mcpServers": {
"remote-plugin": {
"url": "https://api.example.com/mcp"
}
}
}
If the remote plugin requires authentication:
{
"mcpServers": {
"remote-plugin": {
"url": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer your-api-key"
}
}
}
}
Save, restart, and verify the same way as local plugins.
What are the best plugins to start with?
If you are new to MCP, start with these:
- Filesystem for file access. Lets Claude read and write files on your machine.
- Brave Search for web search. Gives Claude current information from the web.
- GitHub for version control. If you work with GitHub repositories.
You can find all of these with security scores and install instructions on MCP Marketplace.
Common issues and fixes
"Command not found" or server does not appear
Claude Desktop cannot find npx or uvx because it does not inherit your terminal's PATH. Fix this by using the full path to the command:
- Open your terminal
- Run
which npx(macOS) orwhere npx(Windows) - Replace
"command": "npx"with the full path, e.g.,"command": "/usr/local/bin/npx"
This is the most common setup issue on macOS, especially if Node.js was installed via nvm or Homebrew.
Config file errors
A single syntax error in the JSON file will prevent all plugins from loading. Use a JSON validator to check your config if nothing appears after restart.
Credential problems
If the plugin loads but returns auth errors, verify your API token is correct, has not expired, and has the right permissions (scopes) for the operations you are trying to perform.
For a full troubleshooting guide, see How to fix common MCP server errors.
Browse plugins with one-click install on MCP Marketplace.