操作
バグ #947
未完了Claude会話履歴管理 - MCP統合・リモート対応 (Phase 6)
ステータス:
進行中
優先度:
高め
担当者:
-
開始日:
2025-07-20
期日:
進捗率:
0%
予定工数:
説明
目的¶
Claude会話履歴管理システムにMCP (Model Context Protocol) 統合機能を実装し、Claude DesktopからリモートMCPツールとして利用可能にする
MCP統合仕様¶
Protocol対応¶
- MCP Protocol: MCP over HTTP
- Authentication: OAuth 2.1 + PKCE
- Transport: Streamable HTTP Transport
- Claude Desktop: インテグレーション機能使用
OAuth 2.1 認証基盤¶
# 認証フロー
1. Authorization Request (PKCE対応)
2. Authorization Grant
3. Access Token Request
4. Protected Resource Access
MCP Server実装¶
// MCP Server機能
- Tools Registration
- Tools Execution
- Resource Access
- Prompt Templates
実装コンポーネント¶
1. OAuth認証サーバー¶
ファイル: /mcp/oauth_server.py
- PKCE対応認証エンドポイント
- JWT トークン発行・検証
- スコープ管理・権限制御
- /.well-known/openid-configuration
2. MCPサーバー¶
ファイル: /mcp/server.py
- MCP Protocol実装
- HTTP Transport対応
- WebSocket対応(将来拡張)
- ツール登録・実行
3. MCP Tools実装¶
conversation-search¶
{
"name": "search_conversations",
"description": "Claude会話履歴を検索",
"inputSchema": {
"type": "object",
"properties": {
"query": {"type": "string"},
"project_id": {"type": "string"},
"limit": {"type": "number"}
}
}
}
conversation-detail¶
{
"name": "get_conversation",
"description": "会話詳細を取得",
"inputSchema": {
"type": "object",
"properties": {
"conversation_id": {"type": "string"},
"include_messages": {"type": "boolean"}
},
"required": ["conversation_id"]
}
}
conversation-continue¶
{
"name": "continue_conversation",
"description": "Claude API経由で会話継続",
"inputSchema": {
"type": "object",
"properties": {
"conversation_id": {"type": "string"},
"message": {"type": "string"},
"max_tokens": {"type": "number"}
},
"required": ["conversation_id", "message"]
}
}
project-knowledge¶
{
"name": "get_project_knowledge",
"description": "プロジェクト関連知識を取得",
"inputSchema": {
"type": "object",
"properties": {
"project_id": {"type": "string"},
"query": {"type": "string"},
"importance_threshold": {"type": "number"}
},
"required": ["project_id"]
}
}
Claude Desktop統合¶
インテグレーション設定¶
- Claude Desktop: Settings > Integrations
-
Add Integration:
- 統合名: Claude History Manager
- 認証URL: https://history.call2arm.com/oauth/authorize
- スコープ: conversations:read, conversations:write
認証フロー体験¶
1. Claude Desktop → 認証URL アクセス
2. Browser → OAuth認証画面表示
3. User → 認証許可
4. System → Access Token発行
5. Claude Desktop → MCP Tools利用可能
セキュリティ考慮事項¶
OAuth 2.1 セキュリティ¶
- PKCE必須: コードインターセプト攻撃対策
- State Parameter: CSRF攻撃対策
- Short-lived Token: 1時間有効期限
- Refresh Token: 長期利用対応
API Protection¶
- Rate Limiting: ユーザー・エンドポイント別制限
- Input Validation: 厳格な入力検証
- Access Control: スコープベース権限管理
- Audit Logging: アクセス・操作ログ
実装フェーズ¶
Phase 6.1: 認証基盤¶
- OAuth 2.1サーバー実装
- PKCE対応
- JWT トークン管理
- /.well-known エンドポイント
Phase 6.2: MCP Server¶
- HTTP Transport実装
- Tools Registration
- Request/Response handling
- Error Handling
Phase 6.3: Tool実装¶
- search_conversations
- get_conversation
- continue_conversation (将来)
- get_project_knowledge
Phase 6.4: Claude Desktop統合¶
- 認証フロー テスト
- ツール動作確認
- エラーハンドリング
- パフォーマンス最適化
インフラ統合¶
Docker Compose拡張¶
claude-history-mcp:
build: ./mcp
ports:
- "8090:8090"
environment:
- OAUTH_SECRET_KEY=${OAUTH_SECRET}
- MCP_SERVER_URL=https://history.call2arm.com/mcp
Nginx設定拡張¶
# MCP エンドポイント
location /mcp/ {
proxy_pass http://claude-history-mcp:8090/;
}
# OAuth エンドポイント
location /oauth/ {
proxy_pass http://claude-history-mcp:8090/oauth/;
}
テスト・検証¶
単体テスト¶
- OAuth認証フロー
- MCP Protocol準拠性
- API レスポンス検証
統合テスト¶
- Claude Desktop連携
- エンドツーエンドフロー
- エラーケース対応
負荷テスト¶
- 同時接続数
- レスポンス時間
- リソース使用量
成果物¶
- MCP Server実装 - 完全動作するMCPサーバー
- OAuth認証基盤 - セキュアな認証システム
- Claude Desktop統合 - 実際の連携動作
- ドキュメント - セットアップ・使用方法
前提条件¶
- Web UI実装完了(チケット#946)
- Claude Desktop Pro/Team/Enterprise プラン
- VPS-ROOT環境準備完了
期待効果¶
- Claude Desktopから直接会話履歴検索
- シームレスな知識活用
- 開発ワークフロー大幅改善
- リモートMCP活用の先駆例
操作