mcpField
M
mockserver

mockserver

本地服务
mock-server.com开发工具5.0k今天更新

关于 mockserver

MockServer 是一个用于模拟、录制回放、校验和混沌测试 HTTP(S) 依赖的 MCP 服务。它面向需要在开发和测试阶段隔离外部依赖的团队,支持单一端口处理多种协议。

主要功能

  1. 01单端口自动识别 HTTP、gRPC、WebSocket 和原始 TCP
  2. 02模拟、代理或两者结合,可录制并修改真实流量
  3. 03注入延迟、断连和错误的混沌测试
  4. 04模拟 OpenAI、Anthropic、Gemini 等 AI 聊天补全接口
  5. 05基于 OpenAPI 规范生成模拟响应

适用场景

  1. 01在测试中替代不稳定的外部 HTTP 服务
  2. 02录制真实接口流量并回放到自动化测试中
  3. 03验证应用在依赖故障时的处理逻辑

MCP 相关

MockServer 内置 MCP 服务,路径为 /mockserver/mcp,允许 AI 编码助手直接通过 MCP 操作 MockServer。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"com-mock-server-mockserver": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/mockserver/mockserver:9.2.0"
]
}
}
}
启动命令docker run -i --rm docker.io/mockserver/mockserver:9.2.0

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

安装包
ocidocker.io/mockserver/mockserver:9.2.0

工具

还没有获取到工具列表

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

详细介绍

MockServer           构建状态 GitHub 许可证 GitHub 星标 Artifact Hub MCP Toplist

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 中运行

安装

渠道命令
Dockerdocker 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 mockserverorg.mock-server:mockserver-netty-no-dependencies — 查看所有 Maven 构件(服务、WAR、JUnit 4/5、Spring、Maven 插件)
npmmockserver-node(启动/停止)

客户端库(创建预期、验证请求,并在测试中驱动控制平面):

Java Node PyPI Gem Go Packagist NuGet Crates.io

完整安装选项(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。

文档

版本

最新版本

  • 变更内容: 变更日志和 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>(打包后的字节内容相同,坐标有所变化)。

社区与贡献

维护者

评论

支持 Markdown

第一次接触 MCP?

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

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