Claude Media
Could not import a serverエラー — Desktopインポート失敗の原因と対処

Could not import a serverエラー — Desktopインポート失敗の原因と対処

claude mcp add-from-claude-desktopで一部サーバーだけ「Could not import」になる原因はサーバー名の文字制限がほとんどです。直し方と対象外環境も解説します。

このTipsでできること

claude mcp add-from-claude-desktop を実行すると、選んだサーバーのうち一部だけが Could not import <サーバー名>: <理由> というメッセージとともに取り込まれないことがあります。この記事では、メッセージの後半に出る「理由」の読み方、もっとも起こりやすい原因への直し方、そしてこのコマンド自体がそもそも使えない環境の見分け方をまとめます。

「Could not import」が出ても他のサーバーは取り込まれる

claude mcp add-from-claude-desktop は、Claude Desktopの設定ファイルからサーバーを選んでコピーするコマンドです。選択したサーバーのうち1つが失敗しても、コマンドは止まらず残りのサーバーの取り込みを続けます。失敗したサーバーについてだけ、1行ずつ理由付きのメッセージを出します。

Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.

コロンの後ろがそのサーバーで失敗した理由です。この挙動はv2.1.205で変わりました。それより前は、選んだ複数のサーバーのうち最初に失敗した1つがあると、そこでインポート全体が止まり、他の正常なサーバーも含めて1つも取り込まれませんでした。複数のサーバーを一括で選んで実行する使い方をしているなら、この違いだけでも把握しておく価値があります。

もっとも多い原因はサーバー名の文字制限

理由として出てくるメッセージの多くは名前チェックです。Claude Desktopのサーバー名にはスペースやピリオドを含めても構いませんが、claude mcp コマンド経由で追加するサーバー名は英数字・ハイフン・アンダースコアのみに制限されています。claude_desktop_config.json 側で my server のようにスペース入りの名前を付けていると、この制限に引っかかってインポートが拒否されます。

直し方は2通りあります。

  1. claude_desktop_config.json の該当サーバーの名前を英数字・ハイフン・アンダースコアだけの形に書き換えてから、claude mcp add-from-claude-desktop をもう一度実行する
  2. インポートを介さず、claude mcp add または claude mcp add-json で有効な名前を付けて直接追加する
claude mcp add-from-claude-desktop
# 対話ダイアログで取り込むサーバーを選択
claude mcp list
# 取り込まれたサーバーの一覧で確認

名前を直しただけでは解決しない場合は、次の2つも理由として出てきます。1つは、そのサーバーの設定自体がバリデーションに通らない場合です。もう1つは、組織のMCPポリシーによってサーバーがブロックされている場合で、こちらは名前を直しても解決しません。管理者に確認するか、許可されている別サーバーに切り替える必要があります。

直接追加する場合の具体例

名前をClaude Desktop側で書き換えたくない、あるいは連番を避けて意図した名前で追加したい場合は、インポートを介さず自分でclaude mcp add-jsonを使う方法もあります。claude_desktop_config.jsonに書かれているcommandargsenvをそのまま流用し、名前だけ有効な形に付け替えます。

claude mcp add-json my-server '{
  "command": "npx",
  "args": ["-y", "@example/mcp-server"],
  "env": { "API_KEY": "your-key" }
}'

この方法なら、Claude Desktop側の設定ファイルには一切手を加えずに済みます。Desktopアプリでの表示名を変えたくない場合や、複数人でDesktopの個人設定がそれぞれ違う名前になっている場合には、インポートより直接追加のほうが管理しやすいことがあります。

インポートに成功しても別の理由で使えないことがある

サーバー名の制限をクリアしてインポート自体は成功しても、初回接続時に別の理由で使えないサーバーもあります。代表例が、Anthropicがホストする一部のコネクタ用ホスト(microsoft365.mcp.claude.comgmail.mcp.claude.comgcal.mcp.claude.comなど)を指すサーバーです。これらはサインインの仕組みがclaude.ai経由に限られているため、claude_desktop_config.jsonからインポートしてサインインを試みても、ローカルでのOAuthフローの開始を拒否されます。該当する場合は、インポートしたエントリをclaude mcp removeで削除したうえで、claude.ai/customize/connectorsから接続し直すのが正しい手順です。「インポートは通ったのにサインインだけ通らない」という状況に当たったら、この種類のサーバーでないかを疑ってください。

同名サーバーがすでにある場合は連番になる

取り込み先の ~/.claude.json にすでに同じ名前のサーバーが存在する場合、インポートは失敗せず、server_1 のように末尾へ連番を付けた名前で追加されます。上書きはされないので、意図せず既存の設定を壊すことはありません。ただし連番付きの名前で追加された結果、プロジェクトの.mcp.json側で元の名前を前提にした権限ルールを書いていると一致しなくなる点には注意が必要です。MCP権限ルールのmcp__サーバー名__ツール名という書き方はClaude Code MCP権限ルールで扱っています。

このコマンドが使える環境は限られる

claude mcp add-from-claude-desktopmacOSとWindows Subsystem for Linux(WSL)でだけ動作します。ネイティブのWindowsや素のLinux環境では、そもそもこのコマンド自体が使えません。これはOSごとの標準的な場所からClaude Desktopの設定ファイルを読み取る実装になっているためで、Desktopアプリが存在しない、またはWSLを介していない環境では読み取り先が存在しないからです。

さらに紛らわしいのは、Claude Desktopアプリ自体に組み込まれたコード実行(Code)タブでは、このインポートコマンドは不要という点です。Desktopアプリは claude_desktop_config.json に定義したMCPサーバーを、アプリ内蔵のCodeタブへ直接読み込みます。インポートが必要になるのは、ターミナルから起動するスタンドアロン版のCLIの側です。スタンドアロンCLIは claude_desktop_config.json を自分では読まないため、claude mcp add-from-claude-desktop~/.claude.json へ明示的にコピーする手順が要ります。「Desktopアプリの中では動くのに、ターミナルのclaudeコマンドでは同じMCPサーバーが見えない」という状況に遭遇したら、この違いが原因です。

利用面claude_desktop_config.jsonの扱い
Claude Desktopアプリ内のCodeタブclaude_desktop_config.jsonの扱い直接読み込む(インポート不要)
ターミナルのスタンドアロンCLI(macOS / WSL)claude_desktop_config.jsonの扱いclaude mcp add-from-claude-desktop でのコピーが必要
ターミナルのスタンドアロンCLI(ネイティブWindows / Linux)claude_desktop_config.jsonの扱いコマンド自体が対象外

--scope user フラグを付けると、インポートしたサーバーをプロジェクト単位ではなくユーザー設定に追加できます。複数のプロジェクトで同じMCPサーバーを使い回すなら、こちらのスコープが向いています。

ここで押さえておきたいのは、インポートで追加できるのはローカルスコープかユーザースコープのどちらかだけという点です。チーム全員に同じMCPサーバーを配りたい場合、claude_desktop_config.jsonは各メンバーの手元にしかない個人設定なので、インポートをメンバーごとに繰り返しても構成が揃う保証はありません。チームで共有したいサーバーは、バージョン管理にチェックインする.mcp.jsonにプロジェクトスコープで追加するのが向いています。インポートはあくまで、自分がClaude Desktopですでに設定済みのサーバーをスタンドアロンCLIへ一度だけ持ち込むための個人的な移行手段だと考えてください。スコープの階層と優先順位の全体像はClaude Code MCP設定ガイドにまとめています。

claude importコマンドとは別物

似た名前のコマンドに claude import があります。こちらは特定のビルドで not yet available in this build というメッセージとともに使えないことがある、フィーチャーフラグ制御下の別コマンドです。claude mcp add-from-claude-desktop とは実装も対象も異なるため、claude import の方でつまずいた場合はclaude importが使えない「not yet available in this build」の意味と対処を参照してください。両者はコマンド名が近いだけで、挙動を混同すると原因の切り分けを誤ります。

よくある質問

サーバー名を直したのに同じエラーが出ます

サーバー設定自体のバリデーションエラーの可能性があります。エラーメッセージのコロン以降がサーバー名の文字制限以外の内容になっていないか確認してください。名前の制限とは別の理由がそのまま文字列で示されます。

一部のサーバーだけ再インポートできますか

claude mcp add-from-claude-desktop を再実行すると、対話ダイアログで取り込むサーバーを毎回選び直せます。前回成功したサーバーだけを除外して、失敗したサーバーだけを選び直すことができます。

成功したサーバーと失敗したサーバーを一括で見分けられますか

コマンドの出力自体に、成功分は特に表示されず失敗分だけCould not importの行が並びます。実行後にclaude mcp listを流せば、その時点で~/.claude.json(または--scope userを指定した場合はユーザー設定)に実際に登録されているサーバーの一覧が出るので、選んだサーバーの数と見比べれば取りこぼしにすぐ気付けます。

WindowsでClaude Desktopを使っていますが、このコマンドは使えませんか

ネイティブのWindows環境ではこのコマンド自体が対象外です。WSL上でClaude Codeを動かしている場合は利用できます。WSLを使っていない場合は、claude mcp add または claude mcp add-json で該当サーバーを手動追加してください。

まとめ

Could not import <サーバー名>: <理由> は、選んだサーバーの一部だけが取り込みに失敗したときのメッセージで、v2.1.205以降は他の正常なサーバーの取り込みを止めません。もっとも多い原因はサーバー名の文字制限で、claude_desktop_config.json 側の名前をスペースやピリオドを含まない形に直せば解決します。組織のMCPポリシーによるブロックは名前を直しても解決しないため、その場合は管理者への確認が必要です。コマンド自体がmacOSとWSL限定である点、Desktopアプリ内蔵のCodeタブではそもそも不要な手順である点もあわせて押さえておくと、環境ごとの切り分けが早くなります。チーム全員に同じ構成を配りたい場合は、個人設定であるインポートに頼らず.mcp.jsonのプロジェクトスコープへ切り替えることも検討してください。

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