mockserver について
MockServer は、HTTP(S) 依存関係のモック、記録と再生、検証、カオステストを行う MCP サーバーです。開発とテストの段階で外部サービスを切り離したいチーム向けで、1 つのポートで複数のプロトコルを扱えます。
主な機能
- 01単一ポートで HTTP、gRPC、WebSocket、raw TCP を自動判別
- 02モック、プロキシ、またはその両方の動作
- 03実トラフィックの記録と変更
- 04遅延、接続断、エラーを注入するカオステスト
- 05OpenAI、Anthropic、Gemini などの AI チャット API のモック
活用シーン
- 01テストで不安定な外部 HTTP サービスを置き換える
- 02実際の API トラフィックを記録し、自動テストで再生する
- 03依存先の障害時におけるアプリケーションの処理を確認する
MCP 対応
MockServer は /mockserver/mcp に組み込み MCP サーバーを備えており、AI コーディングアシスタントが MCP 経由で MockServer を直接操作できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MockServer

MockServer は、アプリケーションが通信するあらゆる HTTP(S) 依存先をモックし、記録し、カオステストします。単一のバイナリで、プロトコルごとのセットアップは不要です。
MockServer を選ぶ理由
- 1 つのポートですべてのプロトコルに対応 — HTTP/1.1、HTTPS、HTTP/2、gRPC と gRPC-Web、WebSocket、raw TCP を各接続の最初のバイトから自動判定します。さらに、HTTP/3(QUIC、実験的)、MCP/A2A モック用の JSON-RPC、AsyncAPI を利用した Kafka/MQTT ブローカーのテストにも対応します。
- モック、プロキシ、またはその両方 — 定型レスポンス、テンプレートレスポンス、コールバックレスポンスを返すことも、プロキシ(ポートフォワーディング、HTTP プロキシ、HTTPS トンネリング、SOCKS)として動作させることもできます。実際のトラフィックを通信中に記録、検査、変更でき、TLS で暗号化された通信も完全に可視化できます。
- カオスエンジニアリングを標準搭載 — 遅延、接続切断、エラーを必要に応じて注入し、依存先に問題が起きたときにアプリケーションがどう対処するかを確認できます。
- AI もモック — OpenAI、Anthropic、Gemini、Bedrock、Azure OpenAI、Ollama のチャット補完 API(ストリーミングを含む)に対応し、組み込みの MCP サーバーを使って AI コーディングアシスタントから MockServer を直接操作できます。
- モックを生成し、手書きしない — OpenAPI/Swagger 仕様からモックを生成でき、メソッド、パス、クエリ、ヘッダー、Cookie、ボディ(JSON、XML、JSONPath、XPath、正規表現)でリクエストを照合します。
- お使いのスタックに適合 — Java、JavaScript/Node、Python、Ruby、Go、.NET、Rust、PHP のクライアントに加え、JUnit と Spring にも対応します。Docker、Helm/Kubernetes、JAR、WAR として実行でき、ライブダッシュボードと、複数インスタンス環境向けのオプションのクラスター状態管理も利用できます。
各バージョンでのリリース内容については、変更履歴をご覧ください。
60 秒で始める
Docker で MockServer を起動し、エンドポイントをモックして呼び出します。
# 1. Start MockServer
docker run -d --rm -p 1080:1080 mockserver/mockserver
# 2. Mock an endpoint: GET /hello -> 200 "Hello World"
# (MockServer exposes a REST control plane on the same port)
curl -X PUT http://localhost:1080/mockserver/expectation \
-H 'Content-Type: application/json' \
-d '{
"httpRequest": { "method": "GET", "path": "/hello" },
"httpResponse": { "statusCode": 200, "body": "Hello World" }
}'
# 3. Call your mock
curl http://localhost:1080/hello
# -> Hello World
…または、macOS / Linux では Homebrew でインストールし、mockserver コマンドを直接実行します。
brew install mockserver
mockserver run --port 1080
MockServer のあらゆる実行方法(Docker、docker-compose のレシピ、mockserver CLI、JVM 不要のバイナリバンドル、Helm/Kubernetes、JAR、Testcontainers)については、MockServer セルフホスティングガイドをご覧ください。同じセットアップは、任意のクライアントライブラリまたは http://localhost:1080/mockserver/dashboard のダッシュボードから操作できます。
ワンコマンドレシピ
examples/docker-compose のレシピは、いずれも docker compose up を 1 回実行するだけです。OpenAPI 仕様からのモック、記録/再生プロキシ、コントラクト検証プロキシ、カオスプロキシを利用できます。
cd examples/docker-compose/mock-from-openapi
docker compose up
curl http://localhost:1080/pets
Postman または Bruno から操作する
- Postman — 上のボタンをクリックするか、
examples/postmanをインポートします(ガイド)。 - Bruno(オープンソース、Gitネイティブ)— Bruno で Open Collection を選択し、
examples/brunoを開きます(ガイド)。
インストール
| チャネル | コマンド |
|---|---|
| Docker | docker run -d --rm -p 1080:1080 mockserver/mockserver |
| GitHub Container Registry からの Docker(Docker Hub のプル制限を回避) | docker run -d --rm -p 1080:1080 ghcr.io/mock-server/mockserver |
| Homebrew(macOS/Linux) | brew install mockserver |
| Helm(チャートガイド) | helm upgrade --install --namespace mockserver mockserver oci://ghcr.io/mock-server/charts/mockserver |
| Maven Central | org.mock-server:mockserver-netty-no-dependencies — すべての Maven アーティファクトを参照してください(サーバー、WAR、JUnit 4/5、Spring、Maven プラグイン) |
| npm | mockserver-node(起動/停止) |
クライアントライブラリ(テストから期待値を作成し、リクエストを検証して、コントロールプレーンを操作します):
SNAPSHOT リポジトリ、WAR のデプロイ、Testcontainers モジュール、パッケージマネージャーのチャネルを含むインストール方法の詳細は、セルフホスティングガイドとMockServer の入手先を参照してください。
要件
ランタイム: Java 17 以降(MockServer 6.0.0 で Java 11 から引き上げられました。Java 17/Jakarta アップグレードガイドを参照してください。Java 11 が必要な場合は 5.15.x に固定してください)。公式 Docker イメージには独自の JVM が含まれているため、コンテナを利用する場合、JVM を別途用意する必要はありません。
ソースからのビルド: JDK 17 以降。
セキュリティに関する注意: MockServer は開発およびテスト専用のツールです。SECURITY.mdを参照してください。
ドキュメント
- 使い方ガイド:www.mock-server.com
- アーキテクチャ、コード構成、インフラストラクチャ、運用に関するドキュメント:docs/
- AI/MCP 連携:組み込みの MCP サーバー(
/mockserver/mcp)— llms.txt と AI 連携ドキュメントをご覧ください。
バージョン
- 変更点: 変更履歴 と GitHub リリース(各バージョンは git タグ
mockserver-<version>としても公開されています)。 - 各バージョンの API ドキュメント: Java API は
https://mock-server.com/versions/<version>/apidocs/index.html、REST API は SwaggerHub(major.minor.xごとに 1 つの仕様)。 - Java 11: Java 11 互換の最後のリリースは 5.15.0 です(2023 年 1 月)。
6.0.0 の破壊的変更:
<classifier>shaded</classifier>形式の Maven 指定が削除されました。mockserver-netty:<version>:shadedをmockserver-netty-no-dependencies:<version>に置き換えてください(シェーディングされたバイト列は同じで、座標が新しくなっています)。
コミュニティとコントリビューション
- 問題/バグ/機能リクエスト: GitHub Issues — MockServer のバージョン、実行方法(Docker、Maven プラグインなど)、INFO レベル以上のログ出力を含めてください。
- ディスカッション: GitHub Discussions
- ロードマップ: GitHub Project
- セキュリティポリシー: SECURITY.md
- コミュニティツール: MockServer Browser Admin。期待値を管理するための React + TypeScript 製の Web UI です。
- コントリビューション: プルリクエストを歓迎します。まず CONTRIBUTING.md を読み、次に未解決の issueを確認し、何かに取り組む予定があればお知らせください。
メンテナー
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
