FIX Jul 9, 2026 13 min read

Claude MCP Server Not Showing: Fix Desktop and Claude Code Setup Problems

TL;DR If a Claude MCP server is not showing, first check whether you configured it for the Claude app you are actually using. Most missing-server cases come from config scope,…

by Bugi 13 min
TL;DR

  • If a Claude MCP server is not showing, first check whether you configured it for the Claude app you are actually using.
  • Most missing-server cases come from config scope, invalid JSON, missing environment variables, or not restarting Claude after editing config.
  • Do not troubleshoot Claude Desktop and Claude Code as the same runtime; their MCP setup paths and behavior differ.
Quick fixes
  • Restart the relevant Claude client after changing MCP configuration.
  • Confirm the MCP server is configured for Claude Desktop, Claude Code, or another MCP client — not a different app.
  • Validate the JSON or CLI config syntax before assuming Claude has a UI bug.
  • Run the server command manually in a terminal to catch missing packages, permissions, or environment variables.
  • For Claude Code, compare your setup with Anthropic’s Claude Code MCP documentation. For Claude Desktop, check the user quickstart and config guidance in the official Model Context Protocol user quickstart.

Overview

A Claude MCP server usually disappears for a plain reason: the Claude client cannot find the config entry, cannot parse it, or cannot start the command behind it. Reinstalling Claude is rarely the first useful move. The better first check is narrower: which Claude surface are you using, which configuration does that surface read, and what happens when the server process starts?

MCP servers are external processes or remote endpoints that expose tools through the Model Context Protocol. Claude only shows the tools that its current client can load and initialize. A server added to Claude Desktop does not automatically become available in Claude Code, and a Claude Code project config does not automatically repair the Desktop app.

This guide focuses on the missing-server symptom: the server, connector, or tools you expected do not appear. It does not assume a live outage, rollout issue, price rule, account-plan limitation, or exact app-version requirement unless Claude or official product documentation says so for your case.

Symptoms

The surface symptom is simple: you added an MCP server, but Claude does not show it where you expected. In Claude Desktop, the server may be absent from the app’s available tools after restart. In Claude Code, the server may be missing from the coding session even though you remember adding it in another shell or project.

A second pattern is more subtle. The entry exists in a config file or CLI listing, but the server never becomes usable because its command fails at launch. That failure can look like a Claude UI problem when the real evidence is a process spawn error, a missing binary, an unreadable project path, or an environment variable that exists in your terminal but not in the app process.

Why This Happens

Claude cannot show an MCP server unless the correct Claude client can read the correct setup and start or reach the server. The common causes are wrong config scope, invalid JSON, stale app state, missing runtime dependencies, missing API keys, file permission problems, or a command that only works inside your interactive shell.

Use the official setup references for the client you are actually configuring. Anthropic documents Claude Code MCP setup, including commands for adding and managing servers, in Claude Code’s MCP documentation. The official MCP user quickstart documents Claude Desktop setup and where to check the Desktop configuration, including the Claude Desktop config file examples for supported platforms, in the MCP user quickstart. The protocol model itself is described in the MCP specification.

One practical gotcha deserves special attention: GUI apps may not inherit the same PATH, shell profile, node, python, uv, npx, or API variables that work in a terminal. Treat that as a hypothesis to test, not as a guaranteed cause. Run the server command manually, then make the Claude configuration use real executables, explicit arguments, and documented config locations.

Danger
Do not paste secrets into random MCP config examples. Keep API keys in environment variables or your approved secret manager when the server supports it. Redact tokens before sending logs or config snippets to support.

Check the exact Claude surface first

Before editing anything, name the target runtime: Claude Desktop, Claude Code, or another MCP client. A browser Claude session is not the same thing as a locally configured Desktop or Code MCP environment. If you configured a local server for one client, another client should not be expected to show it unless its own documentation says that setup is shared.

For Claude Desktop, check the Desktop configuration location described in the official MCP user quickstart. The quickstart shows a claude_desktop_config.json file for Claude Desktop, including examples such as ~/Library/Application Support/Claude/claude_desktop_config.json on macOS and %APPDATA%\Claude\claude_desktop_config.json on Windows. For Claude Code, use Anthropic’s Claude Code MCP commands and scope model rather than copying a Desktop JSON file into a project and hoping the CLI discovers it.

01

Confirm the target Claude client

Decide whether you are fixing Claude Desktop, Claude Code, or a browser-based Claude session before changing files.

Restart the runtime that loads MCP

After a config change, fully quit and reopen the Claude client that reads that config. Closing a Desktop window may leave the app running in the background, so use the operating system’s quit action where needed. For Claude Code, restart the terminal session or start a new Claude Code session after changing shell-level environment variables.

This isolation step is useful because MCP servers are commonly discovered during client startup. If the server appears after a full restart, the problem was stale process state. If it still does not appear, you have ruled out the easiest cache-like failure and can move to config and command checks.

02

Restart after every config change

Quit the app or restart the CLI session, then check whether the same server appears before making another edit.

Validate the MCP configuration file

A malformed config can make a server disappear before you see a useful UI error. Check commas, quotes, command paths, argument arrays, and environment variable names with a parser instead of reading the file by eye. Use the setup format required by the Claude client you are configuring.

For Claude Desktop, a local server entry commonly lives under mcpServers in claude_desktop_config.json. This sanitized example shows the structure only; replace the command, args, and environment variable names with the values from the server’s own documentation:

{
  "mcpServers": {
    "example-filesystem": {
      "command": "/usr/local/bin/npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/example/projects/demo"
      ]
    }
  }
}

Validate JSON before restarting Claude Desktop:

python -m json.tool "$HOME/Library/Application Support/Claude/claude_desktop_config.json" >/dev/null

If the parser reports a trailing comma, missing quote, or unexpected token, fix that first. A broken JSON file can prevent the server entry from loading at all.

Tip
Do not use a Claude Desktop config path as proof that Claude Code is configured. Claude Code has its own MCP setup flow documented by Anthropic.

Run the MCP server command manually

When an MCP server is configured with a command and arguments, run that exact command outside Claude. This separates a Claude configuration problem from a server startup problem. If the command cannot start in a normal terminal, Claude has little chance of starting it successfully from a GUI app or CLI subprocess.

A failed command is useful evidence. For example, this points to a PATH or install problem, not a mysterious missing-server bug:

~/project

$ /usr/local/bin/npx -y @modelcontextprotocol/server-filesystem /Users/example/projects/demo
env: node: No such file or directory

The next action is concrete: find the real executable path available to the Claude process, install the missing runtime, or change the config to use an absolute command path. Avoid shell aliases such as node-lts or functions from .zshrc; app launchers and subprocesses usually need a real executable.

~/project

$ command -v node
/usr/local/bin/node
$ command -v npx
/usr/local/bin/npx

Check file, permission, and environment availability

Local MCP servers often need filesystem access, project paths, language runtimes, or API credentials. A server can be correctly listed in config but fail during startup because Claude cannot access the directory, binary, token file, or environment variable it needs.

Check the exact surface. On macOS and Windows, a desktop app may run with a different environment and different privacy permissions than your terminal. On Linux, verify executable bits, absolute paths, and any sandboxing around the process. For WSL, confirm whether Claude is running on Windows while the command only exists inside the WSL filesystem; that boundary can make a valid Linux command invisible to a Windows-launched app.

03

Verify the server can start with the same inputs

Use absolute paths, real binaries, readable project directories, and explicit environment variables instead of shell-only aliases.

Separate Claude Desktop from Claude Code

Do not debug Claude Desktop and Claude Code with one mental model. The protocol is shared, but the client integration is not. Claude Desktop is an app-driven MCP client configured through the Desktop setup described in the MCP user quickstart. Claude Code is a developer tool with its own MCP commands, scopes, and session behavior documented by Anthropic.

If a server appears in Claude Desktop but not Claude Code, check the Claude Code MCP list or configuration using Anthropic’s documented commands. If it appears in Claude Code but not Desktop, check the Desktop config file and restart the Desktop app. Moving config files between clients without official support can create a second broken setup instead of fixing the first one.

Warning
Do not move config files between Claude clients unless the official documentation for that client says the format and location are compatible.

Run platform-specific checks

Platform differences matter when Claude MCP servers are missing. On macOS, fully quit and reopen Claude Desktop after editing the config file, and check privacy permissions if the server reads protected folders such as Desktop, Documents, or external volumes. On Windows, avoid commands that only work because a specific PowerShell profile modifies PATH. On Linux, check executable permissions and package paths. In WSL setups, verify which side of the Windows/WSL boundary owns the Claude client and which side owns the server command.

04

Match the command to the operating system

Use the executable and path format available to the Claude process, not only to your preferred shell.

Inspect logs and capture the exact failure

If Claude still does not show the MCP server, collect evidence before changing more variables. The useful evidence is not just “MCP is broken.” Capture the client name, operating system, sanitized config entry, the exact command you ran manually, the terminal output, and the point where the server disappears.

Look for log lines or stderr that mention JSON parse errors, spawn failures, permission denials, missing environment variables, connection failures, or server startup exits. A concise evidence bundle might look like this:

Client: Claude Desktop on macOS
Config checked: ~/Library/Application Support/Claude/claude_desktop_config.json
Symptom: server name does not appear after full app quit/reopen
Manual command: /usr/local/bin/npx -y @example/server /Users/example/project
Manual result: env: node: No such file or directory
Secrets: API keys redacted; no tokens included
Next check: confirm node and npx paths available to the app launch environment

Use local checks to ground the report:

command -v node
command -v python
command -v npx
pwd
ls -la path/to/server-or-project
python -m json.tool path/to/claude_desktop_config.json >/dev/null

Change one variable, restart, and record the result. If you edit the config, upgrade a runtime, change PATH, and switch accounts in the same attempt, you will not know which action mattered.

If it still fails

Escalate with a narrow report. Include the Claude client, operating system, official setup path you followed, sanitized config entry, manual server command output, restart steps already tried, and whether the issue is a missing server, a visible server with missing tools, or a startup failure.

Check official help or status surfaces for the specific Claude product you are using, but do not assume a current outage without evidence. Try another device or clean OS account only after config and command-level checks pass. If you are blocked in a work environment, ask whether local subprocess execution, network egress, or credential storage is restricted by policy.

FAQ

Why is my Claude MCP server not showing?

The likely causes are wrong Claude client, wrong config location, invalid config syntax, stale app state, failed server startup, missing credentials, or OS permissions. Start by confirming whether you configured Claude Desktop, Claude Code, or another MCP client.

Do I need to restart Claude after changing MCP config?

Yes, restart the Claude client or CLI session that loads the MCP configuration. MCP servers are commonly discovered during startup, so an open session may keep using the previous config.

Can a server work in terminal but not show in Claude?

Yes. Claude may run with a different PATH, working directory, permission set, or environment variable set than your interactive shell. Use absolute paths and explicit environment configuration when possible.

Is this caused by a Claude outage?

The provided reference data does not verify any current outage or status incident. Check official status or help channels if needed, but debug local config and startup failures first.

Should I use Claude Desktop or Claude Code for MCP?

Use Claude Desktop for app-level MCP workflows. Use Claude Code when the server supports coding tasks and you need it inside a terminal or project workflow. Do not assume the same config applies to both.

What should I send to support or a maintainer?

Send the Claude client name, OS, sanitized config entry, manual server command output, restart steps already tried, and whether the issue is missing server, visible server with missing tools, or startup failure.

Why is my Claude MCP server not showing?
The likely causes are wrong Claude client, wrong config location, invalid config syntax, stale app state, failed server startup, missing credentials, or OS permissions. Start by confirming whether you configured Claude Desktop, Claude Code, or another MCP client.
Do I need to restart Claude after changing MCP config?
Yes. Restart the Claude client or CLI session that loads the MCP configuration. MCP servers are commonly discovered during startup, so an open session may keep using the previous config.
Can a server work in terminal but not show in Claude?
Yes. Claude may run with a different PATH, working directory, permission set, or environment variable set than your interactive shell. Use absolute paths and explicit environment configuration when possible.
Is this caused by a Claude outage?
The provided reference data does not verify any current outage or status incident. Check official status or help channels if needed, but debug local config and startup failures first.
Should I use Claude Desktop or Claude Code for MCP?
Use Claude Desktop for app-level MCP workflows. Use Claude Code when the server supports coding tasks and you need it inside a terminal or project workflow. Do not assume the same config applies to both.
What should I send to support or a maintainer?
Send the Claude client name, OS, sanitized config entry, manual server command output, restart steps already tried, and whether the issue is missing server, visible server with missing tools, or startup failure.