New: watch your coding agents work, step by step, on a live board. Try the demo, no account

Claude Code MCP server not connecting, or its tools not showing: the fixes

By Jake Marsh, who builds Taskhold. Updated 2026-10-30. Facts about other tools checked 2026-10-30. 6 min read.

Short answer: Run claude mcp list in the project folder. Failed to connect prints the error after the status; Pending approval means a .mcp.json server you haven't approved; a missing server was probably added in local scope from another folder. Connected with zero tools: reconnect from /mcp, then read the log from claude --debug=mcp.

You added an MCP server, Claude Code says nothing about it, and the tools never show up. Most cases come down to five causes: the wrong scope, a project server waiting for approval, a server that fails to start, a sign-in problem, or a server that connects with zero tools. This guide shows the command that tells you which one you have, and the fix for each.

The last section covers Taskhold's own server, the one that feeds its live board. Its error codes are in Taskhold troubleshooting.

Start with claude mcp list

Run claude mcp list from the project folder, or /mcp inside a session. Each server shows a status, and the status points at the fix:

Start with claude mcp listChecked 2026-10-30 against code.claude.com/docs/en/mcp.
StatusWhat it meansFix
ConnectedClaude Code reached the serverIf the tools are still missing, see Connected, but no tools below
Failed to connectClaude Code couldn't start or reach it. The HTTP status or error code follows on the same lineRead that detail; claude mcp get <name> shows it on an Issue: line
Needs authenticationThe server wants an OAuth sign-inIn /mcp pick the server and choose Authenticate, or run claude mcp login <name>
Pending approvalA .mcp.json server you haven't approved yetRun claude in the folder, accept the workspace trust dialog and approve the server
Disabled for this projectNamed in the project's disabledMcpServers listTurn it back on from /mcp
Not listedAdded in another folder's local scope, or defined where Claude Code doesn't lookSee the scope section below

Checked 2026-10-30 against code.claude.com/docs/en/mcp.

The server is missing: check the scope

Local scope is the default for claude mcp add. A local server loads only in the folder where you added it, so it disappears when you open another repo. For a server you want in every project, add it with --scope user:

claude mcp add --transport http --scope user <name> <url>
  • .mcp.json goes at the repository root with servers under an mcpServers key. A file inside .claude/, or a top-level servers key copied from VS Code's mcp.json, never loads.
  • settings.json doesn't read an mcpServers key. Use .mcp.json or claude mcp add.
  • The same name in two scopes with different URLs shows a warning in claude mcp list. Claude Code uses the highest-precedence definition whole, without merging fields, so remove the extra one with claude mcp remove <name> --scope <scope>.
  • A cloned repo can't approve its own servers: approvals committed in its .claude/settings.json are ignored until you trust the folder.

The server fails to start

  • Relative paths in command or args resolve against the folder you launched Claude Code from, not the folder holding .mcp.json. Use absolute paths for local scripts; npx and uvx on your PATH work as they are.
  • Variables the server needs belong in its env block. A ${VAR} reference that isn't set shows a Missing environment variable warning and reaches the server unexpanded.
  • A pasted key with a trailing newline shows a hidden whitespace warning naming the field, such as headers.Authorization. Claude Code doesn't trim it, so edit the value.
  • A slow server can hit the startup timeout. MCP_TIMEOUT sets it in milliseconds (30000 by default): MCP_TIMEOUT=60000 claude.
  • After a fix, choose Reconnect on the server in /mcp, or run /mcp reconnect all (Claude Code v2.1.284 or later) to retry every failed server.

Connected, but no tools

A server that shows Connected with zero tools started fine but returned no tool list. The /mcp panel shows each server's tool count and flags servers that advertise tools but expose none. Choose Reconnect in /mcp. If the count stays at zero, start Claude Code with claude --debug=mcp and read the server's stderr in the log at ~/.claude/debug/<session-id>.txt.

  • Run /context to see whether any MCP tools are in the session at all. They have their own line in the breakdown.
  • A subagent whose definition has a tools list gets only the MCP tools it names. mcp__<server>__* gives it all of one server's tools.
  • A remote server that drops mid-session gets five reconnect attempts. After that Claude Code shows MCP server "<name>" disconnected; reconnect from /mcp.
  • Right after a resume, a call to a tool whose server is still connecting can fail with No such tool available. Calls work once the server is up.

Taskhold-specific checks

Taskhold is a remote server at https://taskhold.com/api/mcp. Add it with --transport http, which is Streamable HTTP. When the taskhold tools don't appear, check these in order:

  1. claude mcp list shows taskhold. If not, add it again with --scope user, or paste a fresh setup URL from Settings and say "set this up".
  2. The header is Authorization: Bearer followed by a key that starts with atd_sk_. A 401 names the problem: missing_key, bad_header, not_a_taskhold_key or unknown_key.
  3. Added without a key? Run /mcp, pick taskhold and choose Authenticate to sign in through the browser.
  4. A 402 means the key works but the trial ended or the plan was canceled. Restarting the plan fixes it with no config change.
  5. Settings in Taskhold shows Connected once the first call arrives. Ask Claude to call taskhold_list to test; in Claude Code the tools are named mcp__taskhold__*.

Once the tools load, every task the agent starts, its steps and its questions show on the live board. Setup for other clients: Cursor, Codex, VS Code and Gemini CLI. Subagents and their tools are covered in tracking Claude Code subagents.

Share this page:XLinkedInBlueskyHacker News

See how far along your coding agents are.

$12/month or $120/year after the trial. Card up front. Cancel before day 7 and you pay nothing. Every agent you run is included.

Questions

Where does Claude Code store MCP servers?
Local and user scope servers are in ~/.claude.json; local ones sit under the project's path there. Project scope servers are in .mcp.json at the repository root, which you can commit for your team.
Why does claude mcp list say Failed to connect when Claude Code itself works?
The status is about that one server, not the list command. Claude Code couldn't connect to it, and the detail after the status, or the Issue: line from claude mcp get <name>, says why.
Can a cloned repository turn on its own MCP servers?
No. Approvals committed to the repo's .claude/settings.json are ignored until you trust the folder, so a .mcp.json server stays Pending approval until you run claude there and approve it.

Sources

Related

Updated 2026-10-30. Something wrong or out of date? Email hello@greatwork.company.