CheckOps home

Tools directory

M

CheckOps

mountebank

mountebank is an MIT-licensed, open-source service virtualization tool that creates multi-protocol test doubles (imposters) over HTTP, HTTPS, TCP and SMTP, configured through a REST API, with proxy recording and JavaScript injection.

Visit website

Latest public signals

Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.

Visit Website

Introduction

mountebank describes itself as the only open-source service virtualization tool that competes with commercial offerings in protocol diversity, capability and performance. Originally created by Brandon Byars, who maintained it for more than a decade, it is now moving to a collaborative, community-run GitHub organisation; the README notes that the project is in transition while CI/CD integrations are migrated, so pull requests may take time to merge. The latest GitHub release, v2.9.4, was published on 15 April 2026, and the npm package @mbtest/mountebank lists version 2.9.5.

mountebank runs as a Node.js server. You create “imposters”, virtual services listening on a port, by posting JSON to its REST API or loading a configuration file at startup. Each imposter has a protocol (HTTP, HTTPS, TCP or SMTP) and a set of stubs made of predicates (equals, contains, matches, exists, JSONPath and XPath, and more) and responses. Responses can be canned (is), recorded from a real service through a proxy (proxy) for record-and-replay, or computed with JavaScript injection (inject). Behaviours add latency, shell transforms or copy values from requests into responses. Because imposters are language-neutral, the same doubles can serve tests written in any language, and mountebank’s performance has made it popular for virtualising dependencies in load tests.

The source code is at mountebank-testing/mountebank on GitHub under the MIT licence, with about 2,100 stars; the most recent commit was on 2 November 2026.

Features

  1. Multi-protocol imposters: HTTP, HTTPS, TCP and SMTP.
  2. REST API: Create and inspect imposters from any language.
  3. Record and replay: Proxy real services and save responses.
  4. Injection and behaviours: JavaScript responses, latency and transforms.

Pros

  1. Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
  2. Actively maintained: The repository had commits as recent as 2 November 2026.

Cons

  1. Project in transition: Community migration may slow merges and releases.
  2. JSON-heavy configuration: Large setups need careful organisation.
npm install -g @mbtest/mountebank
mb --allowInjection
curl -X POST http://localhost:2525/imposters -H 'Content-Type: application/json' -d '{
  "port": 4545, "protocol": "http",
  "stubs": [{
    "predicates": [{ "equals": { "method": "GET", "path": "/users/1" } }],
    "responses": [{ "is": { "statusCode": 200, "body": { "id": 1, "name": "Ana" } } }]
  }]
}'
curl http://localhost:4545/users/1

Resources:

Pricing

mountebank is free and open source under the MIT licence.

  1. Teams virtualising non-HTTP dependencies such as TCP or SMTP services.
  2. Polyglot organisations sharing test doubles across languages and load tests.

Conclusion

mountebank is a capable, language-neutral service virtualization tool; check the community transition status before adopting it for critical pipelines.

Compare

CheckOps pages that put mountebank next to related tools. There is no paid placement on these lists.

Alternatives

Other tools on CheckOps that cover similar ground. Open a page, or compare one with mountebank side by side.