https://github.com/getmockd/mockd
High-performance, multi-protocol mock server. HTTP, WebSocket, gRPC, MQTT, SSE, GraphQL, SOAP in one binary.
https://github.com/getmockd/mockd
api-mocking chaos-engineering cli developer-tools golang graphql grpc mcp mock-server mqtt service-virtualization soap sse testing websocket
Last synced: 30 days ago
JSON representation
High-performance, multi-protocol mock server. HTTP, WebSocket, gRPC, MQTT, SSE, GraphQL, SOAP in one binary.
- Host: GitHub
- URL: https://github.com/getmockd/mockd
- Owner: getmockd
- License: apache-2.0
- Created: 2026-02-04T06:03:11.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-23T03:10:56.000Z (about 1 month ago)
- Last Synced: 2026-03-23T23:36:20.343Z (about 1 month ago)
- Topics: api-mocking, chaos-engineering, cli, developer-tools, golang, graphql, grpc, mcp, mock-server, mqtt, service-virtualization, soap, sse, testing, websocket
- Language: Go
- Homepage: https://mockd.io
- Size: 27 MB
- Stars: 31
- Watchers: 0
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Roadmap: ROADMAP.md
- Notice: NOTICE
- Maintainers: MAINTAINERS.md
Awesome Lists containing this project
- awesome-testing - mockd - Open-source multi-protocol mock server supporting HTTP, gRPC, GraphQL, WebSocket, MQTT, and SOAP with chaos engineering and proxy recording. (Software / Service Virtualization)
- awesome-graphql - mockd - Multi-protocol mock server with GraphQL schema mocking, resolver configuration, and query validation. Also supports HTTP, gRPC, WebSocket, MQTT, and SOAP. (Tools / Tools - Testing, Prototyping & Mocking)
- awesome-mqtt - mockd - Multi-protocol mock server with a built-in MQTT broker supporting QoS 0-2, retained messages, topic patterns, and device simulation for IoT development and testing. (Tools / Talks)
- fucking-awesome-graphql - mockd - Multi-protocol mock server with GraphQL schema mocking, resolver configuration, and query validation. Also supports HTTP, gRPC, WebSocket, MQTT, and SOAP. (Tools / Tools - Testing, Prototyping & Mocking)
- awesome-mcp-servers - Mockd - Multi-protocol API mock server with 18 MCP tools supporting HTTP, GraphQL, gRPC, WebSocket, MQTT, SSE, SOAP. Features chaos engineering, stateful CRUD, 8 import formats. Supports multiple platforms. ([Read more](/details/mockd.md)) `Api Mocking` `Multi Protocol` `Chaos Engineering` (Testing & Debugging Tools)
README
One binary. Seven protocols. Zero dependencies.
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
---
## Quick Start
```bash
# 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
```bash
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](https://github.com/getmockd/mockd/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 | json-server | Prism | MockServer |
|---|:---:|:---:|:---:|:---:|:---:|:---:|
| **Single binary, no runtime** | :white_check_mark: | :x: JVM | :x: Node | :x: Node | :x: Node | :x: JVM |
| **HTTP + gRPC + GraphQL + WS** | :white_check_mark: | 🔌 Ext | :x: | :x: | :x: | Partial |
| **MQTT + SSE + SOAP + OAuth** | :white_check_mark: | :x: | :x: | :x: | :x: | :x: |
| **Stateful CRUD** | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :x: | :x: |
| **Import OpenAPI/Postman/HAR** | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: |
| **Chaos engineering** | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: |
| **MCP server (AI-native)** | :white_check_mark: | :x: | :x: | :x: | :x: | :x: |
| **Cloud tunnel sharing** | :white_check_mark: | :x: | :white_check_mark: | :x: | :x: | :x: |
| **Built-in web dashboard** | :white_check_mark: | :x: | :white_check_mark: | :x: | :x: | :x: |
> 🔌 **Ext** = available via separate extension, not bundled. mockd includes everything in a single binary.
## Digital Twins
Import a real API spec, bind it to stateful tables, and get a mock that passes the real SDK:
```yaml
# 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 }
```
```bash
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](https://github.com/getmockd/mockd-samples) for complete digital twin configs.
## AI-Native (MCP)
mockd includes a built-in [Model Context Protocol](https://modelcontextprotocol.io/) server with **18 tools**. AI agents can create mocks, manage state, import specs, and verify contracts without touching the CLI:
```json
{
"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
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 ''` |
Import & Export — OpenAPI, Postman, HAR, WireMock, cURL, WSDL
```bash
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
```
Chaos Engineering — latency, errors, circuit breakers
```bash
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
```
Cloud Tunnel — share local mocks instantly
```bash
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.
Workspaces — isolated mock environments
```bash
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
```
Proxy Recording — record real traffic, replay as mocks
```bash
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
```
Web 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 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](https://mockd.io/pricing#waitlist-form).
## Documentation
Full guides, API reference, and config docs at **[mockd.io](https://mockd.io)**.
## Contributing
Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for setup.
## License
[Apache License 2.0](LICENSE) — free for commercial use.