MCP server for msw について
MSW for AI Agent は、AI エージェントと Mock Service Worker(MSW)を接続するツール群で、msw-cli のコマンドラインと msw-mcp サーバーで構成されています。アプリケーションを再起動せずにネットワークモックを追加・更新・削除でき、開発やテストで API のモックを調整する開発者を対象としています。
主な機能
- 01コマンドラインからの MSW ハンドラーの追加・更新・削除
- 02AI アシスタント向けにモック管理ツールを公開する MCP サーバー
- 03コマンドラインや MCP とブラウザ間の WebSocket ブリッジ
- 04msw-cli setup と /msw-setup プロンプトによるセットアップ支援
- 05ポート、永続化、クライアント指定の設定
活用シーン
- 01ページを再読み込みせずに API のレスポンスを変えてデバッグする
- 02AI アシスタントの指示から MSW ハンドラーを生成して登録する
- 03スクリプトやターミナルからモックの状態を制御する
MCP 対応
msw-mcp は MCP サーバーとして、MSW モックを管理するツールと /msw-setup プロンプトを MCP クライアントに公開します。変更は WebSocket ブリッジを経由して、ブラウザ内の @msw-mcp/client に伝えられます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| handlers | array | はい | MSW ハンドラーの JavaScript コード文字列の配列。例: 1. シンプルなモック: "http.get('/users', () => HttpResponse.json([]))" 2. リクエスト本文を使用: "http.post('/users', async ({request}) => { const body = await request.json(); return HttpResponse.json({id: 1, ...body}) })" 3. 実際の API を取得してから変更: "http.get('/api/data', async ({request}) => { const response = await fetch(bypass(request)); const data = await response.json(); return HttpResponse.json({...data, mocked: true}) })" |
| once | boolean | いいえ | true の場合、ハンドラーを一度だけ使用するものとしてマークします。最初に正常に一致した後、後続のリクエストではこのハンドラーは無視されます。 |
詳細
MSW AI Agent Bridge Monorepo
このモノレポは、AI エージェントと Mock Service Worker(MSW)をつなぐツール一式を提供します。アプリケーションのソースコードを再起動することなく、コマンドラインインターフェースや AI ツールの実行を通じて、MSW のネットワークモックを動的に追加、更新、削除できます。
デモ
MCP を活用した MSW ワークフローの紹介(ブラウザーブリッジ、ハンドラーのライブ更新):
https://github.com/user-attachments/assets/06959759-b198-4cd1-ae2b-11ede32acd8e
主な機能
- 🤖 AI で MSW ハンドラーを生成
- ⚡ ページを再読み込みせずにモックを更新
- 🌉 CLI/MCP とブラウザー間の WebSocket ブリッジ
- 🛠️
msw-cli setupまたは MCP の/msw-setupプロンプトで MSW のセットアップを作成 - 💻
msw-cliによるターミナルとスクリプトからの操作 - ⚙️ ポート、永続化、クライアントの対象指定を設定可能
- ✨ AI エージェントが使用できるエージェントスキル
構成
このプロジェクトは、pnpm と turbo を使用するモノレポとして構成されています。
apps/docs(@msw-mcp/docs):MSW Agent Tools(CLI、MCP、ガイド)の Starlight ドキュメントサイトです。ソースはapps/docs/src/content/docs/にあります。packages/msw-cli:AI エージェントや開発者が動的なハンドラー更新を送信するためのコマンドラインインターフェース(msw-cli)です。msw-cli setupを実行してプロジェクトのセットアップを作成し、その後msw-cli openとハンドラーコマンドを実行します。packages/msw-mcp:アシスタントが MCP ツールを通じてモックを管理できる、公開済みの Model Context Protocol サーバー(msw-mcp)です。packages/client(@msw-mcp/client):更新を受け取り、ローカルの MSW セットアップに登録するブラウザー/環境用クライアントです。packages/core(@msw-mcp/core):CLI または MCP サーバーとクライアント間の通信を仲介する、コアのデーモンプロセスとセッション管理ロジックです。
ドキュメントサイト
リポジトリのルートから実行します:
pnpm --filter @msw-mcp/docs dev
ローカルのドキュメント開発サーバーが起動します(Astro のデフォルトポート。通常は http://localhost:4321)。本番環境の検索機能(Pagefind)は、pnpm --filter @msw-mcp/docs build と pnpm --filter @msw-mcp/docs preview の実行後に確認するのが最も簡単です。
詳しくは、apps/docs/README.md をご覧ください。
クイックセットアップ:msw-cli
-
CLI をグローバルにインストールします:
npm install -g msw-cli(または使用しているパッケージマネージャーの同等のコマンドを実行します)。 -
新しいプロジェクトで
msw-cli setupを実行し、表示される MSW と@msw-mcp/clientの手順に従います。 -
セッションを開始し、シェルからハンドラーを操作します:
msw-cli open msw-cli add "http.get('/api/user', () => HttpResponse.json({ id: 1 }))" msw-cli status msw-cli close
すべてのコマンド、フラグ、ワークフローについては、packages/msw-cli/README.md をご覧ください。
クイックセットアップ:msw-mcp(MCP)
-
MCP クライアントにサーバーを登録します(JSON 設定の例):
{ "mcpServers": { "msw-mcp": { "command": "npx", "args": ["msw-mcp@latest"] } } } -
クライアントで
/msw-setupプロンプトを使用するか、手動でセットアップ手順に従い、ブラウザーアプリがmsw、@msw-mcp/client、worker ブリッジを読み込むようにします。
インストール方法(VS Code、Claude Code、Cursor など)、アーキテクチャ、MCP ツール、手動セットアップについては、packages/msw-mcp/README.md をご覧ください。
開発スクリプト
ルートディレクトリから pnpm を使って、次のスクリプトを実行します:
pnpm build:Turborepo を使ってすべてのパッケージをコンパイルします。pnpm dev:すべてのパッケージの開発パイプラインを起動します。pnpm format:Prettier を使ってコードをフォーマットします。pnpm lint:リポジトリ全体でリントチェックを実行します。
はじめに
-
依存関係をインストールします:
pnpm install -
プロジェクトをビルドします:
pnpm build -
CLI を使用します:
CLI のディレクトリに移動するか、ビルド後に node から直接実行できます:node packages/msw-cli/build/index.js help
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳しくは LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。