Windows上でOpenCode + MCP連携環境構築 - 実際のハマりポイントと解決法
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* 目次 [#ne5c8e39]
#contents
* Windows上でOpenCode + MCP連携環境構築 - 実際のハマりポ...
** はじめに [#m093de59]
WindowsでOpenCodeを使ってMCP(Model Context Protocol)連...
** なぜOpenCodeが良いのか [#n0fd8c6c]
*** Claude Codeとの比較 [#lc0e3443]
- **WSL不要**: Windows上で直接動作
- **MCP設定の再利用**: 既存のMCP設定をほぼそのまま利用可能
- **環境変数共有**: Windows環境変数をそのまま参照
- **tmux不要**: Windows CMD/PowerShellで直接利用可能
*** 従来の課題 [#l6f50a0f]
- Claude CodeはWSL環境が必要
- WSL上でMCPサーバーを再設定する必要
- 環境変数の設定が複雑
- ファイルパスの変換が必要
** 環境構築手順 [#aa69966f]
*** 前提条件の確認 [#o87e6993]
**** Go言語のインストール確認 [#i8ba0105]
OpenCodeはGo言語で作成されているため、まずGo環境を確認し...
# Go言語がインストール済みかチェック
go version
# インストールされていない場合
winget install GoLang.Go
# パス確認(重要)
echo $GOPATH
echo $GOROOT
**** 環境変数の事前設定 [#a2d6bd51]
# MINGW64環境で設定
export ANTHROPIC_API_KEY_MULTI_AGENT="sk-ant-api03-xxxxx"
# 設定確認
echo $ANTHROPIC_API_KEY_MULTI_AGENT
*** OpenCodeインストール [#ea9b0b1f]
**** インストール手順 [#bc44b076]
# OpenCodeをインストール
go install github.com/opencode-ai/opencode@latest
# インストール確認
opencode -v
# パスが通っていない場合
export PATH=$PATH:$(go env GOPATH)/bin
*** 設定ファイルでの失敗パターン集 [#lca6348b]
**** パターン1: JSON構文エラー [#hfaec2c4]
**失敗例**: Windowsパスのエスケープエラー [#hd57a890]
{
"mcpServers": {
"filesystem": {
"args": ["C:\Users\kh\Desktop"] // エラー!
}
}
}
**エラーメッセージ**: `invalid character 'o' in string es...
**修正方法**: スラッシュ記法を使用 [#a4cdb5e6]
{
"mcpServers": {
"filesystem": {
"args": ["C:/Users/kh/Desktop"] // 正解
}
}
}
**** パターン2: 環境変数展開エラー [#y14277de]
**失敗例**: シングルクォートHereDocumentの使用 [#q5ba38a4]
cat > ~/.opencode.json << 'EOF' # シングルクォートでは...
{
"apiKey": "$(echo $ANTHROPIC_API_KEY_MULTI_AGENT)" # ...
}
EOF
**修正方法**: シングルクォートを除去 [#a1ffc8b7]
cat > ~/.opencode.json << EOF # 環境変数が実際に展開さ...
{
"apiKey": "$(echo $ANTHROPIC_API_KEY_MULTI_AGENT)"
}
EOF
**** パターン3: MCP環境変数設定エラー [#g5c2aa84]
**失敗例**: オブジェクト形式での設定 [#tf20d0fa]
"env": {
"QDRANT_URL": "http://localhost:6333"
}
**エラーメッセージ**: `expected type 'string', got unconv...
**修正方法**: 配列形式を使用 [#tc04bc2a]
"env": [
"QDRANT_URL=http://localhost:6333"
]
*** 動作確認済み設定ファイル [#d9da7caa]
以下は実際に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-MiniL...
]
}
},
"shell": {
"path": "bash",
"args": ["-l"]
},
"autoCompact": true
}
EOF
** 起動とトラブルシューティング [#l1dc98f7]
*** 正常起動の確認 [#j782848c]
**** 起動コマンド [#sbb09354]
opencode
**** 正常な起動メッセージ [#mb4f6f31]
2025/06/15 10:06:24 WARN Ripgrep (rg) not found in $PATH...
2025/06/15 10:06:24 WARN FZF not found in $PATH. Some fe...
この警告は正常で、基本機能には影響ありません。
**** MCP接続確認 [#wd145e23]
起動後、以下のようなPermission Requiredダイアログが表示さ...
Permission Required
Tool: qdrant qdrant-find
Allow (a) Allow for session (s) Deny (d)
** よくあるエラーと解決方法 [#vd3d62fd]
*** エラー1: `opencode: command not found` [#jfbd3845]
**原因**: Goのbinディレクトリがパスに含まれていない [#q6f...
**解決方法**: [#uf5f58e9]
# 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構文エラー [#s0cab86d]
**解決方法**: [#w6c9ff93]
# JSON構文チェック
cat ~/.opencode.json | python -m json.tool
# または
cat ~/.opencode.json | jq .
*** エラー3: `401 Unauthorized` [#v3dad331]
**原因**: APIキー認証エラー [#e7c7bd40]
**解決方法**: [#ha803982]
# 環境変数確認
echo $ANTHROPIC_API_KEY_MULTI_AGENT
# 設定ファイル内でのAPIキー確認
cat ~/.opencode.json | grep apiKey
*** エラー4: 起動が非常に遅い [#m741424b]
**原因**: MCPサーバーの初期化処理 [#m2e0842d]
**対策**: 正常な動作のため、1-2分程度待機 [#tc4d8516]
** 実際の動作結果 [#d5304224]
この設定により、以下が確認できました:
*** 成功した機能 [#mbc83a24]
- Claude 3.7 Sonnetとの通信
- Qdrant長期記憶への接続
- ファイルシステムアクセス
- 基本的なコード生成
*** 生成されたファイル例 [#q177216a]
実際に以下のファイルが自動生成されました:
scripts/
├── github_init.py # GitHub初期化スクリプト
├── monitor.py # 監視システム
└── tmux_session.py # セッション管理
** まとめ [#me6ffd7a]
*** 成功のポイント [#rc91f7c9]
1. **Go環境の正しい設定** - PATH設定の確認
2. **JSON設定の注意点** - パス記法と環境変数展開
3. **MCP環境変数形式** - 配列形式での設定
4. **段階的なトラブルシューティング** - エラーメッセージ...
*** Windows環境での利点 [#j65b6fd0]
- WSL不要でネイティブ動作
- 既存の環境変数をそのまま利用
- Claude Codeより設定が簡単
Windows上でのOpenCode + MCP環境構築は、適切な設定を行えば...
** 参考リンク [#va7e9dd1]
- [[OpenCode公式リポジトリ>https://github.com/opencode-ai...
- [[MCP Server Registry>https://github.com/modelcontextpr...
- [[Anthropic Claude API>https://docs.anthropic.com/]]
- [[Qdrant Vector Database>https://qdrant.tech/]]
終了行:
* 目次 [#ne5c8e39]
#contents
* Windows上でOpenCode + MCP連携環境構築 - 実際のハマりポ...
** はじめに [#m093de59]
WindowsでOpenCodeを使ってMCP(Model Context Protocol)連...
** なぜOpenCodeが良いのか [#n0fd8c6c]
*** Claude Codeとの比較 [#lc0e3443]
- **WSL不要**: Windows上で直接動作
- **MCP設定の再利用**: 既存のMCP設定をほぼそのまま利用可能
- **環境変数共有**: Windows環境変数をそのまま参照
- **tmux不要**: Windows CMD/PowerShellで直接利用可能
*** 従来の課題 [#l6f50a0f]
- Claude CodeはWSL環境が必要
- WSL上でMCPサーバーを再設定する必要
- 環境変数の設定が複雑
- ファイルパスの変換が必要
** 環境構築手順 [#aa69966f]
*** 前提条件の確認 [#o87e6993]
**** Go言語のインストール確認 [#i8ba0105]
OpenCodeはGo言語で作成されているため、まずGo環境を確認し...
# Go言語がインストール済みかチェック
go version
# インストールされていない場合
winget install GoLang.Go
# パス確認(重要)
echo $GOPATH
echo $GOROOT
**** 環境変数の事前設定 [#a2d6bd51]
# MINGW64環境で設定
export ANTHROPIC_API_KEY_MULTI_AGENT="sk-ant-api03-xxxxx"
# 設定確認
echo $ANTHROPIC_API_KEY_MULTI_AGENT
*** OpenCodeインストール [#ea9b0b1f]
**** インストール手順 [#bc44b076]
# OpenCodeをインストール
go install github.com/opencode-ai/opencode@latest
# インストール確認
opencode -v
# パスが通っていない場合
export PATH=$PATH:$(go env GOPATH)/bin
*** 設定ファイルでの失敗パターン集 [#lca6348b]
**** パターン1: JSON構文エラー [#hfaec2c4]
**失敗例**: Windowsパスのエスケープエラー [#hd57a890]
{
"mcpServers": {
"filesystem": {
"args": ["C:\Users\kh\Desktop"] // エラー!
}
}
}
**エラーメッセージ**: `invalid character 'o' in string es...
**修正方法**: スラッシュ記法を使用 [#a4cdb5e6]
{
"mcpServers": {
"filesystem": {
"args": ["C:/Users/kh/Desktop"] // 正解
}
}
}
**** パターン2: 環境変数展開エラー [#y14277de]
**失敗例**: シングルクォートHereDocumentの使用 [#q5ba38a4]
cat > ~/.opencode.json << 'EOF' # シングルクォートでは...
{
"apiKey": "$(echo $ANTHROPIC_API_KEY_MULTI_AGENT)" # ...
}
EOF
**修正方法**: シングルクォートを除去 [#a1ffc8b7]
cat > ~/.opencode.json << EOF # 環境変数が実際に展開さ...
{
"apiKey": "$(echo $ANTHROPIC_API_KEY_MULTI_AGENT)"
}
EOF
**** パターン3: MCP環境変数設定エラー [#g5c2aa84]
**失敗例**: オブジェクト形式での設定 [#tf20d0fa]
"env": {
"QDRANT_URL": "http://localhost:6333"
}
**エラーメッセージ**: `expected type 'string', got unconv...
**修正方法**: 配列形式を使用 [#tc04bc2a]
"env": [
"QDRANT_URL=http://localhost:6333"
]
*** 動作確認済み設定ファイル [#d9da7caa]
以下は実際に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-MiniL...
]
}
},
"shell": {
"path": "bash",
"args": ["-l"]
},
"autoCompact": true
}
EOF
** 起動とトラブルシューティング [#l1dc98f7]
*** 正常起動の確認 [#j782848c]
**** 起動コマンド [#sbb09354]
opencode
**** 正常な起動メッセージ [#mb4f6f31]
2025/06/15 10:06:24 WARN Ripgrep (rg) not found in $PATH...
2025/06/15 10:06:24 WARN FZF not found in $PATH. Some fe...
この警告は正常で、基本機能には影響ありません。
**** MCP接続確認 [#wd145e23]
起動後、以下のようなPermission Requiredダイアログが表示さ...
Permission Required
Tool: qdrant qdrant-find
Allow (a) Allow for session (s) Deny (d)
** よくあるエラーと解決方法 [#vd3d62fd]
*** エラー1: `opencode: command not found` [#jfbd3845]
**原因**: Goのbinディレクトリがパスに含まれていない [#q6f...
**解決方法**: [#uf5f58e9]
# 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構文エラー [#s0cab86d]
**解決方法**: [#w6c9ff93]
# JSON構文チェック
cat ~/.opencode.json | python -m json.tool
# または
cat ~/.opencode.json | jq .
*** エラー3: `401 Unauthorized` [#v3dad331]
**原因**: APIキー認証エラー [#e7c7bd40]
**解決方法**: [#ha803982]
# 環境変数確認
echo $ANTHROPIC_API_KEY_MULTI_AGENT
# 設定ファイル内でのAPIキー確認
cat ~/.opencode.json | grep apiKey
*** エラー4: 起動が非常に遅い [#m741424b]
**原因**: MCPサーバーの初期化処理 [#m2e0842d]
**対策**: 正常な動作のため、1-2分程度待機 [#tc4d8516]
** 実際の動作結果 [#d5304224]
この設定により、以下が確認できました:
*** 成功した機能 [#mbc83a24]
- Claude 3.7 Sonnetとの通信
- Qdrant長期記憶への接続
- ファイルシステムアクセス
- 基本的なコード生成
*** 生成されたファイル例 [#q177216a]
実際に以下のファイルが自動生成されました:
scripts/
├── github_init.py # GitHub初期化スクリプト
├── monitor.py # 監視システム
└── tmux_session.py # セッション管理
** まとめ [#me6ffd7a]
*** 成功のポイント [#rc91f7c9]
1. **Go環境の正しい設定** - PATH設定の確認
2. **JSON設定の注意点** - パス記法と環境変数展開
3. **MCP環境変数形式** - 配列形式での設定
4. **段階的なトラブルシューティング** - エラーメッセージ...
*** Windows環境での利点 [#j65b6fd0]
- WSL不要でネイティブ動作
- 既存の環境変数をそのまま利用
- Claude Codeより設定が簡単
Windows上でのOpenCode + MCP環境構築は、適切な設定を行えば...
** 参考リンク [#va7e9dd1]
- [[OpenCode公式リポジトリ>https://github.com/opencode-ai...
- [[MCP Server Registry>https://github.com/modelcontextpr...
- [[Anthropic Claude API>https://docs.anthropic.com/]]
- [[Qdrant Vector Database>https://qdrant.tech/]]
ページ名: