Skip to main content
Glama

Quick Start

# 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}}
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

Pre-built binaries for Linux, macOS, and Windows on the Releases page.

Why mockd?

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

⚠️ Cloud

MCP server

✅ local

⚠️ Cloud

⚠️ Cloud, Team+

Free + self-hostable, unlimited

50 req/day

🔌 Ext = requires separate extension JAR • ⚠️ Cloud = only in paid/hosted tier

Deployment

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

⚠️ Enterprise

Managed SaaS offering

roadmap

WireMock Cloud

Mockoon Cloud

Stoplight

Protocol support

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

Capabilities

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

⚠️ Cloud

Circuit breakers

⚠️ Cloud

Bandwidth throttling

roadmap

Admin REST API

CLI only

Partial

Built-in web dashboard

⚠️ Cloud

⚠️ Cloud

✅ read-only

Native desktop GUI

✅ Electron

MCP server

✅ local

⚠️ Cloud

⚠️ Cloud Team+

Cloud tunnel sharing

⚠️ Cloud

Import / export

mockd

WireMock OSS

Mockoon

Prism

MockServer

Beeceptor

json-server

OpenAPI import

⚠️ Cloud

Postman import

⚠️ Cloud

HAR import

WSDL import

cURL import

WireMock format import

native

Mockoon format import

native

HAR export

Free tier limits

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 • ⚠️ Cloud = only in paid / hosted tier • Partial = limited implementation • roadmap = on the project's stated roadmap, not yet shipped

Note on WireMock imports. The ⚠️ Cloud marks 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.

Digital Twins

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-go SDK tests pass

  • Twilio: 13/13 twilio-go SDK tests pass

  • OpenAI: openai Python SDK verified (models, assistants, chat completions)

See mockd-samples for complete digital twin configs.

AI-Native (MCP)

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.

Features

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/>'

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

All 7 protocols multiplexed through a single secure connection on port 443. Works behind NAT and firewalls.

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

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 Cloud

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.

Documentation

Full guides, API reference, and config docs at docs.mockd.io.

Contributing

Contributions welcome! See CONTRIBUTING.md for setup.

License

Apache License 2.0 — free for commercial use.

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
2dRelease cycle
25Releases (12mo)
Issues opened vs closed

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/getmockd/mockd'

If you have feedback or need assistance with the MCP directory API, please join our Discord server