mcpField
M
Mockd

Mockd

本地服务
mockd.io开发工具15119 周前更新

关于 Mockd

Mockd 是一个多协议 API 模拟服务器,以单个二进制文件提供 HTTP、gRPC、GraphQL、WebSocket、MQTT、SSE 和 SOAP 的模拟。适合需要在本地测试或开发 API 的开发者与测试人员。项目内置 MCP 服务,可供 AI Agent 直接创建和管理模拟。

主要功能

  1. 01单一二进制文件,支持七种协议
  2. 02从 OpenAPI、Postman、HAR、WSDL 等格式导入
  3. 03混沌工程:延迟、错误和熔断器
  4. 04有状态 CRUD 接口与工作区隔离
  5. 05内置 Web 控制台与代理录制

适用场景

  1. 01在后端接口未就绪时进行前端开发
  2. 02模拟 Stripe 等第三方 API 进行集成测试
  3. 03通过 AI Agent 自动生成和验证模拟接口

MCP 相关

该项目内置 MCP 服务,提供18个工具,供 AI Agent 创建模拟、管理状态、导入规范和验证契约,无需直接使用命令行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mockd": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/getmockd/mockd"
]
}
}
}
启动命令docker run -i --rm ghcr.io/getmockd/mockd

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/getmockd/mockd

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mockd

一个二进制文件。七种协议。零依赖。

通过单个 CLI 工具模拟 HTTP、gRPC、GraphQL、WebSocket、MQTT、SSE 和 SOAP。
导入 OpenAPI 规范。构建数字孪生。让 AI Agent 为你创建模拟。

CI 发布 星标 Go 许可证

网站 · 文档 · 示例 · 参与贡献

mockd 演示


快速开始

# 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":"[email protected]"}'
# → {"id":"a1b2c3","name":"Alice","email":"[email protected]"}

curl localhost:4280/api/users
# → {"data":[{"id":"a1b2c3","name":"Alice","email":"[email protected]"}],"meta":{"total":1}}
更多安装选项
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

可在 Releases 页面获取适用于 Linux、macOS 和 Windows 的预构建二进制文件。

为什么选择 mockd?

其他模拟工具都让你做出选择:选一种协议、安装运行时、再添加扩展。mockd 不会。

mockdWireMockMockoonPrismMockServerBeeceptorjson-server
单个二进制文件,无需运行时✅❌ JVM❌ Electron✅❌ JVM❌ SaaS❌ Node
内置全部 9 种协议✅🔌 扩展部分支持仅 HTTP仅 HTTP部分支持仅 REST
故障配置文件 + 断路器✅⚠️ 云端❌❌❌❌❌
MCP 服务✅ 本地⚠️ 云端❌❌❌⚠️ 云端,Team 及以上❌
免费 + 可自托管,无限使用✅✅✅✅✅每天 50 次请求✅

🔌 扩展 = 需要单独的扩展 JAR • ⚠️ 云端 = 仅限付费/托管版本

完整功能矩阵(部署、协议、功能、导入/导出、定价)
部署
mockdWireMockMockoonPrismMockServerBeeceptorjson-server
原生单个二进制文件✅ Go❌❌✅❌❌❌
所需运行时无JVMElectron/Node可选 NodeJVM不适用(SaaS)Node
Docker 镜像✅✅✅ CLI✅✅⚠️ 企业版❌
托管式 SaaS 服务规划中WireMock CloudMockoon CloudStoplight❌✅❌
协议支持
mockdWireMock OSSMockoonPrismMockServerBeeceptorjson-server
REST / HTTP✅✅✅✅✅✅✅
gRPC✅🔌 扩展❌❌❌✅❌
GraphQL✅🔌 扩展❌❌❌✅❌
WebSocket✅🔌 扩展(测试版)✅❌❌❌❌
MQTT✅❌❌❌❌❌❌
SSE✅❌❌❌❌❌❌
SOAP(WSDL)✅❌部分支持❌部分支持✅❌
mTLS✅✅部分支持❌✅✅❌
OAuth 流程✅❌❌❌❌❌❌
功能
mockdWireMock OSSMockoonPrismMockServerBeeceptorjson-server
有状态 CRUD✅❌✅部分支持❌✅✅
多步骤有状态流程✅✅ 场景部分支持❌部分支持✅❌
故障注入(延迟、错误)✅✅✅❌✅✅❌
混沌配置✅⚠️ 云端❌❌❌❌❌
熔断器✅⚠️ 云端❌❌❌❌❌
带宽限制✅❌❌❌❌规划中❌
管理 REST API✅✅仅 CLI❌✅✅部分支持
内置 Web 仪表板✅⚠️ 云端⚠️ 云端❌✅ 只读✅❌
原生桌面 GUI❌❌✅ Electron❌❌❌❌
MCP 服务✅ 本地⚠️ 云端❌❌❌⚠️ Cloud Team+❌
云隧道共享✅❌⚠️ 云端❌❌✅❌
导入 / 导出
mockdWireMock OSSMockoonPrismMockServerBeeceptorjson-server
导入 OpenAPI✅⚠️ 云端✅✅✅✅❌
导入 Postman✅⚠️ 云端❌✅❌❌❌
导入 HAR✅❌❌❌❌❌❌
导入 WSDL✅❌❌❌❌✅❌
导入 cURL✅❌❌❌❌❌❌
导入 WireMock 格式✅原生支持❌❌❌❌❌
导入 Mockoon 格式✅❌原生支持❌❌❌❌
导出 HAR✅✅❌❌✅✅❌
免费层限制
请求数Mock 规则费用
mockd不限不限免费(Apache 2.0)
WireMock OSS不限不限免费(Apache 2.0)
Mockoon 桌面版 / CLI不限不限免费(MIT)
Prism不限不限免费(Apache 2.0)
MockServer不限不限免费(Apache 2.0)
Beeceptor 免费层每个端点每天 50 次3 条更多功能需 $10/mo+
json-server不限不限免费(MIT)

图例:✅ 内置 • 🔌 Ext = 独立的 OSS 扩展 • ⚠️ 云端 = 仅限付费 / 托管层级 • 部分支持 = 实现有限 • 规划中 = 已列入项目公布的路线图,但尚未发布

关于 WireMock 导入的说明。 OpenAPI 和 Postman 导入旁的 ⚠️ 云端 标记指 WireMock 官方功能。社区也提供转换工具(例如 openapi-to-wiremock、OpenAPI Generator 目标),但它们未随 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: "[email protected]" }
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 protected]"
# → {"id":"cus_a1b2c3","object":"customer","name":"Test","email":"[email protected]"}

已使用真实 SDK 验证:

  • Stripe:stripe-go SDK 测试 49/49 通过
  • Twilio:twilio-go SDK 测试 13/13 通过
  • OpenAI:已验证 openai Python SDK(模型、助手、聊天补全)

完整的数字孪生配置请参阅 mockd-samples。

AI 原生(MCP)

mockd 内置 Model Context Protocol 服务,提供 18 个工具。AI Agent 无需使用 CLI,即可创建 Mock、管理状态、导入规范并验证契约:

{
  "mcpServers": {
    "mockd": { "command": "mockd", "args": ["mcp"] }
  }
}

可用于 Claude Desktop、Cursor、Windsurf 以及任何兼容 MCP 的编辑器。工具涵盖 Mock CRUD、有状态资源、混沌注入、请求日志、验证、工作区以及导入 / 导出。

功能

多协议模拟 — 7 种协议,统一 CLI
协议端口示例
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/>'
导入与导出 — 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
混沌工程 — 延迟、错误、断路器
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
云隧道 — 即时共享本地模拟
mockd tunnel
# → https://a1b2c3d4.tunnel.mockd.io → http://localhost:4280

全部 7 种协议通过端口 443 上的单个安全连接进行多路复用。可在 NAT 和防火墙环境下使用。

工作区 — 隔离的模拟环境
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
代理录制 — 录制真实流量,并重放为模拟
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 控制面板 — 直观管理模拟

发布版本会通过管理端口(http://localhost:4290)提供 Web UI。提供 VS Code 风格的编辑器、命令面板、带文件夹的模拟树、请求日志查看器,以及近似匹配调试功能。

Mockd Cloud

mockd 无需账户即可完全离线运行。对于希望使用共享环境的团队:

  • 持久云端模拟 — 部署整个团队都能访问的模拟环境
  • 团队管理 — 带访问控制的共享工作区
  • 云隧道 — 带自定义域名的身份验证隧道

即将推出。加入候补名单。

文档

完整指南、API 参考和配置文档请访问 docs.mockd.io。

贡献

欢迎贡献!请参阅 CONTRIBUTING.md 了解设置方法。

许可证

Apache License 2.0 — 可免费用于商业用途。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。