Mockd について
Mockd は、単一のバイナリで HTTP、gRPC、GraphQL、WebSocket、MQTT、SSE、SOAP のモックを提供する多プロトコル API モックサーバーです。ローカルで API の開発やテストを行う開発者とテスト担当者に向いています。組み込みの MCP サーバーにより、AI エージェントがモックを作成・管理できます。
主な機能
- 017つのプロトコルに対応した単一バイナリ
- 02OpenAPI、Postman、HAR、WSDL、cURL からのインポート
- 03レイテンシ、エラー、サーキットブレーカーを扱うカオスプロファイル
- 04ワークスペースごとに分離されたステートフル CRUD エンドポイント
- 05Web ダッシュボードとプロキシ録画
活用シーン
- 01バックエンド API の完成前のフロントエンド開発
- 02Stripe などのサードパーティ API のモック化による結合テスト
- 03AI エージェントによるモックエンドポイントの生成と検証
MCP 対応
本プロジェクトは組み込みの MCP サーバーを備え、18 のツールを提供します。AI エージェントはこれを使ってモックの作成、状態管理、仕様のインポート、コントラクトの検証を行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/getmockd/mockdローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/getmockd/mockdstdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
1つのバイナリ。7つのプロトコル。依存関係ゼロ。
1つの CLI ツールから HTTP、gRPC、GraphQL、WebSocket、MQTT、SSE、SOAP をモックできます。
OpenAPI 仕様をインポート。デジタルツインを構築。AI エージェントにモックを作成してもらえます。
ウェブサイト · ドキュメント · サンプル · コントリビューション
クイックスタート
# Install
curl -sSL https://get.mockd.io | sh
# Start + create a stateful CRUD API in one command
mockd start
mockd add http --path /api/users --stateful users
# It works immediately
curl -X POST localhost:4280/api/users -d '{"name":"Alice","email":"[email protected]"}'
# → {"id":"a1b2c3","name":"Alice","email":"[email protected]"}
curl localhost:4280/api/users
# → {"data":[{"id":"a1b2c3","name":"Alice","email":"[email protected]"}],"meta":{"total":1}}
その他のインストール方法
brew install getmockd/tap/mockd # Homebrew
docker run -p 4280:4280 -p 4290:4290 ghcr.io/getmockd/mockd:latest # Docker
go install github.com/getmockd/mockd/cmd/mockd@latest # Go
Linux、macOS、Windows 用のビルド済みバイナリは、リリースページから入手できます。
mockd を選ぶ理由
他のモックツールでは、使うプロトコルを1つ選び、ランタイムをインストールし、拡張機能を追加する必要があります。mockd ならその必要はありません。
| mockd | WireMock | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| 単一バイナリ、ランタイム不要 | ✅ | ❌ JVM | ❌ Electron | ✅ | ❌ JVM | ❌ SaaS | ❌ Node |
| 9つのプロトコルをすべて内蔵 | ✅ | 🔌 拡張機能 | 一部対応 | HTTP のみ | HTTP のみ | 一部対応 | REST のみ |
| カオスプロファイル+サーキットブレーカー | ✅ | ⚠️ クラウド | ❌ | ❌ | ❌ | ❌ | ❌ |
| MCP サーバー | ✅ ローカル | ⚠️ クラウド | ❌ | ❌ | ❌ | ⚠️ クラウド、Team 以上 | ❌ |
| 無料+セルフホスト可能、無制限 | ✅ | ✅ | ✅ | ✅ | ✅ | 1日50リクエスト | ✅ |
🔌 拡張機能 = 別途拡張 JAR が必要 • ⚠️ クラウド = 有料/ホスト型プランのみ
全機能比較表(デプロイ、プロトコル、機能、インポート/エクスポート、料金)
デプロイ
| mockd | WireMock | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| ネイティブの単一バイナリ | ✅ Go | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| 必要なランタイム | なし | JVM | Electron/Node | 任意の Node | JVM | 該当なし(SaaS) | Node |
| Docker イメージ | ✅ | ✅ | ✅ CLI | ✅ | ✅ | ⚠️ Enterprise | ❌ |
| マネージド SaaS の提供 | ロードマップ | WireMock Cloud | Mockoon Cloud | Stoplight | ❌ | ✅ | ❌ |
プロトコルのサポート
| mockd | WireMock OSS | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| REST / HTTP | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| gRPC | ✅ | 🔌 拡張機能 | ❌ | ❌ | ❌ | ✅ | ❌ |
| GraphQL | ✅ | 🔌 拡張機能 | ❌ | ❌ | ❌ | ✅ | ❌ |
| WebSocket | ✅ | 🔌 拡張機能(ベータ版) | ✅ | ❌ | ❌ | ❌ | ❌ |
| MQTT | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| SSE | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| SOAP(WSDL) | ✅ | ❌ | 一部対応 | ❌ | 一部対応 | ✅ | ❌ |
| mTLS | ✅ | ✅ | 一部対応 | ❌ | ✅ | ✅ | ❌ |
| OAuth フロー | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
機能
| mockd | WireMock OSS | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| ステートフルな CRUD | ✅ | ❌ | ✅ | 一部対応 | ❌ | ✅ | ✅ |
| 複数ステップのステートフルなフロー | ✅ | ✅ シナリオ | 一部対応 | ❌ | 一部対応 | ✅ | ❌ |
| 障害注入(遅延、エラー) | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| カオスプロファイル | ✅ | ⚠️ Cloud | ❌ | ❌ | ❌ | ❌ | ❌ |
| サーキットブレーカー | ✅ | ⚠️ Cloud | ❌ | ❌ | ❌ | ❌ | ❌ |
| 帯域幅制限 | ✅ | ❌ | ❌ | ❌ | ❌ | ロードマップ | ❌ |
| 管理 REST API | ✅ | ✅ | CLI のみ | ❌ | ✅ | ✅ | 一部対応 |
| 組み込み Web ダッシュボード | ✅ | ⚠️ Cloud | ⚠️ Cloud | ❌ | ✅ 読み取り専用 | ✅ | ❌ |
| ネイティブデスクトップ GUI | ❌ | ❌ | ✅ Electron | ❌ | ❌ | ❌ | ❌ |
| MCP サーバー | ✅ ローカル | ⚠️ Cloud | ❌ | ❌ | ❌ | ⚠️ Cloud Team+ | ❌ |
| クラウドトンネル共有 | ✅ | ❌ | ⚠️ Cloud | ❌ | ❌ | ✅ | ❌ |
インポート/エクスポート
| mockd | WireMock OSS | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| OpenAPI のインポート | ✅ | ⚠️ Cloud | ✅ | ✅ | ✅ | ✅ | ❌ |
| Postman のインポート | ✅ | ⚠️ Cloud | ❌ | ✅ | ❌ | ❌ | ❌ |
| HAR のインポート | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| WSDL のインポート | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
| cURL のインポート | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| WireMock 形式のインポート | ✅ | ネイティブ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Mockoon 形式のインポート | ✅ | ❌ | ネイティブ | ❌ | ❌ | ❌ | ❌ |
| HAR のエクスポート | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
無料プランの制限
| リクエスト数 | モックルール数 | 料金 | |
|---|---|---|---|
| mockd | 無制限 | 無制限 | 無料(Apache 2.0) |
| WireMock OSS | 無制限 | 無制限 | 無料(Apache 2.0) |
| Mockoon デスクトップ/CLI | 無制限 | 無制限 | 無料(MIT) |
| Prism | 無制限 | 無制限 | 無料(Apache 2.0) |
| MockServer | 無制限 | 無制限 | 無料(Apache 2.0) |
| Beeceptor 無料プラン | 1 エンドポイントあたり 1 日 50 件 | 3 | 追加分は月額 $10 以上 |
| json-server | 無制限 | 無制限 | 無料(MIT) |
凡例:✅ 組み込み • 🔌 Ext = 別個の OSS 拡張機能 • ⚠️ Cloud = 有料プラン/ホスト型プランのみ • 一部対応 = 実装に制限あり • ロードマップ = プロジェクトが公開しているロードマップに記載されているが、未リリース
WireMock のインポートに関する注記。 OpenAPI と Postman のインポートに付いている
⚠️ Cloudは、WireMock 公式の機能を示しています。コミュニティ製のコンバーター(例:openapi-to-wiremock、OpenAPI Generator のターゲット)もありますが、OSS のスタンドアロン JAR には同梱されていません。
デジタルツイン
実際の API 仕様をインポートしてステートフルなテーブルにバインドすると、実際の SDK で動作するモックを作成できます。
# mockd.yaml — Stripe digital twin
version: "1.0"
imports:
- path: stripe-openapi.yaml
as: stripe
tables:
- name: customers
idStrategy: prefix
idPrefix: "cus_"
seedData:
- { id: "cus_1", name: "Acme Corp", email: "[email protected]" }
extend:
- { mock: stripe.GetCustomers, table: customers, action: list }
- { mock: stripe.PostCustomers, table: customers, action: create }
- { mock: stripe.GetCustomersCustomer, table: customers, action: get }
- { mock: stripe.PostCustomersCustomer, table: customers, action: update }
- { mock: stripe.DeleteCustomersCustomer, table: customers, action: delete }
mockd start -c mockd.yaml --no-auth
curl -X POST localhost:4280/v1/customers -d "name=Test&[email protected]"
# → {"id":"cus_a1b2c3","object":"customer","name":"Test","email":"[email protected]"}
実際の SDK で検証済み:
- Stripe:
stripe-goSDK のテスト 49/49 件が成功 - Twilio:
twilio-goSDK のテスト 13/13 件が成功 - OpenAI:Python SDK
openaiで検証済み(models、assistants、chat completions)
デジタルツインの設定例については、mockd-samples をご覧ください。
AI ネイティブ(MCP)
mockd には、組み込みの Model Context Protocol サーバーがあり、18 個のツールを利用できます。AI エージェントは、CLI を操作せずにモックの作成、状態の管理、仕様のインポート、コントラクトの検証を行えます。
{
"mcpServers": {
"mockd": { "command": "mockd", "args": ["mcp"] }
}
}
Claude Desktop、Cursor、Windsurf、および MCP 互換のあらゆるエディターで動作します。ツールでは、モックの CRUD、ステートフルなリソース、カオス注入、リクエストログ、検証、ワークスペース、インポート/エクスポートを扱えます。
機能
マルチプロトコルのモック — 7 つのプロトコルに対応する統一 CLI
| プロトコル | ポート | 例 |
|---|---|---|
| HTTP/HTTPS | 4280 | mockd add http --path /api/hello --body '{"msg":"hi"}' |
| gRPC | 50051 | mockd add grpc --proto svc.proto --service Greeter --rpc-method Greet |
| GraphQL | 4280 | mockd add graphql --path /graphql --operation hello |
| WebSocket | 4280 | mockd add websocket --path /ws --echo |
| MQTT | 1883 | mockd add mqtt --topic sensors/temp --payload '{"temp":72}' |
| SSE | 4280 | mockd add http --path /events --sse --sse-event 'data: hello' |
| SOAP | 4280 | mockd add soap --path /soap --operation GetWeather --response '<OK/>' |
インポートとエクスポート — OpenAPI、Postman、HAR、WireMock、cURL、WSDL
mockd import openapi.yaml # OpenAPI 3.x / Swagger 2.0
mockd import collection.json # Postman collections
mockd import recording.har # HAR files
mockd import wiremock-mapping.json # WireMock stubs
mockd import service.wsdl # WSDL → SOAP mocks
mockd import "curl -X GET https://api.example.com/users" # cURL commands
mockd export --format yaml > mocks.yaml
カオスエンジニアリング — レイテンシ、エラー、サーキットブレーカー
mockd chaos apply flaky # 30% error rate
mockd chaos apply slow-api # 200-800ms latency
mockd chaos apply offline # 100% 503 errors
mockd chaos disable
クラウドトンネル — ローカルのモックをすぐに共有
mockd tunnel
# → https://a1b2c3d4.tunnel.mockd.io → http://localhost:4280
7 つのプロトコルすべてを、ポート 443 の単一のセキュアな接続で多重化します。NAT やファイアウォールの背後でも動作します。
ワークスペース — 分離されたモック環境
mockd workspace create -n "Payment API" --use
mockd import stripe-openapi.yaml
mockd workspace create -n "Comms API" --use
mockd import twilio-openapi.yaml
# Mocks, state, and logs are fully isolated per workspace
プロキシ記録 — 実際のトラフィックを記録し、モックとして再生
mockd proxy start --port 8888
# Configure your app to use http://localhost:8888 as proxy
# Traffic is recorded, then replay with:
mockd import recordings/session.json
ウェブダッシュボード — モックを視覚的に管理
リリースビルドでは、管理ポート(http://localhost:4290)からウェブ UI を提供します。VS Code 風のエディター、コマンドパレット、フォルダーを含むモックツリー、リクエストログビューアー、ニアミスのデバッグ機能を備えています。
Mockd Cloud
mockd はアカウント不要で、完全にオフラインで動作します。共有環境を利用したいチーム向けの機能は次のとおりです。
- 永続的なクラウドモック — チーム全体がアクセスできるモック環境をデプロイできます
- チーム管理 — アクセス制御付きの共有ワークスペース
- クラウドトンネル — カスタムドメインを使用した認証済みトンネル
近日公開予定です。ウェイトリストに登録。
ドキュメント
詳しいガイド、API リファレンス、設定ドキュメントは docs.mockd.io をご覧ください。
コントリビューション
コントリビューションを歓迎します!セットアップについては CONTRIBUTING.md をご覧ください。
ライセンス
Apache License 2.0 — 商用利用も無料です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。