Sponsored by Deepsite.site

Mockd

Created By
getmockd22 days ago
Content

mockd

CI Go Version License Release

One binary. Seven protocols. Zero dependencies.

Mock HTTP, gRPC, GraphQL, WebSocket, MQTT, SSE, and SOAP APIs from a single CLI tool. Import from OpenAPI, Postman, WireMock, HAR, or cURL. Share mocks instantly via built-in cloud tunneling.

mockd demo

Why mockd?

mockdWireMockMockoonjson-serverPrismMockServer
Single binary, no runtime:white_check_mark::x: JVM:x: Node:x: Node:x: Node:x: JVM
HTTP mocking:white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark:
gRPC mocking:white_check_mark:🔌 Ext:x::x::x::white_check_mark:
GraphQL mocking:white_check_mark:🔌 Ext:x::x::x::x:
WebSocket mocking:white_check_mark:🔌 Ext:x::x::x::x:
MQTT broker:white_check_mark::x::x::x::x::x:
SOAP mocking:white_check_mark::x::x::x::x::white_check_mark:
SSE streaming:white_check_mark::x::x::x::x::x:
OAuth/OIDC provider:white_check_mark::x::x::x::x::x:
Chaos engineering:white_check_mark::white_check_mark::x::x::x::x:
Stateful CRUD:white_check_mark::x::white_check_mark::white_check_mark::x::x:
Cloud tunnel sharing:white_check_mark::x::white_check_mark::x::x::x:
Proxy recording & replay:white_check_mark::white_check_mark::white_check_mark::x::x::white_check_mark:
Import OpenAPI/Postman/HAR:white_check_mark::white_check_mark::white_check_mark::x::white_check_mark::white_check_mark:
Built-in web dashboard:white_check_mark::x::white_check_mark::x::x::x:
MCP server (AI-native):white_check_mark::x::x::x::x::x:

🔌 Ext = available via separate extension JAR, not bundled with WireMock core. mockd includes all protocols natively in a single binary.

Install

# Quick install
curl -sSL https://get.mockd.io | sh

# Homebrew
brew install getmockd/tap/mockd

# Docker
docker run -p 4280:4280 -p 4290:4290 ghcr.io/getmockd/mockd:latest

# Go
go install github.com/getmockd/mockd/cmd/mockd@latest

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

Quick Start

# Start the mock server
mockd start

# Mock an HTTP endpoint
mockd add http --path /api/users --body '[{"id": 1, "name": "Alice"}]'

# Test it
curl http://localhost:4280/api/users
# → [{"id": 1, "name": "Alice"}]

# Mock a GraphQL API
mockd add graphql --path /graphql --operation users \
  --response '[{"id": 1, "name": "Alice"}]'

# Mock a gRPC service
mockd add grpc --proto ./service.proto \
  --service myapp.UserService --rpc-method GetUser \
  --response '{"id": 1, "name": "Alice"}'

# Mock a WebSocket endpoint
mockd add websocket --path /ws/chat --echo

# Import from OpenAPI, Postman, or cURL
mockd import openapi.yaml
mockd import collection.json
mockd import "curl -X GET https://api.example.com/users"

Features

Multi-Protocol Mocking

Mock seven protocols from a single tool with a unified CLI and Admin API:

ProtocolPortExample
HTTP/HTTPS4280mockd add http --path /api/hello --body '{"msg":"hi"}'
gRPC50051mockd add grpc --proto svc.proto --service Greeter --rpc-method Greet
GraphQL4280mockd add graphql --path /graphql --operation hello
WebSocket4280mockd add websocket --path /ws --echo
MQTT1883mockd add mqtt --topic sensors/temp --payload '{"temp":72}'
SSE4280mockd add http --path /events --sse --sse-event 'data: hello'
SOAP4280mockd add soap --path /soap --operation GetWeather --response '<OK/>'

Import & Export

Bring your existing API definitions — no rewriting needed:

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

Cloud Tunnel

Share local mocks with your team instantly. All protocols routed through a single QUIC connection on port 443:

mockd tunnel enable
# → https://a1b2c3d4.tunnel.mockd.io → http://localhost:4280

Chaos Engineering

Test how your app handles failures:

# Apply a built-in chaos profile at startup
mockd serve --chaos-profile flaky --config mockd.yaml

# Or enable chaos at runtime
mockd chaos apply slow-api

Stateful Mocking

Simulate CRUD resources with automatic ID generation, pagination, and persistence. State is shared across protocols — REST and SOAP operate on the same data:

# mockd.yaml
statefulResources:
  - name: users
    basePath: /api/users
    seedData:
      - { id: "1", name: "Alice", email: "alice@example.com" }

mocks:
  - type: soap
    soap:
      path: /soap/UserService
      operations:
        GetUser:
          statefulResource: users    # Same data as REST!
          statefulAction: get
mockd serve --config mockd.yaml

# Create via REST
curl -X POST http://localhost:4280/api/users \
  -d '{"name": "Bob"}' -H 'Content-Type: application/json'

# Retrieve via SOAP — same user!
curl -X POST http://localhost:4280/soap/UserService \
  -H 'SOAPAction: GetUser' -H 'Content-Type: text/xml' \
  -d '<soap:Envelope>...<GetUser><Id>...</Id></GetUser>...</soap:Envelope>'

Proxy Recording

Record real API traffic and replay it 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-name.json

Admin API

Full REST API for dynamic mock management at runtime:

# Create a mock
curl -X POST http://localhost:4290/mocks \
  -H "Content-Type: application/json" \
  -d '{"type":"http","http":{"matcher":{"method":"GET","path":"/health"},"response":{"statusCode":200,"body":"{\"status\":\"ok\"}"}}}'

# List mocks
curl http://localhost:4290/mocks

# Import OpenAPI spec
curl -X POST http://localhost:4290/import \
  -H "Content-Type: application/x-yaml" \
  --data-binary @openapi.yaml

Web Dashboard

Release builds include a built-in web UI served from the admin port:

mockd start
# Open http://localhost:4290 in your browser

Manage mocks for all 7 protocols visually with a VS Code-style tabbed editor, command palette (Ctrl+K), mock tree with search/sort/folders, request log viewer with near-miss debugging, and more. Docker images and all release packages include the dashboard automatically.

AI Mock Generation (MCP)

mockd includes a built-in Model Context Protocol server with 18 tools for full mock lifecycle management from AI-powered editors (Cursor, Windsurf, Claude Code):

mockd mcp  # Start the MCP server (stdio transport)

Tools cover mock CRUD, import/export, chaos engineering (10 built-in profiles), mock verification, stateful resource management, custom operations, and multi-environment context switching.

Configuration

Configure via flags, environment variables, or config files:

# .mockdrc.yaml
port: 4280
adminPort: 4290
httpsPort: 5280
maxLogEntries: 1000
VariableDescriptionDefault
MOCKD_PORTMock server port4280
MOCKD_ADMIN_PORTAdmin API port4290
MOCKD_HTTPS_PORTHTTPS port (0=disabled)0
MOCKD_CONFIGConfig file path

Documentation

mockd.io — Full documentation, guides, and API reference.

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

Apache License 2.0

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
WindsurfThe new purpose-built IDE to harness magic
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Playwright McpPlaywright MCP server
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
Serper MCP ServerA Serper MCP Server
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
ChatWiseThe second fastest AI chatbot™
Amap Maps高德地图官方 MCP Server
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Tavily Mcp
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
RedisA Model Context Protocol server that provides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.
CursorThe AI Code Editor
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
DeepChatYour AI Partner on Desktop