关于 mockserver
MockServer 是一个用于模拟、录制回放、校验和混沌测试 HTTP(S) 依赖的 MCP 服务。它面向需要在开发和测试阶段隔离外部依赖的团队,支持单一端口处理多种协议。
主要功能
- 01单端口自动识别 HTTP、gRPC、WebSocket 和原始 TCP
- 02模拟、代理或两者结合,可录制并修改真实流量
- 03注入延迟、断连和错误的混沌测试
- 04模拟 OpenAI、Anthropic、Gemini 等 AI 聊天补全接口
- 05基于 OpenAPI 规范生成模拟响应
适用场景
- 01在测试中替代不稳定的外部 HTTP 服务
- 02录制真实接口流量并回放到自动化测试中
- 03验证应用在依赖故障时的处理逻辑
MCP 相关
MockServer 内置 MCP 服务,路径为 /mockserver/mcp,允许 AI 编码助手直接通过 MCP 操作 MockServer。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MockServer

MockServer 可模拟、录制并对应用依赖的任意 HTTP(S) 服务进行混沌测试——只需一个二进制文件,无需针对每种协议单独配置。
为什么选择 MockServer
- 一个端口,支持所有协议——HTTP/1.1、HTTPS、HTTP/2、gRPC 和 gRPC-Web、WebSockets 以及原始 TCP 均可根据每个连接的首批字节自动识别。此外,还支持 HTTP/3(QUIC,实验性)、用于 MCP/A2A 模拟的 JSON-RPC,以及基于 AsyncAPI 的 Kafka/MQTT 代理测试。
- 可模拟、代理,或两者兼具——返回预设、模板化或回调响应,也可作为代理(端口转发、HTTP 代理、HTTPS 隧道、SOCKS),在真实流量传输过程中录制、检查和修改流量,并全面查看 TLS 加密的交互。
- 内置混沌工程——按需注入延迟、丢弃连接和错误,观察依赖出现异常时应用如何应对。
- 也能模拟 AI——支持 OpenAI、Anthropic、Gemini、Bedrock、Azure OpenAI 和 Ollama 的聊天补全 API(包括流式传输),还内置 MCP 服务,让 AI 编码助手可以直接驱动 MockServer。
- 自动生成模拟,无需手动编写——根据 OpenAPI/Swagger 规范生成,并可按方法、路径、查询参数、标头、Cookie 和请求正文(JSON、XML、JSONPath、XPath、正则表达式)匹配请求。
- 适配你的技术栈——提供 Java、JavaScript/Node、Python、Ruby、Go、.NET、Rust 和 PHP 客户端,以及 JUnit 和 Spring 支持;可作为 Docker、Helm/Kubernetes、JAR 或 WAR 运行,并提供实时仪表板和可选的集群状态,以支持多实例部署。
请参阅更新日志,了解各版本发布的内容。
60 秒快速上手
使用 Docker 运行 MockServer,然后模拟一个端点并调用它:
# 1. Start MockServer
docker run -d --rm -p 1080:1080 mockserver/mockserver
# 2. Mock an endpoint: GET /hello -> 200 "Hello World"
# (MockServer exposes a REST control plane on the same port)
curl -X PUT http://localhost:1080/mockserver/expectation \
-H 'Content-Type: application/json' \
-d '{
"httpRequest": { "method": "GET", "path": "/hello" },
"httpResponse": { "statusCode": 200, "body": "Hello World" }
}'
# 3. Call your mock
curl http://localhost:1080/hello
# -> Hello World
……或者,在 macOS / Linux 上通过 Homebrew 安装,然后直接运行 mockserver 命令:
brew install mockserver
mockserver run --port 1080
如需了解运行 MockServer 的所有方式——Docker、docker-compose 配方、mockserver CLI、无 JVM 二进制包、Helm/Kubernetes、JAR 和 Testcontainers——请参阅自托管 MockServer 指南。你也可以通过任何客户端库或位于 http://localhost:1080/mockserver/dashboard 的仪表板来使用相同的配置。
一键运行配方
examples/docker-compose 中的配方均可通过一次 docker compose up 启动——根据 OpenAPI 规范模拟服务、运行录制/回放代理、运行合约验证代理或混沌代理:
cd examples/docker-compose/mock-from-openapi
docker compose up
curl http://localhost:1080/pets
通过 Postman 或 Bruno 使用
- Postman — 点击上方按钮,或导入
examples/postman(指南)。 - Bruno(开源、原生支持 Git)— 在 Bruno 中通过 Open Collection 打开
examples/bruno(指南)。
安装
| 渠道 | 命令 |
|---|---|
| Docker | docker run -d --rm -p 1080:1080 mockserver/mockserver |
| 从 GitHub Container Registry 获取的 Docker 镜像(避免 Docker Hub 的拉取次数限制) | docker run -d --rm -p 1080:1080 ghcr.io/mock-server/mockserver |
| Homebrew(macOS/Linux) | brew install mockserver |
| Helm(chart 指南) | helm upgrade --install --namespace mockserver mockserver oci://ghcr.io/mock-server/charts/mockserver |
| Maven Central | org.mock-server:mockserver-netty-no-dependencies — 查看所有 Maven 构件(服务、WAR、JUnit 4/5、Spring、Maven 插件) |
| npm | mockserver-node(启动/停止) |
客户端库(创建预期、验证请求,并在测试中驱动控制平面):
完整安装选项(SNAPSHOT 仓库、WAR 部署、Testcontainers 模块、包管理器渠道)请参阅自托管指南和 MockServer 获取渠道。
要求
运行环境: Java 17+(MockServer 6.0.0 中从 Java 11 升级而来——请参阅 Java 17 / Jakarta 升级指南;如需使用 Java 11,请固定到 5.15.x)。官方 Docker 镜像自带 JVM,因此容器用户无需自行安装 JVM。
从源代码构建: JDK 17+。
安全说明: MockServer 仅供开发和测试使用——请参阅 SECURITY.md。
文档
- 使用指南:www.mock-server.com
- 架构、代码结构、基础设施和运维文档:docs/
- AI/MCP 集成:内置的 MCP 服务,路径为
/mockserver/mcp— 请参阅 llms.txt 和 AI 集成文档
版本
- 变更内容: 变更日志和 GitHub releases(每个版本也都是一个 git 标签
mockserver-<version>)。 - 特定版本的 API 文档: Java API 位于
https://mock-server.com/versions/<version>/apidocs/index.html;REST API 位于 SwaggerHub(每个major.minor.x对应一个规范)。 - Java 11: 最后一个兼容 Java 11 的版本是 5.15.0(2023 年 1 月)。
6.0.0 重大变更: 已移除
<classifier>shaded</classifier>这种 Maven 写法。请将mockserver-netty:<version>:shaded替换为mockserver-netty-no-dependencies:<version>(打包后的字节内容相同,坐标有所变化)。
社区与贡献
- 问题 / Bug / 功能请求: GitHub Issues — 请提供 MockServer 版本、运行方式(Docker、Maven 插件等)以及 INFO 级别或更高级别的日志输出。
- 讨论: GitHub Discussions
- 路线图: GitHub Project
- 安全政策: SECURITY.md
- 社区工具: MockServer Browser Admin,一个用于管理期望的 React + TypeScript 网页界面
- 贡献: 非常欢迎提交拉取请求 — 请先阅读 CONTRIBUTING.md,然后查看未解决的问题,并告知我们你是否打算处理某项内容。
维护者
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
