はじめに

WindowsでOpenCode?を使ってMCP(Model Context Protocol)連携環境を構築しようとした際、いくつかの設定エラーで躓きました。本記事では、実際に遭遇したトラブルシューティングを中心に、Windows環境でのOpenCode? + MCP設定手順を解説します。

なぜOpenCode?が良いのか

Claude Codeとの比較

WSL不要: Windows上で直接動作 MCP設定の再利用: 既存のMCP設定をほぼそのまま利用可能 環境変数共有: Windows環境変数をそのまま参照 tmux不要: Windows CMD/PowerShell?で直接利用可能

従来の課題

Claude CodeはWSL環境が必要 WSL上でMCPサーバーを再設定する必要 環境変数の設定が複雑 ファイルパスの変換が必要

環境構築手順

前提条件の確認

* Go言語のインストール確認

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?インストール

* インストール手順

OpenCode?をインストール go install github.com/opencode-ai/opencode@latest インストール確認 opencode -v パスが通っていない場合 export PATH=$PATH:$(go env GOPATH)/bin

設定ファイルでの失敗パターン集

* パターン1: JSON構文エラー

失敗例: Windowsパスのエスケープエラー { "mcpServers": { "filesystem": { "args": ["C:\Users\kh\Desktop"] // エラー! } } } エラーメッセージ: invalid character 'o' in string escape code 修正方法: スラッシュ記法を使用 { "mcpServers": { "filesystem": { "args": ["C:/Users/kh/Desktop"] // 正解 } } }

* パターン2: 環境変数展開エラー

失敗例: シングルクォート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

* パターン3: MCP環境変数設定エラー

失敗例: オブジェクト形式での設定 "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. この警告は正常で、基本機能には影響ありません。

* MCP接続確認

起動後、以下のようなPermission Requiredダイアログが表示されれば、MCP連携が正常に動作しています: Permission Required Tool: qdrant qdrant-find Allow (a) Allow for session (s) Deny (d)

よくあるエラーと解決方法

エラー1: opencode: command not found

原因: Goのbinディレクトリがパスに含まれていない 解決方法: Go環境確認 go env GOPATH パス追加 export PATH=$PATH:$(go env GOPATH)/bin 永続化(.bashrcに追記) echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc

エラー2: failed to read config: While parsing config

原因: JSON構文エラー 解決方法: JSON構文チェック cat ~/.opencode.json | python -m json.tool または cat ~/.opencode.json | jq .

エラー3: 401 Unauthorized

原因: APIキー認証エラー 解決方法: 環境変数確認 echo $ANTHROPIC_API_KEY_MULTI_AGENT 設定ファイル内でのAPIキー確認 cat ~/.opencode.json | grep apiKey

エラー4: 起動が非常に遅い

原因: MCPサーバーの初期化処理 対策: 正常な動作のため、1-2分程度待機

実際の動作結果

この設定により、以下が確認できました:

成功した機能

Claude 3.7 Sonnetとの通信 Qdrant長期記憶への接続 ファイルシステムアクセス 基本的なコード生成

生成されたファイル例

実際に以下のファイルが自動生成されました: scripts/ ├── github_init.py # GitHub?初期化スクリプト ├── monitor.py # 監視システム └── tmux_session.py # セッション管理

まとめ

成功のポイント

Go環境の正しい設定 - PATH設定の確認 JSON設定の注意点 - パス記法と環境変数展開 MCP環境変数形式 - 配列形式での設定 段階的なトラブルシューティング - エラーメッセージの活用

Windows環境での利点

WSL不要でネイティブ動作 既存の環境変数をそのまま利用 Claude Codeより設定が簡単

Windows上でのOpenCode? + MCP環境構築は、適切な設定を行えば非常にスムーズに動作します。特にJSONの構文エラーと環境変数の扱いに注意すれば、初回でも成功する可能性が高いです。

参考リンク

OpenCode公式リポジトリ MCP Server Registry Anthropic Claude API Qdrant Vector Database

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS