mockd
Servidor de API mock multi-protocolo com 18 ferramentas MCP — simule APIs HTTP, GraphQL, gRPC, WebSocket, MQTT, SSE e SOAP com engenharia de caos, CRUD com estado e respostas determinísticas baseadas em semente.
Documentação
Um binário. Sete protocolos. Zero dependências.
Simule HTTP, gRPC, GraphQL, WebSocket, MQTT, SSE e SOAP com uma única ferramenta de linha de comando.
Importe especificações OpenAPI. Crie gêmeos digitais. Deixe agentes de IA criarem mocks para você.
Site · Documentação · Exemplos · Contribuição
Início Rápido
# 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}}
Mais opções de instalação
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
Binários pré-compilados para Linux, macOS e Windows na página de Releases.
Por que mockd?
Toda outra ferramenta de mock faz você escolher: escolha um protocolo, instale um runtime, adicione extensões. O mockd não faz isso.
| mockd | WireMock | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| Binário único, sem runtime | ✅ | ❌ JVM | ❌ Electron | ✅ | ❌ JVM | ❌ SaaS | ❌ Node |
| Todos os 9 protocolos integrados | ✅ | 🔌 Ext | Parcial | Somente HTTP | Somente HTTP | Parcial | Somente REST |
| Perfis de caos + circuit breakers | ✅ | ⚠️ Cloud | ❌ | ❌ | ❌ | ❌ | ❌ |
| Servidor MCP | ✅ local | ⚠️ Cloud | ❌ | ❌ | ❌ | ⚠️ Cloud, Team+ | ❌ |
| Gratuito + auto-hospedável, ilimitado | ✅ | ✅ | ✅ | ✅ | ✅ | 50 req/dia | ✅ |
🔌 Ext = requer JAR de extensão separado • ⚠️ Cloud = somente no nível pago/hospedado
Matriz completa de capacidades (implantação, protocolos, capacidades, importações/exportações, preços)
Implantação
| mockd | WireMock | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| Binário nativo único | ✅ Go | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Runtime necessário | nenhum | JVM | Electron/Node | Node opcional | JVM | n/d (SaaS) | Node |
| Imagem Docker | ✅ | ✅ | ✅ CLI | ✅ | ✅ | ⚠️ Enterprise | ❌ |
| Oferta SaaS gerenciada | roadmap | WireMock Cloud | Mockoon Cloud | Stoplight | ❌ | ✅ | ❌ |
Suporte a protocolos
| mockd | WireMock OSS | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| REST / HTTP | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| gRPC | ✅ | 🔌 Ext | ❌ | ❌ | ❌ | ✅ | ❌ |
| GraphQL | ✅ | 🔌 Ext | ❌ | ❌ | ❌ | ✅ | ❌ |
| WebSocket | ✅ | 🔌 Ext (beta) | ✅ | ❌ | ❌ | ❌ | ❌ |
| MQTT | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| SSE | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| SOAP (WSDL) | ✅ | ❌ | Parcial | ❌ | Parcial | ✅ | ❌ |
| mTLS | ✅ | ✅ | Parcial | ❌ | ✅ | ✅ | ❌ |
| Fluxos OAuth | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Capacidades
| mockd | WireMock OSS | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| CRUD com estado | ✅ | ❌ | ✅ | Parcial | ❌ | ✅ | ✅ |
| Fluxos com estado em várias etapas | ✅ | ✅ Cenários | Parcial | ❌ | Parcial | ✅ | ❌ |
| Injeção de falhas (atraso, erros) | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| Perfis de caos | ✅ | ⚠️ Cloud | ❌ | ❌ | ❌ | ❌ | ❌ |
| Circuit breakers | ✅ | ⚠️ Cloud | ❌ | ❌ | ❌ | ❌ | ❌ |
| Limitação de largura de banda | ✅ | ❌ | ❌ | ❌ | ❌ | roadmap | ❌ |
| API REST administrativa | ✅ | ✅ | Somente CLI | ❌ | ✅ | ✅ | Parcial |
| Painel web integrado | ✅ | ⚠️ Cloud | ⚠️ Cloud | ❌ | ✅ somente leitura | ✅ | ❌ |
| GUI desktop nativa | ❌ | ❌ | ✅ Electron | ❌ | ❌ | ❌ | ❌ |
| Servidor MCP | ✅ local | ⚠️ Cloud | ❌ | ❌ | ❌ | ⚠️ Cloud Team+ | ❌ |
| Compartilhamento por túnel na nuvem | ✅ | ❌ | ⚠️ Cloud | ❌ | ❌ | ✅ | ❌ |
Importação / exportação
| mockd | WireMock OSS | Mockoon | Prism | MockServer | Beeceptor | json-server | |
|---|---|---|---|---|---|---|---|
| Importação OpenAPI | ✅ | ⚠️ Cloud | ✅ | ✅ | ✅ | ✅ | ❌ |
| Importação Postman | ✅ | ⚠️ Cloud | ❌ | ✅ | ❌ | ❌ | ❌ |
| Importação HAR | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Importação WSDL | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
| Importação cURL | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Importação de formato WireMock | ✅ | nativo | ❌ | ❌ | ❌ | ❌ | ❌ |
| Importação de formato Mockoon | ✅ | ❌ | nativo | ❌ | ❌ | ❌ | ❌ |
| Exportação HAR | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
Limites do nível gratuito
| Requisições | Regras de mock | Custo | |
|---|---|---|---|
| mockd | ilimitadas | ilimitadas | gratuito (Apache 2.0) |
| WireMock OSS | ilimitadas | ilimitadas | gratuito (Apache 2.0) |
| Mockoon desktop / CLI | ilimitadas | ilimitadas | gratuito (MIT) |
| Prism | ilimitadas | ilimitadas | gratuito (Apache 2.0) |
| MockServer | ilimitadas | ilimitadas | gratuito (Apache 2.0) |
| Beeceptor nível gratuito | 50 / dia / endpoint | 3 | US$ 10/mês+ para mais |
| json-server | ilimitadas | ilimitadas | gratuito (MIT) |
Legenda: ✅ integrado • 🔌 Ext = extensão OSS separada • ⚠️ Cloud = somente no nível pago / hospedado • Parcial = implementação limitada • roadmap = no roadmap declarado do projeto, ainda não lançado
Nota sobre importações do WireMock. As marcas
⚠️ Cloudnas importações OpenAPI e Postman refletem recursos de primeira parte do WireMock. Existem conversores da comunidade (por exemplo,openapi-to-wiremock, alvos do OpenAPI Generator), mas não são incluídos no JAR autônomo OSS.
Gêmeos Digitais
Importe uma especificação de API real, vincule-a a tabelas com estado e obtenha um mock que passa no SDK real:
# 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"}
Validado com SDKs reais:
- Stripe: 49/49 testes do SDK
stripe-gopassam - Twilio: 13/13 testes do SDK
twilio-gopassam - OpenAI: SDK Python
openaiverificado (models, assistants, chat completions)
Consulte mockd-samples para configurações completas de gêmeos digitais.
Nativo para IA (MCP)
O mockd inclui um servidor Model Context Protocol integrado com 18 ferramentas. Agentes de IA podem criar mocks, gerenciar estado, importar especificações e verificar contratos sem tocar na CLI:
{
"mcpServers": {
"mockd": { "command": "mockd", "args": ["mcp"] }
}
}
Funciona no Claude Desktop, Cursor, Windsurf e em qualquer editor compatível com MCP. As ferramentas cobrem CRUD de mocks, recursos com estado, injeção de caos, logs de requisições, verificação, workspaces e importação/exportação.
Recursos
Mock Multi-Protocolo — 7 protocolos, CLI unificada
| Protocolo | Porta | Exemplo |
|---|---|---|
| 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/>' |
Importação & Exportação — 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
Engenharia de Caos — latência, erros, 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
Túnel na Nuvem — compartilhe mocks locais instantaneamente
mockd tunnel
# → https://a1b2c3d4.tunnel.mockd.io → http://localhost:4280
Todos os 7 protocolos multiplexados por uma única conexão segura na porta 443. Funciona atrás de NAT e firewalls.
Workspaces — ambientes de mock isolados
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
Gravação por Proxy — grave tráfego real, reproduza como 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
Painel Web — gerencie mocks visualmente
As versões de lançamento servem uma interface web na porta administrativa (http://localhost:4290). Editor estilo VS Code, paleta de comandos, árvore de mocks com pastas, visualizador de logs de requisições e depuração de quase-acertos.
Mockd Cloud
O mockd funciona totalmente offline, sem necessidade de conta. Para equipes que desejam ambientes compartilhados:
- Mocks persistentes na nuvem — implante ambientes de mock que toda a sua equipe pode acessar
- Gerenciamento de equipe — workspaces compartilhados com controles de acesso
- Túneis na nuvem — túneis autenticados com domínios personalizados
Em breve. Entre na lista de espera.
Documentação
Guias completos, referência de API e documentação de configuração em docs.mockd.io.
Contribuição
Contribuições são bem-vindas! Consulte CONTRIBUTING.md para configuração.
Licença
Apache License 2.0 — gratuito para uso comercial.