Mock HTTP, gRPC, GraphQL, WebSocket, MQTT, SSE, and SOAP from a single CLI tool.
Import OpenAPI specs. Build digital twins. Let AI agents create mocks for you.
Website Β· Docs Β· Samples Β· Contributing
# 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":"alice@test.com"}'
# β {"id":"a1b2c3","name":"Alice","email":"alice@test.com"}
curl localhost:4280/api/users
# β {"data":[{"id":"a1b2c3","name":"Alice","email":"alice@test.com"}],"meta":{"total":1}}More install options
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 # GoPre-built binaries for Linux, macOS, and Windows on the Releases page.
Every other mock tool makes you choose: pick one protocol, install a runtime, bolt on extensions. mockd doesn't.
| mockd | WireMock | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| Single binary, no runtime | β | β JVM | β Electron | β | β JVM | β SaaS | β Node |
| All 9 protocols built-in | β | π Ext | Partial | HTTP only | HTTP only | Partial | REST only |
| Chaos profiles + circuit breakers | β | β | β | β | β | β | |
| MCP server | β local | β | β | β | β | ||
| Free + self-hostable, unlimited | β | β | β | β | β | 50 req/day | β |
π Ext = requires separate extension JAR β’
β οΈ Cloud = only in paid/hosted tier
Full capability matrix (deployment, protocols, capabilities, imports/exports, pricing)
| mockd | WireMock | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| Native single binary | β Go | β | β | β | β | β | β |
| Runtime required | none | JVM | Electron/Node | optional Node | JVM | n/a (SaaS) | Node |
| Docker image | β | β | β CLI | β | β | β | |
| Managed SaaS offering | roadmap | WireMock Cloud | Mockoon Cloud | Stoplight | β | β | β |
| mockd | WireMock OSS | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| REST / HTTP | β | β | β | β | β | β | β |
| gRPC | β | π Ext | β | β | β | β | β |
| GraphQL | β | π Ext | β | β | β | β | β |
| WebSocket | β | π Ext (beta) | β | β | β | β | β |
| MQTT | β | β | β | β | β | β | β |
| SSE | β | β | β | β | β | β | β |
| SOAP (WSDL) | β | β | Partial | β | Partial | β | β |
| mTLS | β | β | Partial | β | β | β | β |
| OAuth flows | β | β | β | β | β | β | β |
| mockd | WireMock OSS | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| Stateful CRUD | β | β | β | Partial | β | β | β |
| Multi-step stateful flows | β | β Scenarios | Partial | β | Partial | β | β |
| Fault injection (delay, errors) | β | β | β | β | β | β | β |
| Chaos profiles | β | β | β | β | β | β | |
| Circuit breakers | β | β | β | β | β | β | |
| Bandwidth throttling | β | β | β | β | β | roadmap | β |
| Admin REST API | β | β | CLI only | β | β | β | Partial |
| Built-in web dashboard | β | β | β read-only | β | β | ||
| Native desktop GUI | β | β | β Electron | β | β | β | β |
| MCP server | β local | β | β | β | β | ||
| Cloud tunnel sharing | β | β | β | β | β | β |
| mockd | WireMock OSS | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| OpenAPI import | β | β | β | β | β | β | |
| Postman import | β | β | β | β | β | β | |
| HAR import | β | β | β | β | β | β | β |
| WSDL import | β | β | β | β | β | β | β |
| cURL import | β | β | β | β | β | β | β |
| WireMock format import | β | native | β | β | β | β | β |
| Mockoon format import | β | β | native | β | β | β | β |
| HAR export | β | β | β | β | β | β | β |
| Requests | Mock rules | Cost | |
|---|---|---|---|
| mockd | unlimited | unlimited | free (Apache 2.0) |
| WireMock OSS | unlimited | unlimited | free (Apache 2.0) |
| Mockoon desktop / CLI | unlimited | unlimited | free (MIT) |
| Prism | unlimited | unlimited | free (Apache 2.0) |
| MockServer | unlimited | unlimited | free (Apache 2.0) |
| Beeceptor free tier | 50 / day / endpoint | 3 | $10/mo+ for more |
| json-server | unlimited | unlimited | free (MIT) |
Legend: β
built-in β’ π Ext = separate OSS extension β’
Note on WireMock imports. The
β οΈ Cloudmarks on OpenAPI and Postman import reflect first-party WireMock features. Community converters exist (e.g.openapi-to-wiremock, OpenAPI Generator targets) but are not bundled with the OSS standalone JAR.
Import a real API spec, bind it to stateful tables, and get a mock that passes the real 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: "billing@acme.com" }
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=test@corp.com"
# β {"id":"cus_a1b2c3","object":"customer","name":"Test","email":"test@corp.com"}Validated with real SDKs:
- Stripe: 49/49
stripe-goSDK tests pass - Twilio: 13/13
twilio-goSDK tests pass - OpenAI:
openaiPython SDK verified (models, assistants, chat completions)
See mockd-samples for complete digital twin configs.
mockd includes a built-in Model Context Protocol server with 18 tools. AI agents can create mocks, manage state, import specs, and verify contracts without touching the CLI:
{
"mcpServers": {
"mockd": { "command": "mockd", "args": ["mcp"] }
}
}Works in Claude Desktop, Cursor, Windsurf, and any MCP-compatible editor. Tools cover mock CRUD, stateful resources, chaos injection, request logs, verification, workspaces, and import/export.
Multi-Protocol Mocking β 7 protocols, unified CLI
| Protocol | Port | Example |
|---|---|---|
| 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/>' |
Import & Export β 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.yamlChaos Engineering β latency, errors, circuit breakers
mockd chaos apply flaky # 30% error rate
mockd chaos apply slow-api # 200-800ms latency
mockd chaos apply offline # 100% 503 errors
mockd chaos disableCloud Tunnel β share local mocks instantly
mockd tunnel
# β https://a1b2c3d4.tunnel.mockd.io β http://localhost:4280All 7 protocols multiplexed through a single secure connection on port 443. Works behind NAT and firewalls.
Workspaces β isolated mock environments
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 workspaceProxy Recording β record real traffic, replay as mocks
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.jsonWeb Dashboard β manage mocks visually
Release builds serve a web UI from the admin port (http://localhost:4290). VS Code-style editor, command palette, mock tree with folders, request log viewer, and near-miss debugging.
mockd works fully offline with no account required. For teams that want shared environments:
- Persistent cloud mocks β deploy mock environments your whole team can hit
- Team management β shared workspaces with access controls
- Cloud tunnels β authenticated tunnels with custom domains
Coming soon. Join the waitlist.
Full guides, API reference, and config docs at docs.mockd.io.
Contributions welcome! See CONTRIBUTING.md for setup.
Apache License 2.0 β free for commercial use.