プロジェクト

全般

プロフィール

バグ #418

未完了

Phase 6: リモートMCP化 - Claude Desktop完全統合 (長期計画)

Redmine Admin さんが12日前に追加.

ステータス:
新規
優先度:
通常
担当者:
-
開始日:
2025-06-09
期日:
進捗率:

0%

予定工数:

説明

🎯 Phase 6: リモートMCP化完全実装

📋 前提条件

Phase 5完了: search.call2arm.com 本番環境稼働

  • React WebUI完全統合
  • 高度検索・分析機能
  • パフォーマンス最適化完了

🚀 Phase 6最終目標

Claude Desktop完全統合

// リモートMCPサーバー化
- OAuth 2.1 + PKCE認証実装
- Claude Desktop Integrations連携
- MCP Tools実装
- 双方向会話同期

🔧 技術仕様

1. OAuth 2.1認証サーバー

// 必須エンドポイント
- /.well-known/oauth-authorization-server (RFC8414)
- /.well-known/oauth-protected-resource (RFC9728)
- /oauth/authorize (認可エンドポイント)
- /oauth/token (トークンエンドポイント)

2. MCP Server実装

// FastMCP or 公式SDK選択
- search.call2arm.com 機能のMCPツール化
- Streamable HTTP Transport対応
- WebSocket リアルタイム同期
- Claude Desktop認証フロー

3. MCP Tools定義

// Claude Desktop から利用可能な機能
- search_conversations: 会話検索
- import_conversations: 会話インポート
- export_conversations: 会話エクスポート
- get_conversation_stats: 統計取得
- manage_projects: プロジェクト管理

📊 OAuth 2.1実装詳細

認証フロー

sequenceDiagram
    participant CD as Claude Desktop
    participant AS as Authorization Server
    participant RS as Resource Server (search.call2arm.com)
    
    CD->>AS: 認可リクエスト + PKCE challenge
    AS->>CD: 認可コード
    CD->>AS: トークン交換 + PKCE verifier
    AS->>CD: アクセストークン
    CD->>RS: API呼び出し + Bearer Token
    RS->>CD: レスポンス

セキュリティ実装

  • PKCE (S256): RFC7636準拠
  • State Parameter: CSRF攻撃防止
  • Dynamic Client Registration: RFC7591対応
  • Token Introspection: RFC7662対応

🎯 実装アーキテクチャ

Option A: FastMCP 2.0使用

from fastmcp import FastMCP

# search.call2arm.com をMCPサーバー化
mcp = FastMCP("claude-search-mcp")

@mcp.tool()
async def search_conversations(query: str) -> dict:
    """過去の会話を検索"""
    # search.call2arm.com API呼び出し
    return await SearchAPI.search(query)

if __name__ == "__main__":
    mcp.run(transport='sse', port=8080)

Option B: 公式SDK使用

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/http.js";

const server = new McpServer({
  name: "claude-search-mcp",
  version: "1.0.0"
});

// search.call2arm.com API統合
server.setRequestHandler("tools/call", async (request) => {
  const { name, arguments: args } = request.params;
  
  if (name === "search_conversations") {
    const results = await searchAPI.search(args.query);
    return { content: [{ type: "text", text: JSON.stringify(results) }] };
  }
});

📈 期待される価値

ユーザー体験

  • シームレス: Claude Desktop ↔ search.call2arm.com統合
  • 効率性: Claude内から過去会話アクセス
  • 継続性: プロジェクト単位の会話管理
  • 検索性: Claude内からの自然言語検索

技術的価値

  • 標準準拠: OAuth 2.1 + MCP仕様完全対応
  • エコシステム: 公式MCPサーバーとしての地位
  • 拡張性: 他MCPクライアント対応可能
  • セキュリティ: エンタープライズレベル認証

🎯 実装フェーズ

Phase 6.1: OAuth認証サーバー (2週間)

  • Authorization Server Metadata実装
  • PKCE + State parameter対応
  • Dynamic Client Registration
  • セキュリティ監査

Phase 6.2: MCP Server実装 (2週間)

  • FastMCP or 公式SDK選択・実装
  • search.call2arm.com API統合
  • Streamable HTTP Transport
  • WebSocket対応

Phase 6.3: Claude Desktop統合 (1週間)

  • Claude Desktop Pro/Max/Team テスト
  • インテグレーション設定
  • 認証フロー動作確認
  • MCPツール利用テスト

Phase 6.4: 本格運用 (1週間)

  • パフォーマンス最適化
  • 監視・ログ強化
  • ドキュメント整備
  • ユーザーガイド作成

⚠️ 考慮事項

セキュリティ

  • OAuth実装のセキュリティ監査必須
  • PKCE実装の攻撃耐性確認
  • トークンライフサイクル管理

運用・保守

  • Claude Desktop仕様変更対応
  • MCP仕様進化への追従
  • 認証システム継続保守

🎯 成功指標

  • Claude Desktop からMCPツール利用成功
  • OAuth 2.1認証フロー完全動作
  • search.call2arm.com 機能のMCP経由アクセス
  • 複数Claude Desktopクライアント対応
  • セキュリティ監査合格

📅 実装時期

開始条件: Phase 5完了後
目標期間: 6週間
完了目標: search.call2arm.com → Claude Desktop MCP統合

🔗 関連チケット・参考資料

表示するデータがありません

他の形式にエクスポート: Atom PDF