WindowsでOpenCode?を使ってMCP(Model Context Protocol)連携環境を構築しようとした際、いくつかの設定エラーで躓きました。本記事では、実際に遭遇したトラブルシューティングを中心に、Windows環境でのOpenCode? + MCP設定手順を解説します。
WSL不要: Windows上で直接動作 MCP設定の再利用: 既存のMCP設定をほぼそのまま利用可能 環境変数共有: Windows環境変数をそのまま参照 tmux不要: Windows CMD/PowerShell?で直接利用可能
Claude CodeはWSL環境が必要 WSL上でMCPサーバーを再設定する必要 環境変数の設定が複雑 ファイルパスの変換が必要
OpenCode?はGo言語で作成されているため、まずGo環境を確認します。 Go言語がインストール済みかチェック go version インストールされていない場合 winget install GoLang?.Go パス確認(重要) echo $GOPATH echo $GOROOT
MINGW64環境で設定 export ANTHROPIC_API_KEY_MULTI_AGENT="sk-ant-api03-xxxxx" 設定確認 echo $ANTHROPIC_API_KEY_MULTI_AGENT
OpenCode?をインストール go install github.com/opencode-ai/opencode@latest インストール確認 opencode -v パスが通っていない場合 export PATH=$PATH:$(go env GOPATH)/bin
失敗例: Windowsパスのエスケープエラー { "mcpServers": { "filesystem": { "args": ["C:\Users\kh\Desktop"] // エラー! } } } エラーメッセージ: invalid character 'o' in string escape code 修正方法: スラッシュ記法を使用 { "mcpServers": { "filesystem": { "args": ["C:/Users/kh/Desktop"] // 正解 } } }
失敗例: シングルクォートHereDocument?の使用 cat > ~/.opencode.json << 'EOF' # シングルクォートでは展開されない { "apiKey": "$(echo $ANTHROPIC_API_KEY_MULTI_AGENT)" # 文字列として扱われる } EOF 修正方法: シングルクォートを除去 cat > ~/.opencode.json << EOF # 環境変数が実際に展開される { "apiKey": "$(echo $ANTHROPIC_API_KEY_MULTI_AGENT)" } EOF
失敗例: オブジェクト形式での設定 "env": { "QDRANT_URL": "http://localhost:6333" } エラーメッセージ: expected type 'string', got unconvertible type 'map[string]interface' 修正方法: 配列形式を使用 "env": [ "QDRANT_URL=http://localhost:6333" ]
以下は実際にWindows環境で動作確認できた設定例です: cat > ~/.opencode.json << EOF { "data": { "directory": ".opencode" }, "providers": { "anthropic": { "apiKey": "$(echo $ANTHROPIC_API_KEY_MULTI_AGENT)", "disabled": false } }, "agents": { "coder": { "model": "claude-3.7-sonnet", "maxTokens": 5000 } }, "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "C:/Users/kh/Desktop", "C:/Users/kh/prj/multiagent" ] }, "qdrant": { "command": "uvx", "args": [ "mcp-server-qdrant" ], "env": [ "QDRANT_URL=http://localhost:6333", "COLLECTION_NAME=khayashi_knowledge", "EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2" ] } }, "shell": { "path": "bash", "args": ["-l"] }, "autoCompact": true } EOF
opencode
2025/06/15 10:06:24 WARN Ripgrep (rg) not found in $PATH. Some features might be limited or slower. 2025/06/15 10:06:24 WARN FZF not found in $PATH. Some features might be limited or slower. この警告は正常で、基本機能には影響ありません。
起動後、以下のようなPermission Requiredダイアログが表示されれば、MCP連携が正常に動作しています: Permission Required Tool: qdrant qdrant-find Allow (a) Allow for session (s) Deny (d)
原因: Goのbinディレクトリがパスに含まれていない 解決方法: Go環境確認 go env GOPATH パス追加 export PATH=$PATH:$(go env GOPATH)/bin 永続化(.bashrcに追記) echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc
原因: JSON構文エラー 解決方法: JSON構文チェック cat ~/.opencode.json | python -m json.tool または cat ~/.opencode.json | jq .
原因: APIキー認証エラー 解決方法: 環境変数確認 echo $ANTHROPIC_API_KEY_MULTI_AGENT 設定ファイル内でのAPIキー確認 cat ~/.opencode.json | grep apiKey
原因: MCPサーバーの初期化処理 対策: 正常な動作のため、1-2分程度待機
この設定により、以下が確認できました:
Claude 3.7 Sonnetとの通信 Qdrant長期記憶への接続 ファイルシステムアクセス 基本的なコード生成
実際に以下のファイルが自動生成されました: scripts/ ├── github_init.py # GitHub?初期化スクリプト ├── monitor.py # 監視システム └── tmux_session.py # セッション管理
Go環境の正しい設定 - PATH設定の確認 JSON設定の注意点 - パス記法と環境変数展開 MCP環境変数形式 - 配列形式での設定 段階的なトラブルシューティング - エラーメッセージの活用
WSL不要でネイティブ動作 既存の環境変数をそのまま利用 Claude Codeより設定が簡単
Windows上でのOpenCode? + MCP環境構築は、適切な設定を行えば非常にスムーズに動作します。特にJSONの構文エラーと環境変数の扱いに注意すれば、初回でも成功する可能性が高いです。
OpenCode公式リポジトリ MCP Server Registry Anthropic Claude API Qdrant Vector Database