「アシスタントが自分のデータを見てくれない」という相談の最も多い原因は、
壊れたサーバーではありません。設定を変えたあとに一度も再起動していない
クライアントです。ほとんどのMCPクライアントは設定を起動時に読み、その後は
二度と読みません。つまりアプリを開いたまま編集したファイルは、アプリが
読んでいないファイルです。完全に終了させ — macOSではウィンドウを閉じても
プロセスは残ります — 開き直してください。Claude Codeでは、ターミナルを
再起動する代わりに /mcp を実行します。
それで直らないなら、次に役立つ問いは「どのクライアントを使っているか」では なく「いま正確に何が起きているか」です。サーバーが一覧に出てこない、接続は するのにツールが1つも出ない、ツールは動くのに結果が空で返る、何かを変えよう とするときだけ失敗する — これらは4つの別々の不具合で、対処も4つ別々であり、 しかもどのアプリを使っているかにはほとんど左右されません。ここに書いた内容は すべて、2026年8月14日にベンダーのドキュメントで確認しています。
何かを変える前に、クライアントがすでに知っていることを見てください。どの クライアントにも「このサーバーは接続できたのか」に答える場所がちょうど1つ あります。それを見ずにチャット画面から推測するのが、その画面なら1秒で名前を 言い当てる問題に1時間を使ってしまうやり方です。
| クライアント | 見る場所 | 正常なサーバーの見え方 |
|---|---|---|
| Claude Code | claude mcp list または /mcp パネル |
✔ Connected |
| Claude Desktop | チャット入力欄のプラス記号 → Connectors | サーバーがツールとともに一覧に出る |
| Cursor | Outputパネル(Cmd+Shift+U)→ MCP Logs |
初期化のログがあり、接続エラーがない |
| VS Code | Command Paletteの MCP: List Servers | サーバーが起動し、Show Output のログがきれい |
| Zed | Settings → AI → MCP Servers | 緑の点と Server is active のツールチップ |
この中で最も情報量が多いのはClaude Codeです。claude mcp list は各サーバーの
隣に状態を出し — ✔ Connected、! Needs authentication、
✘ Failed to connect、⏸ Pending approval — 同じ行に失敗の詳細を書き足し
ます。claude mcp get <name> は同じ内容を Issue: の行に示し、サーバー自身が
返したエラーテキストも含みます。
ステータス画面にサーバーがまったく出ないなら、あなたが書いた項目をクライアント が読んでいません。原因はほぼ3つで説明がつきます。
ファイルが正しいJSONとして解釈されていない。 末尾のカンマが1つ、閉じ括弧が 1つ足りないだけで、クライアントは壊れた項目だけでなくファイル全体を無視します。 しかも、たいていその旨を教えてくれません。ほかを疑う前に、ファイルをJSONの バリデーターに貼り付けてください。
クライアントが読むのとは別のファイルを編集した。 ほとんどのクライアントは
個人用とプロジェクト単位の両方の設定を持っており、間違ったほうを編集すると
まさにこの症状になります。Cursorはグローバルには ~/.cursor/mcp.json を、
プロジェクト内では .cursor/mcp.json を読みます。VS Codeはワークスペースの
.vscode/mcp.json と、MCP: Open User Configuration で開くユーザー
プロファイルの mcp.json を読みます。Claude Codeには3つのスコープがあり、
localとuserは ~/.claude.json、projectはリポジトリ直下の .mcp.json です。
同じ名前が複数で定義されている場合、localがprojectに、projectがuserに勝ちます。
勝ったスコープの項目がまるごと使われ、フィールドは混ざりません。
そのクライアントにとってキー名が違う。 VS Codeの最上位のキーは servers、
Zedは context_servers、それ以外はみな mcpServers です。VS Codeに貼り付けた
mcpServers のブロックは、エディタがエラーとして知らせてくれるものではなく、
単に読まないキーです。クライアントごとの詳細は
MCPの設定ファイルはどこにあるかで
扱っています。
サーバーが消えたように見えて、実はそうでない場合が1つあります。Claude Codeで
プロジェクト単位のサーバーは、そのフォルダで claude を対話的に起動して承認
するまで ⏸ Pending approval のままです。リポジトリにコミットされた承認は、
そのワークスペースを信頼するまで無視されます。
設定を何も変えていないのにサーバーが接続しなくなったときは、設定にもう存在
しないプログラムへの絶対パスが残っているのが普通です。アプリを別のフォルダへ
更新した、名前を変えた、Applicationsの外へ移した — どれもJSONが正しく見えた
ままパスを壊しますし、クライアントのエラーはその移動を指し示しません。ほかの
何よりも先に、command の値を現実と突き合わせてください。
ls -l "/absolute/path/from/your/config"
同じ種類の失敗は、バージョン管理ツール経由で起動するサーバーにも起きます。
command が node、npx、python、uv で、実行環境がnvmやpyenv、asdfから
来ているなら、そのパスはあなたのターミナルには存在し、クライアントには存在
しません。クライアントはログインシェルを起動しないからです。名前だけの指定を
絶対パスに置き換えるか — which node が教えてくれます — command にバイナリ
そのものを指定してください。
状態が緑なのにツールの一覧が空なら、ハンドシェイクは成功していて、
tools/list が有用な内容を返していないということです。これを起こすのは2つ
です。
1つめは、サーバーが本当に空のツールセットを申告している場合です。これは クライアントの外で、MCP Inspector — stdioやStreamable HTTPのサーバーに直接 つないで、公開されているものを一覧する公式のテスト用UI — を使えば確認でき ます。Inspectorにはツールが見えて、あなたのクライアントには見えないなら、 原因はクライアント側の設定です。
2つめはツールの上限です。VS Codeは1回のチャットリクエストで有効にできる ツールを128個に制限し、合計がそれを超えるとリクエスト自体を拒否します。 サーバーを多く登録したマシンでは、思ったより早くこの上限に届きます。上限の 下に戻すためにサーバーをオフにするのは、Chatビューの Configure Tools ボタンです。Cursorではサイドバーの Customize パネルから個々のサーバーを 無効にでき、無効なサーバーは読み込まれずチャットにも現れません。ここは 最初に確認する価値があります。1か月前に誰かが切り替えたトグルは、起動に 失敗したサーバーとまったく同じに見えるからです。
ツールは並んでいて、アシスタントもそれを呼び、結果だけが空です。ここでは トランスポートに問題はなく、話は設定ではなくデータのほうです。サーバーが 読んでいるライブラリが、あなたの思っているものかを確かめてください。正しい アカウント、正しいデバイス、そして別のマシンにしかないのではなく、実際に このマシンへ同期済みの内容であること。次に、クライアントのログでツールに渡された 引数を見てください。日付の範囲やフィルターを推測したアシスタントは、まったく 健全なライブラリからでも空の結果を作り出せます。
検索は成功するのに、名前の変更、タグ付け、更新の試みがすべて失敗するなら、 これはトランスポートの問題ではありません。サーバーは読み取るツールと変更する ツールに分かれていることが多く、変更する側には追加の条件が付いていることが よくあります。アプリが起動していること、認証済みのセッションがあること、 クライアントに与えられていない権限があること。まず除外しておきたい クライアント側の原因が2つあります。データを変更するツールはそのように申告 されるため、クライアントは実行前に確認を出します。あなたが閉じてしまった 確認は、記録の上では失敗として見えます。もう1つ、読み取り専用のフラグ付きで 起動したサーバーは、そもそもそれらのツールを公開しません。これは不具合では なく設定上の選択です。
これはあなたではなくサーバー側の不具合ですが、エラーメッセージが紛らわしい
ので見分けられるようにしておく価値があります。stdioでは、標準出力に
JSON-RPCのメッセージ以外を流さないことがプロトコルの要件です。そのため
バージョンのバナーや起動中を知らせる行、色付きのログをstdoutへ出すサーバーは
ストリームを壊し、クライアントは出力の先頭数文字を引用したパースエラーで
失敗します — Unexpected token 'S', "Starting s"... is not valid JSON。
直すのはサーバーの作者の仕事です。ログの行はstderrへ出せばよく、ホストは
どのみちそれを取り込みます。
もう1つの起動時の落とし穴は環境です。stdioのサーバーが引き継ぐのは、
プラットフォーム依存の限られた環境変数だけで、あなたのシェルのプロファイル
ではありません。作業ディレクトリも未定義のことがあり、macOSでは事実上 /
です。サーバーに必要なものは設定項目の env キーで渡し、パスはすべて絶対
パスにしてください。
command のパスが絶対パスとして実在するかを確かめる。上から順にやれば1分で済みます。7番目から始めるのが、5秒の問題を午後いっぱいに 変えるやり方です。
Speak-YはMCPサーバーをmacOSアプリの中に同梱しているので、上に挙げた失敗の
いくつかはそもそも起こりません。インストールするnpmパッケージはなく、nvm越しに
解決すべき実行環境もなく、期限切れになるトークンもありません。起こりうるのは
パスが古くなることだけで、それはアプリが自分で直します。起動時にClaude Code、
Claude Desktop、Cursorの設定を確認し、command の値がアプリの以前の場所を
指している場合は書き換えます。書き換えるのは本当に自分のものだと確認できた
項目だけで、アプリのバイナリと --mcp 引数で照合するため、たまたま名前が
同じ別のサーバーはそのまま残ります。手で行う必要があるときは、
設定 → 連携 に検出された各クライアントの隣に 再インストール が
出ています。そのあとクライアントを再起動するか、Claude Codeで /mcp を
実行してください。
読み取りと変更の分かれ目も、覚えておく価値のあるもう1つの症状です。録音の
検索と、文字起こし・要約・アクションアイテムの読み取りは、このマシン上の
ライブラリに対してそのまま動き、ほかに何かが起動している必要はありません。
整理するためのツール — タグ、タイトル、話者名、再文字起こし、
チームチャンネルへの公開 — は起動中のアプリを経由するため、
Speak-Yを終了していると、検索は動いたままそれらだけが失敗します。この
非対称性そのものが診断になります。読み取りが動いて変更が動かないなら、
設定をいじるのではなくアプリを起動してください。サーバーの引数に
--read-only を加えると、変更するツールはクライアントの視界から完全に
消えます。これは意図した挙動であり、故障ではありません。健全なサーバーから
空の結果が返るときは、たいていその録音がまだ別のデバイスにあります。
サーバーはこのディスクを読むだけで、残りを取りに行きはしません。
修理ではなく設定をしているところなら、このページよりクライアントごとの手順の ほうが役に立ちます。Claude DesktopとClaude Codeは順を追った解説、 VS Code、Zed、Devin Desktopは設定の 形がほかと違うエディタ向けです。
ほとんどのクライアントはMCPの設定を起動時にしか読まないため、クライアントを起動したまま書いた設定はまだ読み込まれていません。アプリを完全に終了してから開き直してください。macOSではウィンドウを閉じるだけでは足りません。Claude Codeではターミナルを再起動する代わりに /mcp を実行します。
クライアントごとに、それに答える場所が1つあります。Claude Codeは claude mcp list で、各サーバーの隣に ✔ Connected、! Needs authentication、✘ Failed to connect が表示されます。Claude Desktopはチャット入力欄のプラス記号から Connectors。VS CodeはCommand Paletteの MCP: List Servers。CursorはOutputパネルで MCP Logs を選びます。ZedはSettings → AI → MCP Serversで、緑の点に Server is active と表示されます。
macOSでは ~/Library/Logs/Claude、Windowsでは %APPDATA%\Claude\logs です。tail -n 20 -F ~/Library/Logs/Claude/mcp*.log でそのまま追いかけられます。mcp.log には接続まわりの一般的なイベントが、mcp-server-NAME.log にはそのサーバーがstderrへ書いた内容が入ります。
クライアントはログインシェル経由ではなく、自分でプロセスを起動します。あなたの完全なPATHは引き継がれず、環境変数もプラットフォーム依存の限られた一部だけで、作業ディレクトリは未定義のことがあります。commandには絶対パスを、引数にも絶対パスを使い、必要な変数は env キーで明示的に渡してください。
ほとんどの場合、MCPの設定に書かれた絶対パスが、アプリの以前の場所を指したままになっています。別のフォルダへの再インストール、アプリの名前変更、Applicationsの外への移動は、いずれも設定が正しく見えたままパスだけを壊します。クライアント向けのワンクリックインストールをやり直して、パスを書き直させてください。