Claude DesktopのMCP連携で「Server disconnected」エラーに3時間悩んだ結果、原因はnpm権限だった。sudo chown -R $(whoami) ~/.npmの1行で解決。MCPユーザーの99%が踏む地雷の回避方法を完全解説。
昨日の深夜2時。Claude DesktopでMCP(Model Context Protocol)を設定しようとして、こんなエラーに遭遇した。
npm error Your cache folder contains root-owned files
Server disconnected
「は?さっきまで動いてたじゃん...」
結論から言うと、npmの権限問題だった。しかも、これMCP使ってる人の99%が一度は踏む地雷らしい。
【この記事で解決できること】
✅ MCP接続エラーを最速で解決
✅ 二度と同じエラーで悩まない設定方法
✅ 実際に動作確認済みの手順
なぜMCP接続でnpm権限エラーが起きるのか
MCPサーバーは裏でNode.jsプロセスとして動いている。で、こいつがnpmのキャッシュディレクトリにアクセスしようとすると...
「お前、権限ないやん」
ってなるわけ。特に過去に一度でも sudo npm install した経験がある人は、ほぼ確実にこの問題にぶち当たる。
3分で解決!魔法のコマンド
細かい説明は後にして、まずは解決方法。ターミナルで以下を実行するだけ:
# Step 1: npm権限を自分のものにする
sudo chown -R $(whoami) ~/.npm
# Step 2: キャッシュをクリア
npm cache clean --force
# Step 3: Claude Desktopを再起動
これだけ。マジで。
僕の場合、これで**「Server disconnected」エラーが一発で解消**した。
そもそもMCP連携って何がすごいの?
ちょっと話を戻そう。MCPは2024年11月にAnthropicが公開した、AIアシスタントと外部ツールを繋ぐプロトコル。
簡単に言うと、Claude Desktopから直接データベースとかAPIを叩けるようになるやつ。
例えば:
- microCMSの記事を直接Claude から投稿
- GitHubのコードを参照しながら質問
- Slackの過去ログを検索して回答
これがローカルで動くってのがヤバい。
正しいMCP設定手順(エラーを避ける方法)
1. 事前準備
# Node.jsが入ってるか確認
node --version # v18以上推奨
npm --version # v9以上推奨
2. 設定ファイルの作成
Claude Desktopの設定ファイルはここにある:
~/Library/Application Support/Claude/claude_desktop_config.json
こんな感じで書く:
{
"mcpServers": {
"microcms": {
"command": "node",
"args": ["/path/to/mcp-server-microcms/dist/index.js"],
"env": {
"MICROCMS_API_KEY": "your-api-key",
"MICROCMS_SERVICE_DOMAIN": "your-domain"
}
}
}
}
3. 権限の罠を避ける
絶対にやっちゃダメなこと:
# ❌ これやると後で泣く
sudo npm install -g @modelcontextprotocol/server-microcms
正しいやり方:
# ✅ sudoなしでインストール
npm install -g @modelcontextprotocol/server-microcms
もしsudoが必要って言われたら、まず権限を修正してから:
# npmのグローバルディレクトリを変更
npm config set prefix ~/.npm-global
export PATH=~/.npm-global/bin:$PATH
それでもエラーが出たときの対処法
エラー1: Could not attach to MCP server
サーバーが起動してない可能性大。確認方法:
# プロセスを確認
ps aux | grep mcp
# 何も表示されなかったら起動してない
エラー2: Server transport closed unexpectedly
設定ファイルのJSON構文ミスかも。VSCodeとかで開いて、赤い波線がないか確認。
あと、パスが間違ってることも多い:
# 正しいパスか確認
ls -la /path/to/mcp-server-microcms/dist/index.js
エラー3: EACCES: permission denied
これが今回のメインテーマ。もう一度権限修正:
# 徹底的に権限を修正
sudo chown -R $(whoami) ~/.npm
sudo chown -R $(whoami) ~/Library/Application\ Support/Claude
sudo chown -R $(whoami) ~/.config
実際に使ってみた感想
MCP連携が動き出すと、マジで世界が変わる。
今までは:
1. ブラウザでmicroCMS開く
2. 記事書く
3. APIで投稿
これが:
1. Claude「記事書いて投稿しといたよ」
2. 終わり
作業時間が1/10になった。冗談抜きで。
トラブル防止のための日常メンテナンス
権限問題は一度解決しても、OSアップデートとかで再発することがある。
予防策として、週1でこれやっとくと安心:
# 権限チェックスクリプト
echo "Checking npm permissions..."
ls -la ~/.npm | head -5
echo "Checking Claude config permissions..."
ls -la ~/Library/Application\ Support/Claude/
もし root って表示されたら、すぐに chown で修正。
まとめ:権限エラーは怖くない
Claude Desktop のMCP連携でハマるポイントは、ほぼnpm権限問題一択。
でも解決方法はシンプル:
sudo chown -R $(whoami) ~/.npmnpm cache clean --force- Claude Desktop再起動
これさえ覚えとけば、深夜2時に泣きながらググる必要はない。
あと、sudo npm は絶対使わない。これ鉄則。
MCP連携が動き出したら、きっと「今までの苦労は何だったんだ...」って思うはず。実際、僕がそうだった。
さあ、エラーを恐れずMCPの世界へ飛び込もう。大丈夫、権限問題なんて3分で解決できるから。
おまけ:緊急時の最終手段
どうしても解決しない時の核オプション:
# 全部消してやり直す(データは消えないから安心)
rm -rf ~/.npm
rm -rf node_modules
npm cache clean --force
npm install
これで99.9%は解決する。残りの0.1%は...Anthropicのサポートに聞いてくれ(笑)
🌟 お知らせ
この記事が役に立ったら、ぜひフォローやいいねをお願いします!
🐦 X: @nabe_AI_dev
AI開発の最新情報や技術Tips、開発の進捗などを定期的にツイートしています。
📝 ブログ: AI Developer Blog
AIツール開発に関する詳細な記事や実装事例を公開中です。