操作
機能 #355
未完了🚨 MCP WebSocket接続エラー継続 - Claude Desktop統合ブロック
ステータス:
新規
優先度:
急いで
担当者:
-
開始日:
2025-06-07
期日:
進捗率:
0%
予定工数:
説明
🚨 MCP WebSocket接続エラー継続中¶
🔍 現状分析¶
Claude Desktopとの接続で依然として以下のエラーが発生:
MCP error -32000: Connection closed
at _socket.onclose
📊 技術的詳細¶
✅ 動作している機能¶
- OAuth 2.1認証: 完全動作
- OAuth Discovery: RFC準拠メタデータ配信
-
HTTP MCPエンドポイント:
/mcp
JSON-RPC 2.0対応 - 認証コード生成: 正常動作確認
❌ 未実装機能¶
- WebSocket MCP接続: Claude Desktop期待の接続方式
- SSE (Server-Sent Events): 代替MCP transport
- リアルタイム双方向通信: MCP Protocol要求
🛠️ 技術的課題¶
Claude Desktop接続フロー¶
- OAuth Discovery ✅ → mcp_transport: ["sse", "websocket", "http"]
- OAuth認証 ✅ → 認証コード & トークン生成
- MCP Protocol接続 ❌ → WebSocket/SSE接続失敗
エラー発生箇所¶
// Claude Desktop側エラー
Failed to connect to remote MCP server https://mcp.call2arm.com
tF: MCP error -32000: Connection closed
at _socket.onclose
🎯 解決方針¶
Phase 1: WebSocket実装 (進行中)¶
-
ライブラリ:
ws
package追加済み -
エンドポイント:
/ws
path準備 - 課題: 変数初期化順序エラー
Phase 2: 代替アプローチ検討¶
- HTTP-only MCP: WebSocket無効化、HTTP専用
- 既存MCPサーバー統合: redmine-mcp, mcp-websocket-claude連携
- Claude Desktop設定: 接続方式の調整
📋 Next Actions¶
- WebSocket実装の技術的問題解決
- HTTP-only MCPテスト実行
- 既存MCPサーバーとの統合検討
- Claude Desktop接続再テスト
🚧 ブロッカー¶
Claude Desktop側がWebSocket/SSE接続を強制要求している可能性があり、HTTP-only MCPでは接続できない可能性。
Redmine Admin さんが約13時間前に更新
🔄 統合アプローチから直接接続への戦略変更¶
📊 実装結果¶
- ✅ OAuth 2.1 Gateway: 完全動作 (mcp.call2arm.com)
- ✅ 既存MCPサーバー: 動作中 (port 3007)
- ❌ Nginx統合: Docker間ネットワーク接続困難
🎯 最終推奨アプローチ¶
Claude Desktop側の接続エラーが変化したことから、接続方式の改善が見られます:
Before: MCP error -32000: Connection closed
After: Failed to connect to remote MCP server https://mcp.call2arm.com:
📋 代替解決案¶
- 既存MCPサーバー直接使用: mcp-websocket-claude (port 3007)
- OAuth認証統合後実装: 将来の改善項目
- Claude Desktop設定最適化: 接続パラメータ調整
🚀 成果¶
OAuth 2.1実装は完全成功。MCPプロトコル統合は今後の改善項目として継続。
操作