freshcrate
Skin:/
Home > MCP Servers > mockd

mockd

High-performance, multi-protocol mock server. HTTP, WebSocket, gRPC, MQTT, SSE, GraphQL, SOAP in one binary.

Why this rank:Strong adoptionRelease freshnessHealthy release cadence

Description

High-performance, multi-protocol mock server. HTTP, WebSocket, gRPC, MQTT, SSE, GraphQL, SOAP in one binary.

README

mockd

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.

CI Release StarsGo License

Website ยท Docs ยท Samples ยท Contributing

mockd demo


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}}
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                    # 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 json-server Prism MockServer
Single binary, no runtime โœ… โŒ JVM โŒ Node โŒ Node โŒ Node โŒ JVM
HTTP + gRPC + GraphQL + WS โœ… ๐Ÿ”Œ Ext โŒ โŒ โŒ Partial
MQTT + SSE + SOAP + OAuth โœ… โŒ โŒ โŒ โŒ โŒ
Stateful CRUD โœ… โŒ โœ… โœ… โŒ โŒ
Import OpenAPI/Postman/HAR โœ… โœ… โœ… โŒ โœ… โœ…
Chaos engineering โœ… โœ… โŒ โŒ โŒ โŒ
MCP server (AI-native) โœ… โŒ โŒ โŒ โŒ โŒ
Cloud tunnel sharing โœ… โŒ โœ… โŒ โŒ โŒ
Built-in web dashboard โœ… โŒ โœ… โŒ โŒ โŒ

๐Ÿ”Œ 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:

# 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

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.yaml
Chaos 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 disable
Cloud Tunnel โ€” share local mocks instantly
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
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
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.

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.

Release History

VersionChangesUrgencyDate
v0.6.5## Changelog * fea37dddf4f61ac0d619725ae00103a8fad81300 fix: align dashboard fetch with release workflow * 41ab67f8918c708ca5a1d3d7b189618bc89bf927 fix: correct broken docs link and Go badge URL in README * 0e9c0a0866b2858ab31917b886a10b6c26aa1589 fix: embed dashboard UI in Docker image * 7c26c1cfca60d243aa1eb02d94ba3c13c8dac2c5 fix: waitlist link deep-links to form section on pricing page High4/10/2026
v0.6.4## Changelog * 8b90881aa7e1ab077afac64c2c4b06c18da8cda5 feat: AllowLocalhost default true, exempt dashboard assets from auth Medium3/23/2026
v0.6.3## Changelog * ef8fe9951517818330e13a7c14a0fe4c36363429 fix: revert workspace normalization middleware โ€” fixed in dashboard instead Medium3/23/2026
v0.6.2## Changelog Low3/20/2026
v0.6.1## Changelog * d4d29a4e1d61200320d831fbff186779dd911dee feat(schema): add workspaces section to JSON schema * 204f4629fd62d4f6118de518bf30dff08e9d6c67 fix(ci): update smoke test for tables+extend CRUD flow * eedb00b34361a611860eb51e28b5fb420d32426a fix(cli): --stateful flag now generates CRUD mocks when --path is provided * 64a7727c3b118626f7cef7612a6f120d4ee66251 fix: resolve all CI lint failures โ€” race, bodyclose, dupl, gocritic, perfsprint * 0221973338b2adf2778567cbaa806c9ba502dc37 fix: resolLow3/19/2026
v0.6.0## Changelog * 989b4aca2ab50468f24b50bfbf5f979bd1bc701b feat(cli): wire --workspace persistent flag through all commands * 15a13e0ea4367e153be8a7c62933bb1340ac9cab feat(mcp): add daemon health monitor with auto-restart * 82fcd1b8fac6d4002dfa009f375522a24f15915f feat(mcp): add file path support to import_mocks tool * 1ac8736a85b288e16f70d9c3a1223be3aa1f0868 feat(mcp): add workspace create action, chaos profile listing, remove dead path arg * d5704471a22630c36917334cc5df66987b943cf6 feat(mcp): expLow3/16/2026
v0.5.1## Changelog * 82d54ef6d30f1521b0f8ef4c52b0a37b5de88ab4 fix(ci): bump golangci-lint v2.8.0 โ†’ v2.11.2 โ€” fixes Go 1.26 compatibility * bf2b47e3032b49ba88a8ba066d0507830d8aedda fix(lint): resolve 10 gosec findings from golangci-lint v2.11.2 * cdf820d105c00043cf76ee1ba8b86155c0ee935d fix(lint): resolve all gosec/staticcheck findings from golangci-lint v2.11.2 * 66a0b351c3a00df0f062c2dc0250cf7b6be4d4be fix(security): bump Go 1.25.7 โ†’ 1.25.8 โ€” fixes 3 stdlib vulnerabilities * ed9c4c50278b7a1ed38249cafLow3/7/2026
v0.5.0## Changelog Low3/6/2026
v0.4.7## Changelog * 342977c9115719ef5f8d4a58e6a632d073142761 fix(docs): bump minimatch override to >=10.2.3 (CVE ReDoS) * c6137a1cc749657c83c8f46478f16ae4236c2f5a fix: correct WireMock protocol support claims in comparison table * b1e1353d39c1929aff97f4eb3bb2d06617be38d4 fix: make request template expressions case-insensitive * 95e9624f36470096bafbbd8f6b63d49ced91a116 fix: use lowercase template syntax in CI config for released binary compat * 932a58f1303dcd8aeaee0643c18223e75ae5efd1 refactor: deduplLow2/28/2026
v0.4.6## Changelog * b95d90e47232e46119a8a0e2189c752369584cd6 feat: add 'mockd engine' command for headless CI mode * 4f26101be70eb4c361857a8d1aa67dd2ac40c8dc feat: add Mockoon environment import (mockd import mockoon) * aed0d612ba400dbf93fc9bbf0315b7bf2f589715 feat: multi-engine fan-out for CP/DP Phase 1 * fac557ec333982bfa1a384ad679faf4e1734bb0c feat: schema-driven response generation from OpenAPI specs * 161af78840bc2d82706d9707e2ee0a645477d9ea feat: seeded reproducible responses for deterministic Low2/28/2026
v0.4.4## What's Changed - 9fabce2 chore: release v0.4.4 - 38e72b7 chore: fix server.json schema validation (description length, package identifier) - bc41bbc chore: add MCP registry server.json and OCI label for io.mockd namespace - c2d711f feat: add mockd verify CLI command for mock call count assertions - 095aeef docs: improve coverage depth for MCP, chaos profiles, faker types, and verification - d8e0720 docs: update docs, changelog, and tests for MCP expansion, faker types, and chaos profiles - 8Low2/27/2026
v0.4.3## What's Changed - bbf1665 feat: sync admin store to engine on registration and reconnection - 17ab5bf refactor: complete admin store-first migration for remaining 6 violations - 609937f refactor: enforce admin store as single source of truth for all mock state **Full Changelog**: https://github.com/getmockd/mockd/compare/v0.4.2...v0.4.3Low2/26/2026
v0.4.2## What's Changed - 1181295 fix: accept Python yaml.dump timestamp format on YAML reimport - 783cb85 fix: route config loading through admin so engine and store stay in sync - d9c2dfc fix: merge multiple SOAP bindings on same endpoint path - 974760f fix: handle prefixed WSDL namespaces in soap validate and add --body-file flag **Full Changelog**: https://github.com/getmockd/mockd/compare/v0.4.1...v0.4.2Low2/26/2026
v0.4.1## What's Changed - 939c606 fix: resolve lint issues, add atomic disclaimer, and use errors.As - c6bb950 feat: add --stateful-operation flag to HTTP mock CLI - 2738933 test: add 20 tests for custom operations pipeline - 8c07160 docs: add custom operations CLI reference and HTTP bridge documentation - 5998262 feat: add CLI stateful commands, custom operations pipeline, and HTTP bridge support - 10462ed feat: make stateful basePath optional for bridge-only resources - c13bd4d fix: resolve gap audLow2/25/2026
v0.4.0## What's Changed - 8dd3d63 docs: fix 24 bugs found by live-testing all 30 doc files against running server - 2c1e906 feat: add DX improvements โ€” auto-generate IDs, flexible body, stdin/dir import, --stateful flag - 28426d4 docs: fix 13 documentation bugs found by protocol audit - b4ffc98 fix: resolve 5 code bugs found by protocol audit **Full Changelog**: https://github.com/getmockd/mockd/compare/v0.3.3...v0.4.0Low2/24/2026
v0.3.3## What's Changed - c29a909 docs: update CHANGELOG for v0.3.3 release - aa120bc fix(cli): add --action and --mutation flag aliases for add command - f6e4ee3 docs: comprehensive docs overhaul for launch readiness - 6b5bcb7 chore: add demo GIF to README, fix comparison table examples - edc1b79 fix(cli): handle serve/start PID file format in 'mockd ps' - e7c9f41 chore: add VHS demo recording script - 8165e26 feat(cli): support positional type arg in 'mockd add' command - d862922 chore: overhaul RELow2/23/2026
v0.3.2## What's Changed - 3b745ce fix(mqtt): resolve deadlock in Broker.Stop when simulator is mid-publish - 8dd8c1c fix(ci): use non-colliding ports in benchmark workflow - 3fb4305 fix(test): bump binary size threshold to 45MB for Cobra+huh deps **Full Changelog**: https://github.com/getmockd/mockd/compare/v0.3.1...v0.3.2Low2/22/2026
v0.3.1## What's Changed - 8d7bdee chore(docs): bump JS deps to resolve Dependabot alerts - 1f8bad2 fix: resolve all golangci-lint warnings across codebase - a27060a fix up workspace reuse on conflict and remove stale CLI code - ec722e9 tighten admin pagination validation and SSE close contract - 73b2ac2 fix engine startup cleanup and concurrency races - fae94c7 add fast split registration heartbeat e2e - f2d4f21 send engine heartbeats in up orchestration - 211b24b respect admin data dir for workspaceLow2/22/2026
v0.3.0## What's Changed - df2a306 fix(test): increase CLI integration test timeouts for CI runners - 63ea2c9 fix: resolve lint issues for CI (unused func, unparam, error format, complexity) - 51efd68 test(e2e): add gRPC and MQTT protocol test suites with shared helpers - 3d7a3f8 docs: update CHANGELOG, SECURITY, CLI reference, add OAuth protocol guide - 6a0e597 test: add requestlog package tests (37 tests, was zero coverage) - 26d02e2 fix(install): use installed binary path for version display - 6d60Low2/20/2026
v0.2.9## What's Changed - 7f874fb chore: bump Helm chart to 0.2.9 - 1dac814 feat(cli): improve add/delete/list UX for common workflows - b2258ff fix(store): ensure data directory exists before atomic write - a3ba743 fix: suppress telemetry JSON output in install script - ec801c9 fix: update Homebrew references to renamed homebrew-tap repo - c2fa51b fix: correct Homebrew tap name and add formula update instructions to release workflow - 5f627e9 chore: bump Helm chart to 0.2.8, fix issue template versiLow2/16/2026
v0.2.8## What's Changed - 056e10a fix(e2e): use replace mode for import count test and update PATCH expectation - b1f085a fix(test): unwrap PUT envelope in port conflict tests and update SOAP WSDL test - 963a949 fix(test): unwrap PATCH envelope in port conflict integration test - 52ca38e chore: add tmp-data/ to .gitignore - c641d42 feat(proxy): file-based recording pipeline with disk persistence - 6681eea fix(admin): surface per-mock import errors instead of silently dropping - fae1c19 fix(grpc): recLow2/16/2026
v0.2.7## What's Changed - bbe8010 fix: resolve 10 golangci-lint issues โ€” bodyclose, gocritic, gocyclo, staticcheck, unused - 978a587 fix(p3): 9 cosmetic fixes โ€” version wiring, timestamps, seed IDs, export opts, shadow, log IDs, modulo bias, Insomnia port - 65ce355 fix(p2): eliminate validation body double-read, document protocol interfaces and template boundary - 0c3fa72 fix(p3): 12 cosmetic fixes + dead code cleanup + 39 new tests - b6fbd46 test(p3): add 126 tests for chaos, portability, stateful, Low2/13/2026
v0.2.6## What's Changed - 1792891 Merge pull request #3 from getmockd/refactor/deadcode-cleanup - 3ed1b30 refactor: remove 52 dead functions identified by deadcode analysis - 836cb40 Merge pull request #2 from getmockd/refactor/e2e-bats-migration - a4bfd12 ci(e2e): add E2E test job to CI pipeline - 1915dc0 test(e2e): add 12 coverage gap tests across 5 protocol suites - 861bdc5 chore(e2e): DX improvements โ€” JUnit output, teardowns, mise tasks, temp files - d89d55e fix(e2e): audit fixes โ€” helpers, reliLow2/11/2026
v0.2.5## What's Changed - ffb1b03 fix: increase CLI test context timeout to 60s for slow CI environments - 021c246 fix: resolve all golangci-lint issues for clean CI - d37f42e feat: wire 6 protocol templates + interactive flag into mockd init - 77d1f95 feat: fix 7 protocol gaps for launch readiness - 364eb86 fix: resolve 5 bugs found during punch list validation testing - fd1afd8 feat: add 3-container split E2E architecture proving production deployment model - cea6121 fix: output MockCollection formLow2/7/2026
v0.2.4## What's Changed - c99963a chore: clean repo for public release, update CHANGELOG for v0.2.4 - 11ce07c release: bump version to 0.2.4 - 72fdcb1 fix: strip markdown code fences from AI responses and resolve MQTT shutdown deadlock - 1c7494f fix: add validation to AI generation pipeline and unified admin API - b87ca7e feat: add OpenRouter as first-class AI provider - 303d5e0 fix: resolve CI lint and test failures from MCP overhaul - 25bd97e fix: actionable error messages when mockd server is unreLow2/4/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

ClosedSSPMAn open-source SSPM tool written in Gov0.4.1
mcp-tidy๐Ÿงน Simplify your MCP servers with mcp-tidy, clearing server bloat to enhance performance and improve tool selection in Claude Code.main@2026-06-07
NornicDBNornicdb is a low-latency, Graph + Vector, Temporal MVCC with all sub-ms HNSW search, graph traversal, and writes. Uses Neo4j Bolt/Cypher and qdrant's gRPC drivers so you can switch with no changes. Tv1.1.5
toolhive-registry-serverAn API server that implements the official MCP Registry API, providing standardised access to MCP servers from multiple backends, including file-based and other API-compliant registries.v1.4.6
toolhiveToolHive is an enterprise-grade platform for running and managing Model Context Protocol (MCP) servers.v0.29.0

More in MCP Servers

PlanExeCreate a plan from a description in minutes
agentroveYour own Claude Code UI, sandbox, in-browser VS Code, terminal, multi-provider support (Anthropic, OpenAI, GitHub Copilot, OpenRouter), custom skills, and MCP servers.
ProxmoxMCP-PlusEnhanced Proxmox MCP server with advanced virtualization management and full OpenAPI integration.
node9-proxyThe Execution Security Layer for the Agentic Era. Providing deterministic "Sudo" governance and audit logs for autonomous AI agents.