# Context7 MCP Windows接続問題の解決ガイド
## 問題の概要
Windows環境でClaude CodeからContext7 MCPサーバーに接続できない問題が発生。エラーメッセージは「Context7は設定されていますが、現在接続されていません」と表示される。
## 発生環境
– OS: Windows 10/11
– Claude Code CLI
## エラーメッセージ
“`
⚠ Found invalid settings files. They will be ignored. Run /doctor for details.
[Warning] [context7] mcpServers.context7: Windows requires ‘cmd /c’ wrapper to execute npx
“`
## 根本原因
### 1. Windows固有のコマンド実行問題
Windowsでは`npx`コマンドを直接実行できず、`cmd /c`ラッパーが必要。これはWindows特有の制約で、コマンドプロンプト経由でnpxを実行する必要がある。
### 2. 設定ファイルの競合
複数の設定ファイルが存在し、優先順位や記述方法の違いにより競合が発生:
– `.mcp.json` (プロジェクト共有設定)
– `.claude\settings.local.json` (ローカル設定)
– `~/.claude.json` (ユーザー設定)
### 3. spawn ENOENTエラー
WindowsのPATH環境変数に`C:\Windows\System32`が含まれていない場合、Node.jsのspawnコマンドが失敗する。
## 解決手順
### ステップ1: .mcp.jsonの修正
**修正前:**
“`json
{
“mcpServers”: {
“context7”: {
“type”: “stdio”,
“command”: “npx”,
“args”: [
“-y”,
“@upstash/context7-mcp”
],
“env”: {}
}
}
}
“`
**修正後:**
“`json
{
“mcpServers”: {
“context7”: {
“type”: “stdio”,
“command”: “cmd”,
“args”: [
“/c”,
“npx”,
“-y”,
“@upstash/context7-mcp”
],
“env”: {}
}
}
}
“`
### ステップ2: 競合ファイルの削除
“`bash
# 競合する設定ファイルを削除
rm “E:\python\godot\rta\.claude\settings.local.json”
“`
### ステップ3: Claude Codeの再起動
すべてのClaude Codeウィンドウを閉じて、完全に再起動する。
## Windows環境での注意点
### 1. PATH環境変数の確認
`C:\Windows\System32`がPATHに含まれているか確認:
“`bash
echo %PATH% | findstr System32
“`
含まれていない場合は追加:
1. システムの詳細設定 → 環境変数
2. システム環境変数のPathを編集
3. `C:\Windows\System32`を追加
### 2. 代替ソリューション
`cmd /c`ラッパーが機能しない場合の代替案:
**bunxを使用:**
“`json
{
“mcpServers”: {
“context7”: {
“command”: “bunx”,
“args”: [“@upstash/context7-mcp”]
}
}
}
“`
**バッチファイルを作成:**
1. `context7-mcp.bat`を作成:
“`batch
@echo off
npx -y @upstash/context7-mcp
“`
2. 設定で直接指定:
“`json
{
“mcpServers”: {
“context7”: {
“command”: “C:\\path\\to\\context7-mcp.bat”
}
}
}
“`
## 設定ファイルの優先順位
Claude Codeは以下の順序で設定ファイルを読み込む:
1. `.mcp.json` (プロジェクト設定)
2. `.claude\settings.local.json` (プロジェクト内のローカル設定)
3. `~/.claude.json` (ユーザーグローバル設定)
競合を避けるため、Context7の設定は一つのファイルにのみ記述すること。
## デバッグ方法
### ログファイルの確認
Windows:
“`
%APPDATA%\Claude\logs\mcp.log
%APPDATA%\Claude\logs\mcp-server-context7.log
“`
### 手動テスト
“`bash
# Context7が正しくインストールされているか確認
npm list -g | findstr context7
# 手動で実行テスト
cmd /c npx -y @upstash/context7-mcp
“`
## よくある問題と対策
### 問題1: “Not connected”エラー
**原因:** サーバープロセスは起動するが接続が確立されない
**対策:** `cmd /c`ラッパーを追加し、Claude Codeを再起動
### 問題2: spawn ENOENT
**原因:** WindowsがnpxコマンドのPATHを解決できない
**対策:** System32をPATHに追加、またはフルパスでnpxを指定
### 問題3: 設定ファイルの競合
**原因:** 複数の設定ファイルで異なる設定が記述されている
**対策:** 不要な設定ファイルを削除し、一つのファイルに統一
## 今後の参考情報
### Claude Code固有の問題
– Claude Desktop Appでは動作するが、Claude Code CLIでは失敗することがある
– これはClaude CodeのMCP実装に関する既知の問題
– GitHub Issue #4158で報告されているバグに注意
### ベストプラクティス
1. Windows環境では常に`cmd /c`ラッパーを使用
2. 設定は`.mcp.json`に統一することを推奨
3. 変更後は必ずClaude Codeを再起動
4. ログファイルを確認して詳細なエラー情報を取得
### 関連リソース
– [Model Context Protocol公式ドキュメント](https://modelcontextprotocol.io/)
– [Context7 GitHub](https://github.com/upstash/context7)
– [Claude Code MCP設定ガイド](https://docs.anthropic.com/en/docs/claude-code/mcp)
## まとめ
Windows環境でのContext7 MCP接続問題は、主に`cmd /c`ラッパーの欠如と設定ファイルの競合が原因。`.mcp.json`にWindows対応の設定を記述し、競合ファイルを削除することで解決可能。この問題はWindows特有のコマンド実行制約に起因するため、Unix系OSでは発生しない。