概要
Claude MCP(Model Context Protocol)、使ってますか?
とりあえずカジュアルにサクッとMCPを試してみよう!といった場合に、Claude for Desktopを使ってMCPを試すことができます。
たとえば「filesystem」を使えばAIチャットを通して自端末にファイルを直接保存できる様になります。
MCPを使わない場合だと、Claudeの中でチャット回答本文かアーティファクトという形で一度Claude app内でのみ扱える情報として生成されます。
私もいざMCPに入門!といったノリで公式ドキュメントの通りにやってみたのですが...
はい。マニュアル通りには動かなかったのです。
さっぱり動かず、エラーに。
ググっても有力な解決策は見つけられなかった中、「Claude自身にClaudeについて相談する」ことを通じて無事に解決できたので、その経験を共有します。
MCPが登場してからかなり経つので今更感はあるかもしれませんが、MCPのお試しでつまづいた方や、今後困った時のトラブルシューティングのヒントに向けて、ちょっとでも参考になるかと思い記事を残します。
解決した時の設定
最初に結論がてら、最終的に行き着いた私の環境での設定を書きます。
filesystem
を使うにあたってのclaude_desktop_config.json
の記述内容です。
# 動いた設定(Claudeに相談した結果)
{
"mcpServers": {
"filesystem": {
"command": "/Users/username/.nvm/versions/node/v20.5.0/bin/npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Downloads"
],
"env": {
"PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
}
}
}
nvmでNode.jsをインストールしている場合ですが、上記の設定を追加することで解決しました。
ちなみに公式の設定例に従うと、以下の設定で動くはずだったのです...。
# 動かなかった設定(公式手順準拠)
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Downloads"
]
}
}
}
...比較してみると、npxのパスが違う
のと、設定項目 env - PATH
が増えましたね。
あくまでも私の環境では
の話です。
この設定は「PCの環境次第ではこれで動かすことができる
」という一例として、以下の解決シナリオを参考にいただけると幸いです。
最初の設定とエラーとの戦い
公式では以下のような設定が記載されています。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop",
"/Users/username/Downloads"
]
}
}
}
Githubの方のREADME.mdの方がより詳しいかと思います。
たったこれだけの設定で、ちまたで噂のMCPが試せるのか...!
と、ウキウキしながらとりあえず公式のコピペで設定をしてみました。
しかし...
発生したエラー
はい、コピペでは上手くいかなかったんですね。
もちろん「username
」の部分は、自端末のユーザー名で設定したものに書き換えています。
mcpのログを確認してみます。
/Users/username/Library/Logs/Claude/mcp.log
あるいは
/Users/username/Library/Logs/mcp-server-filesystem.log
command not found /Users/username/Downloads
というエラーが。パスが通ってないんですね。
which npx
/Users/username/.nvm/versions/node/v20.5.0/bin/npx
nvm管理下だったので、こんな感じのパスになっていた。
じゃあ絶対パス指定かな、ということでnpxのパスを絶対パスに変更してみる。
{
"mcpServers": {
"filesystem": {
"command": "/Users/username/.nvm/versions/node/v20.5.0/bin/npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Downloads"
]
}
}
}
これでどうだ?
Server disconnected
と、新たなエラーが発生。
[info] [filesystem] Server transport closed unexpectedly,
this is likely due to the process exiting early.
If you are developing this MCP server you can add output to stderr
(i.e. `console.error('...')` in JavaScript,
`print('...', file=sys.stderr)` in python)
and it will appear in this log.
[error] [filesystem] Server disconnected.
For troubleshooting guidance, please visit our [debugging documentation]
(https://modelcontextprotocol.io/docs/tools/debugging)
何それわからん。
うーむ...。どうしたものか。
解決への道のり
解決策については、ググっても全然出てこなかったのです。
検索の仕方が悪かっただけかもですが。
MCPが動かない系の記事と解決策がいくつか見つけられたものの、どうやらエラーが千差万別の様で、自分とは状況が違った様でいずれの記事も私の環境においては解決には繋がらなかったのです。
色々調べた結果、何だかんだで以下に辿り着きました。
llms.txt ? / llms-full.txt ?
...と言うものがあるらしい。
Claudeが公開しているテキストファイルで、
「llms.txt(anthropic版)」
「llms.txt(MCP版)」
「llms-full.txt(これもMCPのサイトにある)」
なるものを見つけました。
それぞれファイルが公開されているドメインが「docs.anthropic.com」「modelcontextprotocol.io」なので、本家管理元として公開されているファイルの様です。
違いについてClaudeに聞いてみました。
docs.anthropic.com/llms.txt
- Anthropic API関連ドキュメントのリンク集
- API Keys、Message Batches、Models、Claude Code等のAnthropicサービス情報
modelcontextprotocol.io/llms.txt
- Model Context Protocol関連ドキュメントのリンク一覧のみ
modelcontextprotocol.io/llms-full.txt
- Model Context Protocol関連ドキュメントのリンク
- 各ドキュメントの実際の内容が含まれている
- MCP仕様、実装例、API詳細等が記載されている
llms-full.txtを使ってみる
なるほど。
MCPのドメインで公開されている llms-full.txt
を使えば良さそうだなと思い、このファイルをでダウンロードしました。
要は、ClaudeがClaude MCPについて詳しくなる知識体系を示したファイル
といった感じでしょうか。
これを使って、ClaudeにMCPについて相談することできる様になる模様。
もちろん「素のClaude」に対しても相談だけならできますが、多分解決に辿り着くのは難しい、単純にプロンプトの作成が大変になったり、解決までのターンが多くなる等で大変になると思われます。(私はllms-full.txtを入れる前に相談しても解決しなかった)
入れ方は簡単です。
- Claudeのプロジェクトを作成
- プロジェクトナレッジに llms-full.txt をドラッグ&ドロップ
- 指示も書いておく
- 完成
プロジェクト指示はこんな感じで書いてみました。
# MCP問題解決支援の指示
## 必須参照
- プロジェクトナレッジの「llms-full.txt」を常に最初に参照
- 公式ドキュメントの情報を最優先とする
## 回答形式
- **問題診断**: エラーメッセージ・症状から原因を特定
- **解決手順**: 番号付きステップで明示
- **確認方法**: 解決後の検証手順を含める
- **実装例**: 動作する設定ファイル・コード例を提供
## 対応範囲
- MCPサーバー開発(Python)
- MCPクライアント設定・統合
- 接続エラー・認証問題のトラブルシューティング
- 既存MCPサーバーの活用とカスタマイズ
## 品質基準
- 具体的な実装例を含める
- エラー解決時はログ解析手順も説明
- 複数解決策がある場合は選択肢を提示
- セキュリティ考慮事項を明記
設定した結果はこの様な感じです。
このプロジェクト内のチャットで、MCPが動かない件について相談してみます。
Claudeとの対話例
「フルパス指定が必要そうだ」という点は一応自己解決したつもりですが、そもそも公式設定のコピペで動かなかったので、最初から相談してみました。
Q
は私、A
はClaudeのメッセージです。
Q1
Claude mcp の filesystem を使用したいのですが、うまく機能しません。
公式の設定例に従って以下のように設定しました。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Downloads"
]
}
}
}
Claudeを起動した際にエラーが発生し、ログは以下でした。
[filesystem] [info] Message from client:
<中略>
command not found
macOSを使っています。何が原因でしょうか?
A1
このエラーは通常、コマンドが見つからない場合に発生します。
macOSのGUIアプリケーションは、ターミナルとは異なるPATH環境変数を持っています。
まず、npxの場所を確認してください:
which npx
そして、フルパスを指定してみてください:
"mcpServers": {
"filesystem": {
"command": "/usr/local/bin/npx",
<省略>
Q2
npxの場所を確認しました:
/Users/username/.nvm/versions/node/v20.5.0/bin/npx
フルパスで設定を更新しました:
json{
"mcpServers": {
"filesystem": {
"command": "/Users/username/.nvm/versions/node/v20.5.0/bin/npx",
<中略>
今度はサーバーが起動するようになりました!
ログには「Secure MCP Filesystem Server running on stdio」と表示されます。
しかし、実際にMCPを使ってファイル操作を試すと失敗します。
2025-09-01T23:16:12.473Z [filesystem] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) { metadata: { context: 'connection', stack: undefined } }
2025-09-01T23:16:12.476Z [filesystem] [info] Client transport closed { metadata: undefined }
2025-09-01T23:16:12.477Z [filesystem] [info] Server transport closed { metadata: undefined }
A2
このログだけでは具体的な原因が分からないですね。
ただ、興味深い状況です:
npx自体は起動している("Secure MCP Filesystem Server running on stdio"が表示)
しかし実際の処理時に突然切断される
これは2段階の問題があることを示しています:
- npx起動: フルパス指定で解決済み
- npx内部処理: 何らかの理由で処理が完了せず切断
npxは内部でパッケージをダウンロード後、spawn()を使って子プロセスを実行します。突然切断されるということは、この子プロセス実行時に問題がある可能性があります。
よくあるケースとして、macOSのGUIアプリケーションでは:
- npx自体は見つかる(フルパス指定済み)
- しかし内部で呼び出されるnodeコマンドなどが環境変数不足で見つからない
- 結果として子プロセスが失敗し、サーバーが切断
試してみてください:明示的にPATH環境変数を設定する
{
"mcpServers": {
"filesystem": {
"command": "/Users/username/.nvm/versions/node/v20.5.0/bin/npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/username/Downloads"],
"env": {
"PATH": "/Users/username/.nvm/versions/node/v20.5.0/bin:/usr/local/bin:/usr/bin:/bin"
}
}
}
}
重要なポイント:
Node.jsのパスだけだと、npxが内部でshなどのシステムコマンドを呼び出す際に
「spawn sh ENOENT」エラーが発生します
システムコマンドのパスも含めることで、npxの内部処理が正常に動作します
これはmacOSでのMCP環境変数問題の定番解決法です。
お、知らない情報が。
そのように設定してみる。
{
"mcpServers": {
"filesystem": {
"command": "/Users/username/.nvm/versions/node/v20.5.0/bin/npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Downloads"
],
"env": {
"PATH": "/Users/username/.nvm/versions/node/v20.5.0/bin/:/bin/"
}
}
}
}
これでどうだ...!
お試し依頼。
を!?
なんだ、「使用したいと思っています」って。
まあいいや。
「一度だけ許可」をクリックしました。
...
できたーーーーー!!!!!!
"/Users/username/Downloads" 配下に以下のテキストが生成されていました。
最終的な解決策
- npxコマンドの絶対パスを使用
- 環境変数PATHを明示的に設定
これらの対応により、無事にファイルシステムへのアクセスが可能になりました!
おわりに
といった感じの奮闘を経て、無事にMCPデビューを果たせました。
- 公式ドキュメントの設定だけでは動かないことがある
- npxのパスや環境変数の設定が重要
- Claude自身にMCPのドキュメントを読み込ませて相談するという手法が有効
そして、
- 諦めずにプロンプトエンジニアリングで粘り強く解決策を探ることが大切
ですかね。
ググっても中々有効な解決策が出てこないのは、このようにAIに相談して解決し、個別環境起因の問題の話が個人対AIの中で完結しているからなのでは説が出てきましたね。
とりあえず解決して動けばいいので、「みんなもAIに相談して解決しているんだろうな〜」と思ってしまい、結果的にこのような解決策ネタが表に情報として出てこなくなっている可能性もあるかもしれませんね。
以上です。