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
______________________________________________________________________
快速开始
# 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 # GoLinux、macOS和Windows的预构建二进制文件 发布 页面。
为什么嘲笑?
其他所有模拟工具都让你做出选择:选择一个协议,安装一个运行时,附加扩展。莫克没有。
| mockd | WireMock | Mockoon | Prism | MockServer | Beeceptor | json服务器 | |
|---|---|---|---|---|---|---|---|
| 单二进制,无运行时 | ✅ | ❌ JVM | ❌ 电子 | ✅ | ❌ JVM | ❌ 软件即服务❌ 节点 | |
| 内置全部9种协议 | ✅ | 🔌 Ext | 部分 | 仅HTTP | 仅HTTP | 部分 | 仅REST |
| 混沌剖面图+断路器 | ✅ | ⚠️ 云 | ❌ | ❌ | ❌ | ❌ | ❌ |
| MCP服务器 | ✅ 本地 | ⚠️ 云 | ❌ | ❌ | ❌ | ⚠️ 云,团队+ | ❌ |
| 免费+自住,无限制 | ✅ | ✅ | ✅ | ✅ | ✅ | 50次/天 | ✅ |
🔌 Ext =需要单独的扩展JAR•⚠️ 云 =仅在付费/托管层
Full capability matrix (deployment, protocols, capabilities, imports/exports, pricing)
部署
| mockd | WireMock | Mockoon | Prism | MockServer | Beeceptor | json服务器 | |
|---|---|---|---|---|---|---|---|
| 本机单二进制 | ✅ 去吧❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
| 需要运行时 | 无 | JVM | 电子/节点 | 可选节点 | JVM | n/a(SaaS) | 节点 |
| Docker镜像 | ✅ | ✅ | ✅ CLI | ✅ | ✅ | ⚠️ 企业 | ❌ |
| 托管SaaS产品 | 路线图 | WireMock Cloud | Mockoon Cloud | Stoplight | ❌ | ✅ | ❌ |
协议支持
| mocked | WireMock OSS | Mockoon | Prism | MockServer | Beeceptor | json服务器 | |
|---|---|---|---|---|---|---|---|
| REST/HTTP | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| gRPC | ✅ | 🔌 外部 | ❌ | ❌ | ❌ | ✅ | ❌ |
| GraphQL | ✅ | 🔌 外部 | ❌ | ❌ | ❌ | ✅ | ❌ |
| WebSocket | ✅ | 🔌 Ext(测试版) | ✅ | ❌ | ❌ | ❌ | ❌ |
| MQTT | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 上海证券交易所✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
| SOAP(WSDL) | ✅ | ❌ | 部分 | ❌ | 部分 | ✅ | ❌ |
| mTLS | ✅ | ✅ | 部分 | ❌ | ✅ | ✅ | ❌ |
| OAuth流程 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
能力
| mocked | WireMock OSS | Mockoon | Prism | MockServer | Beeceptor | json服务器 | |
|---|---|---|---|---|---|---|---|
| 有状态的CRUD | ✅ | ❌ | ✅ | 部分 | ❌ | ✅ | ✅ |
| 多步有状态流 | ✅ | ✅ 场景 | 部分 | ❌ | 部分 | ✅ | ❌ |
| 故障注入(延迟、错误) | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| 混沌剖面 | ✅ | ⚠️ 云 | ❌ | ❌ | ❌ | ❌ | ❌ |
| 断路器 | ✅ | ⚠️ 云 | ❌ | ❌ | ❌ | ❌ | ❌ |
| 带宽限制 | ✅ | ❌ | ❌ | ❌ | ❌ | 路线图 | ❌ |
| 管理员REST API | ✅ | ✅ | 仅限CLI | ❌ | ✅ | ✅ | 部分 |
| 内置网络仪表板 | ✅ | ⚠️ 云 | ⚠️ 云 | ❌ | ✅ 只读 | ✅ | ❌ |
| 本机桌面GUI | ❌ | ❌ | ✅ 电子 | ❌ | ❌ | ❌ | ❌ |
| MCP服务器 | ✅ 本地 | ⚠️ 云 | ❌ | ❌ | ❌ | ⚠️ 云团队+ | ❌ |
| 云隧道共享 | ✅ | ❌ | ⚠️ 云 | ❌ | ❌ | ✅ | ❌ |
进口/出口
| mocked | WireMock OSS | Mockoon | Prism | MockServer | Beeceptor | json服务器 | |
|---|---|---|---|---|---|---|---|
| OpenAPI导入 | ✅ | ⚠️ 云 | ✅ | ✅ | ✅ | ✅ | ❌ |
| 邮递员导入 | ✅ | ⚠️ 云 | ❌ | ✅ | ❌ | ❌ | ❌ |
| 进口 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| WSDL导入 | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
| cURL导入 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| WireLock格式导入 | ✅ | 本地 | ❌ | ❌ | ❌ | ❌ | ❌ |
| 模拟格式导入 | ✅ | ❌ | 本地 | ❌ | ❌ | ❌ | ❌ |
| HAR出口 | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
免费等级限制
| 请求 | 模拟规则 | 成本 | |
|---|---|---|---|
| mocked | 无限 | 无限制 | 免费(Apache 2.0) |
| WireMock OSS | 无限 | 无限制 | 免费(Apache 2.0) |
| 模拟桌面/CLI | 无限 | 无限 | 免费(MIT) |
| Prism | 无限 | 无限 | 免费(Apache 2.0) |
| MockServer | 无限 | 无限制 | 免费(Apache 2.0) |
| Beeceptor免费套餐 | 50美元/天/终点 | 3美元/月+更多 | |
| json服务器 | 无限 | 无限 | 免费(MIT) |
传说: ✅ 内置•🔌 Ext=单独的OSS扩展⚠️ 云=仅在付费/托管层•部分=有限实施•路线图=在项目规定的路线图上,尚未发货
关于WireLock导入的说明。 这⚠️ CloudOpenAPI和Postman导入上的标记反映了第一方WireLock功能。社区转换器存在(例如。openapi-to-wiremock,OpenAPI生成器目标),但不与OSS独立JAR捆绑在一起。
数字双胞胎
导入一个真实的API规范,将其绑定到有状态表,并获得一个传递真实SDK的mock:
# 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"}经过真实SDK验证:
- 条纹: 49/49
stripe-goSDK测试通过 - 提里奥: 13/13
twilio-goSDK测试通过 - OpenAI:
openaiPython SDK已验证(模型、助手、聊天完成)
看 模拟样品 用于完整的数字孪生配置。
人工智能原生(MCP)
mocked包含一个内置 模型上下文协议 服务器与 18工具.AI代理可以创建模拟、管理状态、导入规范和验证合约,而无需接触CLI:
{
"mcpServers": {
"mockd": { "command": "mockd", "args": ["mcp"] }
}
}适用于Claude Desktop、Cursor、Windsurf和任何兼容MCP的编辑器。工具包括模拟CRUD、有状态资源、混沌注入、请求日志、验证、工作区和导入/导出。
特性
Multi-Protocol Mocking — 7 protocols, unified CLI
| 协议 | 端口 | 示例 |
|---|---|---|
| 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}' |
| 东南偏南 | 4280 | mockd add http --path /events --sse --sse-event 'data: hello' |
| 肥皂 | 4280 | mockd add soap --path /soap --operation GetWeather --response '' |
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.yamlChaos 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 disableCloud Tunnel — share local mocks instantly
mockd tunnel
# → https://a1b2c3d4.tunnel.mockd.io → http://localhost:4280所有7个协议都通过端口443上的单个安全连接进行多路复用。在NAT和防火墙后工作。
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 workspaceProxy 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.jsonWeb Dashboard — manage mocks visually
发布版本从管理端口提供web UI(http://localhost:4290).VS代码样式编辑器、命令面板、带文件夹的模拟树、请求日志查看器和未遂调试。
模拟云
mocked完全脱机工作,无需帐户。对于想要共享环境的团队:
- 持久云模拟 --部署整个团队都可以攻击的模拟环境
- 团队管理 --具有访问控制的共享工作区
- 云隧道 --具有自定义域的经过身份验证的隧道
马上就来。 加入候补名单.
文档
完整指南、API参考资料和配置文档位于 docs.mockd.io.
贡献
欢迎投稿!看 贡献.md 用于设置。
许可证
Apache许可证2.0 --免费用于商业用途。
