技術的な問題に直面して完全に困惑したものの、解決策が驚くほど単純だったという経験はありませんか?最近、私はMacでClaudeデスクトップのMCPファイルシステムサーバーを設定する際に、まさにこのような状況に遭遇しました。
課題:謎の構成失敗
mcp-server-sqlite
とuvx
は完璧に動作したのですが、claude_desktop_config.json
を使用してファイルシステムサーバーを構成しようとした際に障害に直面しました。npx
とnode
を直接使用する両方の試みが、私を困惑させる予期せぬエラーを引き起こしたのです。
最初の試み:NPXアプローチ
最初の構成は十分にシンプルに見えました:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/xxx/Desktop"
]
}
}
}
しかし、ログには奇妙なエラーが表示されていました:
==> /Users/xxx/Library/Logs/Claude/mcp-server-filesystem.log <==
command not found: /Users/xxx/Desktop
不思議なことに、ターミナルで同じコマンドを直接実行すると完璧に動作しました:
npx @modelcontextprotocol/server-filesystem '/Users/xxx/Desktop'
# 出力: Secure MCP Filesystem Server running on stdio... Allowed directories: [...]
二度目の試み:Node直接アプローチ
次のアプローチでは、Node.jsを直接使用してみました:
{
"mcpServers": {
"filesystem": {
"command": "node",
"args": [
"/usr/local/lib/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js",
"/Users/xxx/Desktop"
]
}
}
}
しかし、これは構文エラーを引き起こしました:
==> /Users/xxx/Library/Logs/Claude/mcp-server-filesystem.log <==
/usr/local/lib/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:2
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
^
SyntaxError: Unexpected token {
at Module._compile (internal/modules/cjs/loader.js:723:23)
...
ここでも、ターミナルで全く同じコマンドを実行すると問題なく動作しました。
この時点で、私は途方に暮れていました。パスの問題でしょうか?構成ファイルでnode
へのフルパス(例えば、/usr/local/bin/node
)を指定してみたところ、一時的に機能するように見えましたが、それは脆弱な回避策であり、本当の解決策ではありませんでした。
予想外の解決策:バージョンの競合
かなりのトラブルシューティングの末、根本原因を発見しました:システムに潜む古いNode.jsのバージョンでした。
私のデフォルトのターミナルNodeは最新でしたが、Claudeが構成ファイルを通じてサーバーを起動しようとすると、古いバージョン(おそらくnvm
によって管理されていた)が何らかの形で干渉していたのです。
状況を救った単純な修正
解決策は驚くほど簡単でした:古いNode.jsのインストールを削除し、システムに最新バージョンのみが残るようにしました。
結果はどうだったでしょうか?claude_desktop_config.json
内のnpx
とnode
の両方の構成がエラーや混乱なく完璧に動作し始め、MCPを通じてファイルシステムにシームレスにアクセスできるようになりました。
この経験から学べること
コマンドがターミナルでは完璧に動作するのに、別のアプリケーションから起動すると失敗するような状況に遭遇した場合は、ランタイム環境におけるバージョンの競合を確認することを検討してみてください。
時には最も強力な修正は最もシンプルなものです:開発ツールの古いバージョンをクリーンアップすることです。
あなたも同様のソフトウェアバージョンの競合による幻のような問題を経験したことはありますか?下のコメントで、あなたのトラブルシューティングの成功例についてお聞かせください。