0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

シンプルな解決策でClaudeデスクトップMCPサーバー構成の重大な問題を解決した方法

Posted at

技術的な問題に直面して完全に困惑したものの、解決策が驚くほど単純だったという経験はありませんか?最近、私はMacでClaudeデスクトップのMCPファイルシステムサーバーを設定する際に、まさにこのような状況に遭遇しました。

課題:謎の構成失敗

mcp-server-sqliteuvxは完璧に動作したのですが、claude_desktop_config.jsonを使用してファイルシステムサーバーを構成しようとした際に障害に直面しました。npxnodeを直接使用する両方の試みが、私を困惑させる予期せぬエラーを引き起こしたのです。

最初の試み: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内のnpxnodeの両方の構成がエラーや混乱なく完璧に動作し始め、MCPを通じてファイルシステムにシームレスにアクセスできるようになりました。

この経験から学べること

コマンドがターミナルでは完璧に動作するのに、別のアプリケーションから起動すると失敗するような状況に遭遇した場合は、ランタイム環境におけるバージョンの競合を確認することを検討してみてください。

時には最も強力な修正は最もシンプルなものです:開発ツールの古いバージョンをクリーンアップすることです。

あなたも同様のソフトウェアバージョンの競合による幻のような問題を経験したことはありますか?下のコメントで、あなたのトラブルシューティングの成功例についてお聞かせください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?