Claude Media
Claude CodeのMCP server is disabledと予約名エラーの直し方

Claude CodeのMCP server is disabledと予約名エラーの直し方

MCP server is disabledは/mcpでの再有効化、reserved MCP server nameは改名で直ります。2つのメッセージの違いと切り分けをまとめました。

2つのメッセージは、サーバーの設定そのものは壊れていないという知らせ

Claude CodeでMCPサーバーを使っていて、次のどちらかが出たなら、接続の失敗やネットワークの問題を疑う必要はありません。

MCP server "<name>" is disabled — re-enable it via /mcp to use its tools
"<name>" is a reserved MCP server name and was not loaded

前者は「オフにされているサーバーのツールをClaudeが呼ぼうとした」、後者は「Claude Code自身が使う名前をサーバーに付けたので読み込まなかった」という意味です。直し方は前者が/mcpでの再有効化、後者が名前の変更です。どちらも設定ファイルの中身を書き換える大がかりな作業にはなりません。

くらべる

2つのメッセージの違い

オフになっている

MCP server is disabled

ツール呼び出しの結果としてClaudeに返ります。サーバーには接続しておらず、ツールも実行されていません。/mcpで再度オンにします。

名前が予約語

reserved MCP server name

読み込み時の警告です。該当のサーバーはスキップされ、ツールは使えません。サーバーの名前を変えます。

MCP server is disabledが出る理由と、/mcpでの戻し方

このメッセージは、ターミナルに赤字で出る類のエラーではなく、ツール呼び出しの結果としてClaudeに渡されるテキストです。Claude Codeはオフにされたサーバーに接続しないので、ツールは実行されません。Claudeはその代わりに「/mcpから再有効化してください」という文を受け取ります。

だれかが意図してオフにしたのなら、何もしなくて構いません。ツールが必要なときは、Claude Codeのプロンプトで/mcpを開き、対象のサーバーを選んで再度オンにします。

オフの状態はプロジェクトごとに保存される

/mcpでサーバーをオフにしても、設定は消えません。Claude Codeは/mcpの一覧にサーバーを残したまま、無効と表示します。選択はプロジェクト単位で~/.claude.jsonに記録され、記録先は2つのリストに分かれます。

リスト対象効き方
disabledMcpServers対象ユーザー設定のサーバー、プラグインのサーバー、管理設定で配られたサーバー、claude.aiコネクタ、既定でオンの組み込みサーバー効き方載せたサーバーには接続しない
enabledMcpServers対象computer-useのように既定でオフの組み込みサーバー効き方載せたときだけ接続する

1つのサーバーに対して参照されるリストは片方だけです。通常のサーバーをenabledMcpServersに書いても、既定でオフの組み込みサーバーをdisabledMcpServersに書いても、そのエントリーは無視されます。「有効にしたつもりでenabledMcpServersに書いたのに変わらない」という場合は、サーバーの種類とリストの組み合わせを疑ってください。

なお、enabledMcpjsonServersとdisabledMcpjsonServersは別物です。こちらはプロジェクトの.mcp.jsonに書かれたサーバーを承認するかどうかの設定で、/mcpのオン・オフとは関係がありません。

組織配布のサーバーやclaude.aiコネクタをオフにした場合

disabledMcpServersの対象には、管理設定で組織から配られたサーバーと、Claude Code自身が取得するclaude.aiコネクタも含まれます。/mcpのプロジェクト単位の切り替えでコネクタをオフにすると、claude.ai Slackのような表示名でこのリストに書き込まれます。つまり、コネクタや組織配布のサーバーでも、このメッセージが出たときの戻し先は同じ/mcpです。

コネクタが一覧ごと見当たらない場合は、別の設定が効いている可能性があります。設定のdisableClaudeAiConnectorsをtrueにするか、環境変数ENABLE_CLAUDEAI_MCP_SERVERSをfalseにすると、Claude Codeが取得するコネクタがまとめてオフになります。trueはどの設定スコープにあっても優先されるため、プロジェクト側でfalseと書いても、ユーザー設定や管理設定のtrueを打ち消せません。個別のコネクタを止めるにはdeniedMcpServersに名前かURLパターンを入れる方法もあり、こちらは/mcpのオン・オフとは別の仕組みです。

CLIから状態を確かめる

/mcpを開かなくても、ターミナルでオフの状態を確認できます。

claude mcp list
claude mcp get <name>

オフのサーバーは、どちらのコマンドでも次の状態表示になります。

⊘ Disabled for this project (re-enable via /mcp)

.mcp.jsonのサーバーが✘ Rejected (see disabledMcpjsonServers in settings)と出る場合は別の話で、claude mcp get <name>だけに表示されます。メッセージの文面が近くても、戻し方は異なります。Disabled for this projectなら/mcpで、Rejectedなら設定ファイルのdisabledMcpjsonServersの見直しです。

オフ・再接続の操作が残すキャッシュ

リモートのHTTP・SSEサーバーを以前に使っていると、/mcpでcached 2h ago · connects on first use · 5 toolsのような状態が出ることがあります。前回のセッションで保存したツール一覧を読み込んでおき、Claudeが最初にそのツールを呼んだときに接続する仕組みで、v2.1.221以降の機能です。/mcpのサーバーメニューでDisableを選ぶと、そのサーバーのキャッシュも破棄されます。次に接続するときは、キャッシュではなくサーバーからツール一覧を取り直します。

再接続の違いも押さえておくと迷いません。Reconnectは、接続済みか失敗した状態のサーバーではキャッシュを破棄します。cached状態のサーバーでは、いま接続しつつキャッシュを残します。

Agent SDKのアプリではtoggleMcpServerで戻す

Agent SDKでアプリを作っている場合、/mcpは使えません。サーバー名とenabledを渡すメソッドで切り替えます。

言語呼び出し
TypeScript呼び出しtoggleMcpServer(serverName, true)
Python呼び出しtoggle_mcp_server()にenabled=True

オフにすると、サーバーは切断され、そのツールもセッションから消えます。実行中のアプリがこのメッセージを受け取ったなら、途中でどこかがfalseでサーバーを切ったままになっていないかを確認すると原因に近づけます。

ただし、セッション途中でsetMcpServers()により追加したstdio・SSE・HTTPサーバーのツールを外すには、Claude Code v2.1.285以降が必要です。createSdkMcpServer()で作ったインプロセスのサーバーを切断してツールを外すには、v2.1.286以降が要ります。後者は、実行中のツール呼び出しがあると、そのたびにClaudeへエラー結果が即座に返ります。古いバージョンで切り替えが期待どおりに動かないときは、まずバージョンを見てください。

reserved MCP server nameが出る理由と、改名の手順

もう一つのメッセージは、サーバーの定義に付けた名前が予約済みのときに出ます。Claude Codeは、自分の組み込みサーバーの名前を予約しています。

  • workspace
  • claude-in-chrome
  • computer-use
  • Claude Preview
  • Claude Browser

Claude PreviewとClaude Browserは、どちらもClaude Codeデスクトップアプリのプレビューで使う組み込みサーバーを指す名前です。設定に同じ名前のサーバーがあると、Claude Codeは読み込みの時点でそれを飛ばし、改名を促す警告を出します。claude mcp addで予約名を指定した場合も、エラーとして拒否されます。

つまり、定義が正しくても、名前が予約語であるかぎり、そのサーバーのツールは1つも使えません。

設定の名前を変える

直し方は、サーバーを定義している場所で名前を変えるだけです。たとえばworkspaceをmy-workspaceにします。.mcp.jsonなら、mcpServersのキーが名前に当たります。

{
  "mcpServers": {
    "my-workspace": {
      "type": "http",
      "url": "https://example.com/mcp"
    }
  }
}

これは書き方を示す例で、URLは架空のものです。claude mcp addで登録した場合は、別の名前で登録し直します。名前を変えたあとはclaude mcp listで、警告が消えて接続状態が出ることを確かめてください。

名前が合っているのに警告が残るときは、同じ名前が複数のスコープに定義されている可能性もあります。この場合、Claude Codeは別の警告をclaude mcp listと/mcpに出します。警告が出るのは、同じ名前を複数のスコープに、異なる接続先で定義したときです。OAuthのサインインは接続先ごとに保存されるため、あるプロジェクトで認証した定義と、別のプロジェクトで読み込まれる定義が違えば、そちらでも別にサインインが必要になります。警告には各スコープの接続先が設定ファイルに書いたとおりの形で出て、${VAR}は展開されないので、APIキーのような値が表示されることはありません。残したい接続先を決めて、不要な定義はclaude mcp remove <name> --scope <scope>で消せます。

落とし穴

予約名の見落としが起きやすいのは、他クライアントの設定をそのまま貼ったとき

別のMCPクライアントで使っていたmcpServersのブロックを移すと、workspaceのような一般的な名前がそのまま入ってきます。貼る前にキーを見て、予約名と重なっていないかを確認すると、読み込み後の警告を避けられます。

anthropic-skillsという名前は別枠です。claude.aiから同期されるスキル用に予約されており、Claude Codeではこの名前のサーバーのプロンプトが一覧に出なくなります。ツールは動くので、見え方だけの問題です。スキル側の名前の衝突はanthropic-skillsのNot loadedの記事にまとめています。

どちらのメッセージか迷ったときの切り分け

見たもの該当するメッセージ最初にやること
ツール呼び出しの結果にis disabledとある該当するメッセージMCP server is disabled最初にやること/mcpで対象サーバーをオンにする
claude mcp listにDisabled for this project該当するメッセージMCP server is disabled最初にやること/mcpでオンにする
起動時や/mcpにreserved MCP server name該当するメッセージ予約名最初にやること定義のキーを別の名前に変える
claude mcp addの実行時に名前が拒否される該当するメッセージ予約名最初にやること別の名前で登録する

claude mcp listには、接続を試さずに設定の判断だけを表示するステータスが3つあります。⊘ Disabled for this projectが今回の対象で、残りの2つは戻し方が違います。

表示意味戻し方
⏸ Pending approval (run claude to approve)意味.mcp.jsonのサーバーが未承認戻し方claudeを対話で起動して承認する
✘ Rejected (see disabledMcpjsonServers in settings)意味設定のdisabledMcpjsonServersが拒否している戻し方その設定を見直す
⊘ Disabled for this project (re-enable via /mcp)意味disabledMcpServersに載っている戻し方/mcpでオンにする

Pending approvalは、リポジトリをcloneしただけの状態でも出ます。リポジトリにコミットされた.claude/settings.jsonの承認設定は、ワークスペースを信頼するまで無視されるためです。

どれにも当てはまらないときは、接続そのものの失敗を疑います。claude mcp listが✘ Failed to connectを返すなら、サーバー側の起動や認証の問題です。この場合はClaude Code MCP設定ガイドで追加の構文やスコープを見直すのが近道です。

名前が似ている別のエラーとの見分け

MCPの追加まわりには、文頭がCannot add MCP serverで始まるエラーが2種類あります。今回の2つのメッセージとは原因が違います。

  • Cannot add MCP server to scope: managed: --scope managedを付けて追加しようとした場合のエラーです。管理者がmanagedMcpServersで配るスコープなので、コマンドからは書き込めません。詳しくはCannot add MCP server to scope: managedの原因と対処にあります
  • Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide.: 管理設定がプラグイン経由のサーバーだけを許す場合のエラーです。claude mcp addが失敗するときの記事で扱っています

見分けるには、メッセージの後半を読みます。is disabledは「オフ」、reservedは「名前」、managedは「組織の管理設定」の話です。

まとめ

MCP server is disabledは、サーバーが壊れたのではなく、オフになっているだけです。プロジェクトごとの記録として残っているので、/mcpで戻せば元どおりに動きます。Agent SDKではtoggleMcpServerのenabledを確かめます。

reserved MCP server nameは、名前が組み込みサーバーとぶつかっているだけで、改名すれば読み込まれます。他のクライアントから設定を持ち込むときは、workspaceのような一般的な名前に注意が必要です。

この記事を共有:XはてブLinkedIn