mockserver-monorepo

mock-server/mockserver-monorepo
4,899 starsApache-2.0Community

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Mock, record/replay, verify and chaos-test any HTTP/REST/gRPC/LLM dependency over MCP.

README.md

MockServer            ![Build status](https://buildkite.com/mockserver/mockserver) ![GitHub license](https://github.com/mock-server/mockserver-monorepo/blob/master/LICENSE.md) ![GitHub stars](https://github.com/mock-server/mockserver-monorepo/stargazers) ![Artifact Hub](https://artifacthub.io/packages/search?repo=mockserver) =====

MockServer is an HTTP(S) mock server and proxy for testing. It does three things:

  • Mock the APIs your application depends on, so you can develop and test against systems that are unavailable, incomplete, or hard to reproduce.
  • Proxy real traffic to record, inspect, and modify requests and responses in flight — and pause them at interactive proxy breakpoints to step through, edit, or abort each exchange like a debugger for network traffic.
  • Chaos engineering — make dependencies misbehave on demand, injecting latency, dropped connections, and errors to test how your application copes when the systems it relies on degrade or fail.

Speaks every protocol your stack uses. HTTP/1.1 & HTTPS, HTTP/2, gRPC & gRPC-Web, WebSockets and raw TCP are auto-detected from the first bytes of each connection, so one MockServer port handles them all with no per-protocol configuration. Beyond that core: HTTP/3 (QUIC — experimental, on its own UDP port), JSON-RPC for MCP/A2A mocking, AsyncAPI-driven message-broker testing against external Kafka and MQTT brokers, and mocked AI/LLM chat-completion APIs (OpenAI, Anthropic, Gemini, Bedrock, Azure OpenAI, Ollama).

Main Features

  • Mock any API — HTTP/1.1, HTTPS, HTTP/2, HTTP/3, gRPC, gRPC-Web, JSON-RPC, WebSockets, raw TCP, and message brokers (Kafka, MQTT). Match requests on method, path, query, headers, cookies and body (JSON, XML, JSONPath, XPath, regex, OpenAPI) and return configured responses.
  • Proxy & record — port forwarding, web (HTTP) proxy, HTTPS tunneling (CONNECT) and SOCKS, with full visibility of even TLS-encrypted traffic.
  • Dynamic responses — response templating (Velocity, Mustache, JavaScript), class/closure callbacks and webhooks.
  • OpenAPI — generate expectations directly from an OpenAPI/Swagger specification.
  • Verification — assert which requests were received, in what order, and how many times.
  • Chaos & resilience testing — inject latency, dropped/slow connections and failures to test how your system copes with a misbehaving dependency.
  • LLM / AI mocking — mock chat-completion APIs for OpenAI, Anthropic, Gemini, Bedrock, Azure OpenAI and Ollama (including streaming), plus a built-in MCP server for AI coding assistants.
  • Live dashboard — watch requests, expectations and logs in real time at /mockserver/dashboard.
  • Clients & integrations — Java, JavaScript/Node, Python and Ruby clients, plus JUnit and Spring support.
  • Run anywhere — Docker, Helm/Kubernetes, JAR or WAR, with optional clustered state for multi-instance deployments.

See the changelog for what has shipped in each version.

Getting started in 60 seconds

Run MockServer with Docker, then mock an endpoint and call it:

# 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

…or, on macOS / Linux, install it with Homebrew and run the mockserver command directly:

brew install mockserver
mockserver run --port 1080

One-command recipes

For common end-to-end setups, the examples/docker-compose recipes are a single docker compose up each — mock from an OpenAPI spec, a record/replay proxy, a contract-validating proxy, or a chaos proxy:

cd examples/docker-compose/mock-from-openapi
docker compose up
curl http://localhost:1080/pets

The same can be done from any client library or the dashboard at <http://localhost:1080/mockserver/dashboard>. For more configuration options see the Docker documentation.

For every way to run MockServer yourself — Docker, docker-compose recipes, the mockserver CLI, the JVM-less binary bundle, Helm/Kubernetes, the JAR, and Testcontainers — see the Self-Hosting MockServer guide.

Drive it from Postman or Bruno

Explore MockServer's REST control plane from an API client — create expectations, verify requests, and inspect recorded traffic:

![Run in Postman](https://god.gw.postman.com/run-collection/3256712-63a2d67a-46d6-41fd-a544-0535e7393e7d?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D3256712-63a2d67a-46d6-41fd-a544-0535e7393e7d%26entityType%3Dcollection%26workspaceId%3D1739eeee-5da1-4112-86a7-b6c094f2b527)

Documentation

For usage guide please see: www.mock-server.com

Developer Documentation

Architecture, code structure, infrastructure, and operations documentation is available in the docs/ directory.

AI Integration

MockServer includes a built-in MCP server for AI coding assistant integration at /mockserver/mcp. See llms.txt and AI Integration docs.

Change Log

Please see: Change Log

Community

<table> <tr> <td>Discussions</td> <td><a href="https://github.com/mock-server/mockserver-monorepo/discussions"><img height="20px" src="https://mock-server.com/images/GitHub_Logo-md.png" alt="GitHub Discussions"></a></td> </tr> <tr> <td>Issues, Bugs &amp; Feature Requests</td> <td><a href="https://github.com/mock-server/mockserver-monorepo/issues"><img height="20px" src="https://mock-server.com/images/GitHub_Logo-md.png" alt="GitHub Issues"></a></td> </tr> <tr> <td>Roadmap</td> <td><a href="https://github.com/orgs/mock-server/projects/1"><img height="20px" src="https://mock-server.com/images/GitHub_Logo-md.png" alt="GitHub Project"></a></td> </tr> <tr> <td>Security</td> <td><a href="https://github.com/mock-server/mockserver-monorepo/blob/master/SECURITY.md"><img height="20px" src="https://mock-server.com/images/GitHub_Logo-md.png" alt="Security Policy"></a></td> </tr> </table>

Requirements

Runtime: MockServer 6.x requires Java 17+. The minimum was raised from Java 11 as part of the Jakarta EE 10 / Spring 7 platform modernisation — see the Java 17 / Jakarta upgrade guide. If you are still on Java 11, pin to the 5.15.x line (no longer receiving security updates). The official Docker image already bundles a Java 17 runtime.

Building from source: requires JDK 17+; the produced bytecode targets Java 17.

Security Note: MockServer is a development and testing tool only. See SECURITY.md for important security considerations.

Versions

Maven Central ![mockserver](https://central.sonatype.com/search?q=g:org.mock-server)

Maven Central contains the following MockServer artifacts under the org.mock-server groupId. Every artifact ships in two forms — -no-dependencies (shaded, zero transitive deps, recommended) and the plain form (transitive deps declared in the POM, for the rare case where you need to override versions yourself).

Server:

Java client:

Test framework integrations:

Build-tool plugin:

Tip: The -no-dependencies artifacts bundle all dependencies into a single JAR with packages relocated under shaded_package.*, so they declare zero transitive dependencies. This avoids classpath conflicts with versions of Netty / Jackson / Guava / Bouncy Castle that your project already uses, and it removes the noise from CVE scanners flagging unused transitive dependencies. See the Maven Central page for full coordinates, snapshot repository setup, and the executable jar-with-dependencies form for command-line use.

6.0.0 breaking change: the <classifier>shaded</classifier> form has been removed. Replace mockserver-netty:<version>:shaded with mockserver-netty-no-dependencies:<version> (and likewise for the other shaded artifacts). The replacement produces the same shaded bytes; only the coordinates change.

SNAPSHOT builds are published to the Sonatype Central Portal snapshot repository at <https://central.sonatype.com/repository/maven-snapshots/org/mock-server/>.

Node Module & Grunt Plugin

NPM Registry contains the following module:

  • mockserver-node - a Node.js module and Grunt plugin to start and stop MockServer

![mockserver-node](https://www.npmjs.org/package/mockserver-node)

![mockserver-client-node](https://www.npmjs.org/package/mockserver-client)

Docker Hub

Docker Hub contains the following artifacts:

Homebrew ![Homebrew version](https://formulae.brew.sh/formula/mockserver)

MockServer is available in Homebrew (homebrew-core), the package manager for macOS and Linux:

brew install mockserver   # then run: mockserver -serverPort 1080

See the Homebrew install page and the command-line usage guide.

Helm Chart
  • MockServer Helm Chart - installs MockServer into a Kubernetes cluster. The chart is published to the GitHub Container Registry as an OCI artifact (no helm repo add needed):
  helm upgrade --install --create-namespace --namespace mockserver --version 7.2.0 mockserver oci://ghcr.io/mock-server/charts/mockserver

See the Install MockServer Helm Chart guide for all versions and configuration options. A legacy .tgz is also available from www.mock-server.com.

MockServer Clients
Community Tools
Previous Versions

| Version | Date | Git & Docker Tag / Git Hash | Documentation | Java API | REST API | |:---------------|:------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------|:-----------------------------------------------------------------------|:------------------------------------------------------------------------------------------| | 7.2.0 (latest) | 06 Jun 2026 | mockserver-7.2.0 / 9755e9 | Documentation | Java API | 7.2.x REST API | | 6.1.0 | 27 May 2026 | mockserver-6.1.0 / 33c273 | Documentation | Java API | 6.1.x REST API | | 6.0.0 | 20 May 2026 | mockserver-6.0.0 / 6a254e | Documentation | Java API | 6.0.x REST API | | 5.15.0 | 11 Jan 2023 | mockserver-5.15.0 / 7c071b | Documentation | Java API | 5.15.x REST API | | 5.14.0 | 22 Aug 2022 | mockserver-5.14.0 / 808eba | Documentation | Java API | 5.14.x REST API | | 5.13.2 | 05 Apr 2022 | mockserver-5.13.2 / 81105b | Documentation | Java API | 5.13.x REST API | | 5.13.1 | 02 Apr 2022 | mockserver-5.13.1 / 39d1cc | Documentation | Java API | 5.13.x REST API | | 5.13.0 | 17 Mar 2022 | mockserver-5.13.0 / 604888 | Documentation | Java API | 5.13.x REST API | | 5.12.0 | 12 Feb 2022 | mockserver-5.12.0 / 61747f | Documentation | Java API | 5.12.x REST API | | 5.11.2 | 08 Nov 2020 | mockserver-5.11.2 / eb84f2 | Documentation | Java API | 5.11.x REST API | | 5.11.1 | 22 Jul 2020 | mockserver-5.11.1 / 361e5c | Documentation | Java API | 5.11.x REST API | | 5.11.0 | 08 Jul 2020 | mockserver-5.11.0 / 756758 | Documentation | Java API | 5.11.x REST API | | 5.10.0 | 24 Mar 2020 | mockserver-5.10.0 / 14124d | Documentation | Java API | 5.10.x REST API | | 5.9.0 | 01 Feb 2020 | mockserver-5.9.0 / eacf07 | Documentation | Java API | 5.9.x REST API | | 5.8.1 | 23 Dec 2019 | mockserver-5.8.1 / f0e9ab | Documentation | Java API | 5.8.x REST API | | 5.8.0 | 01 Dec 2019 | mockserver-5.8.0 / 7c9fc5 | Documentation | Java API | 5.8.x REST API | | 5.7.2 | 16 Nov 2019 | mockserver-5.7.2 / 7c9fc5 | Documentation | Java API | 5.7.x REST API | | 5.7.1 | 09 Nov 2019 | mockserver-5.7.1 / 0ca353 | Documentation | Java API | 5.7.x REST API | | 5.7.0 | 01 Nov 2019 | mockserver-5.7.0 / b58bc5 | Documentation | Java API | 5.7.x REST API | | 5.6.1 | 21 Jul 2019 | mockserver-5.6.1 / aec1fb | Documentation | Java API | 5.6.x REST API | | 5.6.0 | 21 Jun 2019 | mockserver-5.6.0 / 8f82dc | Documentation | Java API | 5.6.x REST API | | 5.5.4 | 26 Apr 2019 | mockserver-5.5.4 / 4ffd31 | Documentation | Java API | 5.5.x REST API | | 5.5.1 | 29 Dec 2018 | mockserver-5.5.1 / 11d8a9 | Documentation | Java API | 5.5.x REST API | | 5.5.0 | 15 Nov 2018 | mockserver-5.5.0 / 06e6fd | Documentation | Java API | 5.5.x REST API |

Issues

If you have any problems, please check the project issues and avoid opening issues that have already been fixed. When you open an issue please provide the following information:

  • MockServer version (i.e. 7.2.0)
  • How your running the MockServer (i.e maven plugin, docker, etc)
  • MockServer log output, at INFO level (or higher)
  • What the error is
  • What you are trying to do

Contributions

Pull requests are, of course, very welcome! Please read our contributing to the project guide first. Then head over to the open issues to see what we need help with. Make sure you let us know if you intend to work on something. Also check out the project roadmap to see what is already in the backlog.

Feature Requests

Feature requests are submitted to GitHub issues and tracked on the project roadmap.

Maintainers

Related MCP servers

Browse all →