MCP Client Demo について
Web Worker とサーバー送信イベント (SSE) を使用した MCP クライアントのデモ実装です。TypeScript と React で構築され、MCP サーバーツールの対話的テストインターフェースを提供します。
主な機能
- 01Web Worker ベースのクライアント
- 02サーバー送信イベント転送
- 03対話型テスト UI
- 04TypeScript 型安全性
- 05Vite と React
活用シーン
- 01MCP プロトコル実装の学習
- 02MCP サーバー機能のテスト
- 03ブラウザベース MCP アプリケーション開発
MCP 対応
Web Worker と SSE を介して MCP サーバーに接続し、対話的なテストインターフェースを通じてツール発見と実行機能を公開するクライアント。
詳細
MCP クライアントデモ
注記: このプロジェクトは現在開発中(WIP)です。機能と実装は大幅に変更される可能性があります。
Web Workers と Server-Sent Events (SSE) を使用した Model Context Protocol (MCP) クライアントのデモ実装です。
機能
- Web Worker ベースの MCP クライアント実装
- Server-Sent Events (SSE) トランスポート
- インタラクティブなテスト UI
- TypeScript による型安全な実装
- Vite + React で構築
クイックスタート
前提条件
- Node.js 18.x 以降
localhost:3020で実行中の MCP 互換サーバー
インストール
- リポジトリをクローン
- 依存関係をインストール:
npm install
開発
開発サーバーを起動:
npm run dev
Worker のテスト
- ブラウザで
test.htmlを開く - 「Connect」をクリックして MCP サーバーへの接続を確立
- 「List Tools」を使用して利用可能なツールを確認
- ツールを選択して JSON 形式で入力を提供
- 「Execute Tool」をクリックして選択したツールを実行
プロジェクト構造
src/
├── worker.ts # MCP client worker implementation
├── worker-test.ts # Worker test interface
├── types.ts # Type definitions
└── App.tsx # Main React application
主要コンポーネント
- worker.ts: MCP クライアントの主な Web Worker 実装
- worker-test.ts: Worker のテストインターフェース
- types.ts: Worker コマンドとレスポンスの共有型定義
実装詳細
Worker コマンド
Worker は以下のコマンドを受け入れます:
connect: MCP サーバーとの接続を確立disconnect: 接続を閉じるlistTools: 利用可能なツールのリストを取得callTool: 特定のツールを実行
Worker レスポンス
Worker は以下の形式でレスポンスを送信します:
type WorkerResponse =
| {
type: "status";
status: WorkerStatus;
}
| {
type: "result";
result: ListToolsResult | CallToolResult;
}
| {
type: "error";
error: string;
details?: Record<string, unknown>;
};
開発
ビルド
プロジェクトをビルド:
npm run build
リント
ESLint を実行:
npm run lint
貢献
- リポジトリをフォーク
- フィーチャーブランチを作成
- 変更をコミット
- ブランチにプッシュ
- プルリクエストを作成
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。