WSLでClaude MCPが動かない！「No MCP servers configured」を解決するまでの奮闘記【2025年6月版】

# WSLでClaude MCPが動かない！「No MCP servers configured」を解決するまでの奮闘記【2025年6月版】

## はじめに

こんにちは！最近Claude CodeのMCP（Model Context Protocol）機能にハマってる者です。

でもね、WSL環境で使おうとしたら「No MCP servers configured」ってエラーが出て、めちゃくちゃハマったんですよ...😅

特に、Windowsのディレクトリ（`/mnt/c/`）から実行すると必ずこのエラーが出る。しかも、VS Code・Cursor・Windsurfどれを使ってもIDE統合が動かない！

今回は、この問題を解決するまでの道のりと、最終的にたどり着いた解決方法をシェアします。

## 動作環境

- Windows 11 + WSL2 (Ubuntu)
- Claude Code v1.0.24
- Node.js v22.16.0 (nvm使用)
- VS Code / Cursor / Windsurf

## そもそも何が問題だったの？

まず、こんな症状でした：

```bash
# WSLのホームディレクトリでは正常に動く
cirkit@Cirkit:~$ claude mcp list
brave-search: npx -y @modelcontextprotocol/server-brave-search
taskmaster-ai: npx -y --package=task-master-ai task-master-ai
# ... 他のMCPサーバーもちゃんと表示される✨

# でも、Windowsのファイルシステムから実行すると...
cirkit@Cirkit:/mnt/c/Users/sakan$ claude mcp list
No MCP servers configured. Use `claude mcp add` to add a server.
# えっ...なんで！？😱
```

さらに、`claude`コマンドで起動して`/mcp`を実行しても、何も認識してくれない...

## 原因を突き止めた！

いろいろ調べた結果、Claude Codeには**3つの設定スコープ**があることが判明しました：

1. **Local（ローカル）** - デフォルト設定
   - 現在のプロジェクト/セッションのみで有効
   - 一時的な設定

2. **Project（プロジェクト）** 
   - `.claude/settings.json`に保存
   - チームで共有できる

3. **User（ユーザー）** - これが重要！
   - `~/.claude/settings.json`に保存
   - **全プロジェクトで使える**

つまり、デフォルトの「Local」スコープで設定してたから、ディレクトリを変えると設定が消えてたんです！

## 解決方法（完全版）

### ステップ1: 既存の設定を全部削除

まずは一旦クリーンな状態にします：

```bash
# 既存のMCPサーバーを削除
for server in brave-search taskmaster-ai vercel notion railway-mcp playwright context7 mem0; do
    claude mcp remove "$server"
done
```

### ステップ2: Userスコープで再設定

ここがポイント！`--scope=user`を必ず付けます：

```bash
# 基本的なMCPサーバーを追加
claude mcp add --scope=user brave-search npx @modelcontextprotocol/server-brave-search
claude mcp add --scope=user taskmaster-ai npx task-master-ai
claude mcp add --scope=user vercel npx github:nganiet/mcp-vercel
claude mcp add --scope=user notion npx @notionhq/notion-mcp-server
claude mcp add --scope=user playwright npx @playwright/mcp@latest

# SSEタイプのサーバー
claude mcp add --scope=user --transport=sse context7 https://mcp.context7.com/sse
claude mcp add --scope=user --transport=sse mem0 http://localhost:8080/sse

# Railway MCPは特殊な引数があるので注意
claude mcp add --scope=user railway-mcp bash -c "npx @smithery/cli@latest run @jason-tan-swe/railway-mcp --key YOUR_KEY --profile YOUR_PROFILE"
```

### ステップ3: APIキーが必要なサーバーの設定

一部のMCPサーバーはAPIキーが必要です。環境変数で渡すか、ラッパースクリプトを作るのがおすすめ：

```bash
# 例：Brave Search用のラッパースクリプト
cat > ~/mcp-wrappers/brave-search.sh << 'EOF'
#!/bin/bash
export BRAVE_API_KEY="your-api-key-here"
exec npx -y @modelcontextprotocol/server-brave-search "$@"
EOF
chmod +x ~/mcp-wrappers/brave-search.sh

# ラッパーを使って追加
claude mcp add --scope=user brave-search ~/mcp-wrappers/brave-search.sh
```

## mem0のちょっとした罠

mem0はSSEサーバーなので、別途起動が必要です。しかも、ポート設定がちょっとややこしい...

```bash
# mem0サーバーを起動（ポート8080で統一）
cd /mnt/c/Users/sakan/develop/mem0-mcp
uv run python main.py --port 8080
```

管理を楽にするスクリプトも作っちゃいました：

```bash
# 起動
~/mem0-mcp-manager.sh start

# 状態確認
~/mem0-mcp-manager.sh status

# ログ確認
~/mem0-mcp-manager.sh logs
```

## IDE統合の修正

### VS Codeのcodeコマンド問題

なんと、Cursorをインストールすると`code`コマンドがCursorに乗っ取られることが...😵

修正方法：

```bash
# 正しいパスのラッパーを作成
mkdir -p ~/bin
cat > ~/bin/code << 'EOF'
#!/bin/bash
exec "/mnt/c/Users/sakan/AppData/Local/Programs/Microsoft VS Code/bin/code" "$@"
EOF
chmod +x ~/bin/code

# PATHの優先順位を変更（.bashrcに追加）
export PATH="$HOME/bin:$PATH"
```

### IDE統合の使い方

各エディタの統合ターミナルで`claude`を実行すると、自動的に拡張機能がインストールされます：

1. エディタを起動
   ```bash
   code .      # VS Code
   cursor .    # Cursor  
   windsurf .  # Windsurf
   ```

2. 統合ターミナルで実行
   ```bash
   claude
   ```

3. 初回は拡張機能が自動インストールされる
4. エディタを再起動
5. **Ctrl+Esc**（Mac: Cmd+Esc）でClaude Codeが起動！

## トラブルシューティング

### 「まだMCPが認識されない...」って時は

```bash
# 設定を確認
claude mcp list

# 特定のサーバーの詳細（スコープも表示される）
claude mcp get brave-search
```

「Scope: Local」って表示されたら、それが原因です！

### Playwrightがエラーになる場合

複雑な設定は逆にトラブルの元でした。シンプルに：

```bash
claude mcp add --scope=user playwright npx @playwright/mcp@latest
```

## まとめ

結局のところ、**Userスコープで設定する**ことが最重要でした！

これで、どのディレクトリからでもMCPが使えるようになって、開発効率が爆上がりです🚀

同じ問題で悩んでる方の参考になれば嬉しいです！

## おまけ：便利なエイリアス

`.bashrc`に追加しておくと便利：

```bash
# MCP状態確認
alias mcp-check="claude mcp list"

# Claude環境セットアップ
claude-env() {
    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
    export CLAUDECODE=1
    export CLAUDE_CODE_ENTRYPOINT=cli
    echo "Claude環境をロードしました！"
}
```

## 参考リンク

- [Claude Code公式ドキュメント](https://docs.anthropic.com/en/docs/claude-code)
- [Model Context Protocol (MCP)](https://modelcontextprotocol.io/)

何か質問があれば、コメント欄でお気軽にどうぞ！一緒に解決しましょう💪