Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.mockzilla/mockzilla-mcp

NPM · @MOCKZILLA/MCP · SCANNED SEP 21

Mock OpenAPI specs locally, or log in to deploy hosted mocks on mockzilla.org from your MCP client.

Available components

+20 this week 88 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to mockzilla/mockzilla-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability65
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 6446 tokens (~184/item across 35 items; 35 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management85
  • Stability check failed: the tool surface changed between 0.2.13 and 0.2.26: 1 tool removals, 1 breaking changes, 19 additions. See how to fix → Fail
Tool Coverage86
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 57% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 7 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "clear_mock_endpoints" implies "wipe" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 35 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.mockzilla/mockzilla-mcp server?

io.github.mockzilla/mockzilla-mcp runs locally as an npm package, launched with npx -y @mockzilla/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @mockzilla/mcp

# add to Claude Code
claude mcp add mockzilla-mockzilla-mcp -- npx -y @mockzilla/mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "mockzilla-mockzilla-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mockzilla/mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "mockzilla-mockzilla-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mockzilla/mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add mockzilla-mockzilla-mcp -- npx -y @mockzilla/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mockzilla-mockzilla-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@mockzilla/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add mockzilla-mockzilla-mcp --command npx --arg -y --arg @mockzilla/mcp
# ~/.hermes/config.yaml
mcp_servers:
  mockzilla-mockzilla-mcp:
    command: "npx"
    args: ["-y", "@mockzilla/mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "mockzilla-mockzilla-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@mockzilla/mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add mockzilla-mockzilla-mcp -t stdio -c npx -a -y @mockzilla/mcp
// mcp.json
{
  "mcpServers": {
    "mockzilla-mockzilla-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mockzilla/mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +16
    • Malware scan: unverified → pass security
  • 19 Sept 26 −15
    • Malware scan: pass → unverified security
    • Package version: 0.2.25 → 0.2.26 functional
  • 18 Sept 26 +12
    • Known CVEs: unverified → pass security
    • Dependency health: unverified → pass functional
  • 17 Sept 26 −4
    • Stability: fail → unverified security
    • Known CVEs: pass → unverified security
    • Tool safety: pass → unverified security
    • Provenance: fail → pass security
    • The attested source repository moved: mockzilla/mockzilla-mcp security
    • Schema quality: 159 → 184 functional
    • Schema quality: 159 → 181 functional
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Dependency health: pass → unverified functional
    • Tool coverage: 42% → 57% functional
    • Tool coverage: 42% → 54% functional
    • Package version: 0.2.21 → 0.2.25 functional
    • Package version: 0.2.21 → 0.2.24 functional
    • Package version: 0.2.21 → 0.2.23 functional
    • Package version: 0.2.21 → 0.2.22 functional
  • 16 Sept 26 +12
    • Known CVEs: unverified → pass security
    • Dependency health: unverified → pass functional
  • 15 Sept 26 −1
    • Stability: fail → unverified security
    • Tool safety: pass → unverified security
    • Tool coverage: 72% → 42% functional
    • Schema quality: 3199 → 4154 functional
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Package version: 0.2.20 → 0.2.21 functional
  • 14 Sept 26 −12
    • Known CVEs: pass → unverified security
    • Stability: 0.90 → unverified security
    • Malware scan: pass → unverified security
    • Tool safety: pass → unverified security
    • Stability: 0.90 → fail security
    • Schema quality: 2689 → 3199 functional
    • Schema quality: 2689 → 3092 functional
    • Schema quality: 2689 → 3096 functional
    • Dependency health: pass → unverified functional
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Tool coverage: 65% → 72% functional
    • Tool coverage: 65% → 71% functional
    • Package version: 0.2.13 → 0.2.20 functional
    • Package version: 0.2.13 → 0.2.19 functional
    • Package version: 0.2.13 → 0.2.17 functional
    • Package version: 0.2.13 → 0.2.16 functional
    • Package version: 0.2.13 → 0.2.14 functional
  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed npm/@mockzilla/mcp@0.2.26

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo mockzilla/mockzilla-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/mockzilla/mockzilla-mcp/.github/workflows/publish.yml@refs/tags/v0.2.26
Rekor log index 2888649481
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:5dc30cfc9d486edeb2fd2fa89b635a38913b82a326d03c83589b578bfec9d42a736a48e6bc72e5be611b280f05dd103022e8ac841327508c6f77fa68f

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 35 exposed · ~6,446 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
bridge_status ~73

Report the bridge's own version and check whether a newer one is on npm. Returns {bridge_version, bridge_latest, update_available, upgrade_steps}. Call this when the user asks 'is mockzilla-mcp up to date?', or proactively if a tool starts failing in a way that could be a stale-bridge issue.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

call_endpoint ~152

Make an HTTP request to a URL and return {status, headers, body}. Use this to demonstrate a mock by hitting it after `serve_locally` (e.g. `http://localhost:PORT/openapi/pet/findByStatus`), to inspect the admin API (`/.services` returns the registered services, `/healthz` for liveness), or to verify a freshly-mocked endpoint works. Default scope is localhost only; pass `allow_remote: true` for arbitrary URLs (rare — the bridge isn't a general-purpose HTTP client).

NameTypeReqDescription
allow_remoteboolean
body
headersobject
methodstring
urlstringyes

No output schema declared.

No examples provided.

check_cli ~95

Check whether the mockzilla CLI is available — either on the system PATH, in the bridge's own cache (~/.cache/mockzilla-mcp/), or via a `go run` invocation. Call FIRST when the user wants to try mockzilla locally. If nothing resolves, the response carries `install_options`; suggest `install_cli` to the user and ask them which method (download / go-install / go-run) they prefer.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

check_github_deployable ~185

Say whether a GitHub repository (or a local folder) would deploy a mock, and what is missing if not. Use it when the user has a repo and asks whether it can serve mocks, or before adding the action to one. Detects which of the two kinds it is: a portable repo of service folders, or a codegen repo that builds a Go server. Returns `problems` (these stop it deploying), `warnings` (it deploys but something costs later, such as no teardown trigger, or specs large enough to exhaust a free simulation's 128MB), and `workflow_to_add` when there is no Mockzilla workflow at all. Read-only: it never changes the repository.

NameTypeReqDescription
dirstringA local folder to inspect instead.
repostring"owner/name" of a repo to inspect.

No output schema declared.

No examples provided.

clear_mock_endpoints ~69

Wipe ALL mocks created via `mock_endpoint` and stop the managed server. Equivalent to `rm -rf ~/.cache/mockzilla-mcp/mocks` plus `stop_locally`. Use when the user wants to start fresh. Does not touch the mockzilla CLI binary or other bridge state.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

deploy_mock_from_catalog ~182

Create a HOSTED, SHAREABLE mock from a catalog spec (Stripe, Adyen, etc.) on mockzilla.org. The mock persists in the user's account and gets a stable URL anyone with the link can hit. Use this when the user wants something durable, team-visible, or reachable from outside their machine — NOT for ephemeral local exploration (use `serve_locally` for that). Pass `catalog_spec_id` from `list_catalog_products`; `mount_path` defaults to the spec slug. The returned sim is in `deploying` state -- follow up with `wait_for_deploy` to receive the live URL.

NameTypeReqDescription
catalog_spec_idstringyes
domainstring
mount_pathstring
namestringyes
slugstringyes
version_idstring

No output schema declared.

No examples provided.

deploy_mock_from_spec ~171

Create a HOSTED, SHAREABLE mock on mockzilla.org from an inline OpenAPI 3.0+ spec (YAML or JSON in the `spec` field, 4MB cap). The mock persists in the user's account and gets a stable URL anyone with the link can hit. Use this when the user pastes spec content AND wants a durable, team-visible result — NOT for ephemeral local exploration (use `serve_locally` for that). The returned sim is in `deploying` state — follow up with `wait_for_deploy` to receive the live URL.

NameTypeReqDescription
domainstring
filenamestring
mount_pathstring
namestringyes
slugstringyes
specstringyes

No output schema declared.

No examples provided.

deploy_mock_from_url ~158

Create a HOSTED, SHAREABLE mock on mockzilla.org from an OpenAPI 3.0+ spec at a public https URL. The server fetches the spec (SSRF-protected) and parses it. Use this when the user gives you a spec URL AND wants a durable, team-visible result — NOT for ephemeral local exploration (use `serve_locally` for that, it accepts the same URL form). The returned sim is in `deploying` state -- follow up with `wait_for_deploy` to receive the live URL.

NameTypeReqDescription
domainstring
mount_pathstring
namestringyes
slugstringyes
spec_urlstringyes

No output schema declared.

No examples provided.

diagnose_requests ~213

Explain what is going wrong with the traffic the local server has served, and where each response's data came from. Returns a breakdown by source (generated / upstream / replay / cache), by status and by content type, latency p50/p95/max, and a list of concrete findings: upstream failures that silently fell back to a generated mock, 404s from a wrong mount prefix, a body that is JSON under a non-JSON content type, and unusually slow requests. Prefer this over `request_history` when the user asks why a response looks wrong, whether data is real or mocked, or why something is slow. Note that a replayed or cached response never reaches the history log, so a call the user made and cannot find here was most likely served from a recording or the cache rather than not happening. Read-only, localhost only.

NameTypeReqDescription
limitintegerHow many of the newest requests to examine.
servicestringLimit to one service. Omit to look at every service.

No output schema declared.

No examples provided.

discover_specs ~143

Scan a directory and report what mockzilla can do with it: top-level OpenAPI spec files (with title and endpoint count) plus any folders of static endpoint files mockzilla can serve. Returns a `suggested_input` the agent can hand directly to `serve_locally`. Use this when the user says 'I have a folder of specs/files, what's in it?' or 'mock this directory'. Scans one level only: on a tree of spec folders it names the subdirectories to recurse into. A big folder is summarised up to a cap, with `truncated: true` and the full `spec_file_count`.

NameTypeReqDescription
dirstringyes

No output schema declared.

No examples provided.

get_context ~67

Return the org, role and access (`read` or `write`) the current MCP credential is scoped to. Use this once at the start of a session to know which org you are acting in. A `read` connection cannot deploy; the user has to log in again with write access.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

info ~111

Summarise an OpenAPI spec or .mockz package without serving it. For a spec, returns {title, version, openapi_version, endpoint_count, paths} with operation IDs. For a package, returns its manifest. Pass `input` as a local file or a public https URL. Use this when the user wants to know what's in a spec or package before deciding whether to serve or deploy it.

NameTypeReqDescription
inputstringyesSpec file path, public https URL, or .mockz package.

No output schema declared.

No examples provided.

install_cli ~173

Install the mockzilla CLI for this user. Three methods — ASK the user which one they want before calling: • download (recommended): fetch the prebuilt binary for this OS/arch from github.com/mockzilla/mockzilla releases (~38MB). Fast, no toolchain needed. • go-install: run `go install <module>@v<version>` to compile from source. Needs Go on PATH. • go-run: don't install at all — the bridge stores a `go run <module>@v<version>` invocation. First serve_locally compiles into Go's module cache; later runs are instant. Needs Go. Files land in the bridge's own cache, never on system PATH; blow it away with `rm -rf ~/.cache/mockzilla-mcp`.

NameTypeReqDescription
methodstring

No output schema declared.

No examples provided.

lint ~135

Check an OpenAPI spec for schemas no value can satisfy, such as an array with a scalar enum or additionalProperties: false next to oneOf properties. Mockzilla can't generate valid responses for these, so requests to affected endpoints fail validation. Returns {clean, defect_count, defects: [{rule, path, detail}], truncated}; at most 50 defects are listed. Pass `input` as a local spec file or a public https URL. Use it before serving or deploying a spec, or when a mock returns unexpected validation errors. OpenAPI 3.x only.

NameTypeReqDescription
inputstringyesSpec file path or public https URL.

No output schema declared.

No examples provided.

list_catalog_products ~171

List the catalog specs (Stripe, Adyen, etc.) available to attach to a HOSTED sim on mockzilla.org. Returns recommended runtime settings the agent should compare against the org's tier before suggesting a deploy. Pass `search` to substring-match by slug or name. The returned ids/slugs are ONLY usable with `deploy_mock_from_catalog` — they are NOT URLs and NOT valid input for `serve_locally`. If the user wants to try a catalog product locally instead, skip this tool and call `serve_locally` with the public OpenAPI URL for the service (recall it from your training knowledge — Stripe, Twilio, etc. all publish OpenAPI specs on GitHub).

NameTypeReqDescription
limitinteger
pageinteger
searchstring

No output schema declared.

No examples provided.

list_github_repos ~99

List the user's GitHub repositories so you can ASK which one to publish mocks to. Never pick one yourself. `publishes_mocks: true` means that repo already has the Mockzilla workflow, so publishing there updates its existing mock instead of creating another. Useful in clients with no shell, where you cannot run `gh repo list`.

NameTypeReqDescription
limitinteger
ownerstringLimit to a user or org.

No output schema declared.

No examples provided.

list_mock_endpoints ~108

List all endpoints currently mocked via `mock_endpoint`. Returns {endpoints: [{method, service, path, status, headers?, file}], server_url, ui_url}. An endpoint with `body: null` answers with no body. If a managed server is running, `ui_url` is the mockzilla UI (opens in a browser, shows endpoints grouped by service plus request inspection). Suggest the UI to the user when they want to explore beyond what the agent can show in chat.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_replays ~95

List the replay recordings a service currently holds, so you can tell the user what is pinned and what a matching request will return. Use it after `setup_replay` to confirm a recording was captured, or when a response looks stale and you suspect it is being replayed rather than produced fresh. Read-only.

NameTypeReqDescription
keystringOne recording's key, for its full detail.
servicestringyes

No output schema declared.

No examples provided.

list_sims ~92

List the sims (deployed mocks) accessible to the current org. Returns a page of sim entries with their refs, statuses, and live URLs. Pass `search` to substring-filter by name or sim_pk, or `sim` to look up exactly one sim_pk.

NameTypeReqDescription
limitinteger
pageinteger
searchstring
simstring

No output schema declared.

No examples provided.

login ~126

Log in to Mockzilla cloud so the hosted tools (deploying mocks, listing simulations, the catalog) become available. Opens the Mockzilla login in the user's browser, where they pick an organization and read-only or read-and-write access. Returns right away with the login `url`. Call it when a hosted tool says it needs a login, then call that tool again once the user approves. Local tools never need it. Side effects: starts a short-lived listener on 127.0.0.1 for the login callback, and saves the login under ~/.config/mockzilla-mcp/.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

logout ~52

Log out of Mockzilla cloud on this machine. Revokes the connection and deletes the saved login; hosted tools disappear until the next login. Call it when the user asks to log out or to switch organization or access level.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mock_endpoint ~591

Quickly mock a single HTTP endpoint without writing an OpenAPI spec. Pass `method` (default GET), `path` (the EXACT HTTP path the user described, including all segments), and the `response` body (object → JSON, string → text). The bridge writes the response into a managed static dir at ~/.cache/mockzilla-mcp/mocks/ and (re)starts a single shared mockzilla server pointing at it. Pass `path` AS IS. Do NOT prepend or duplicate any segment. The bridge derives the service name from the first segment for internal grouping, but it does not change the URL the user hits. Examples: • User says `GET /pets/{id}` → call mock_endpoint with path=`/pets/{id}` → URL is http://HOST:PORT/pets/{id} • User says `POST /orders` → path=`/orders` → URL is http://HOST:PORT/orders • User says `GET /v1/users/me` → path=`/v1/users/me` → URL is http://HOST:PORT/v1/users/me Pass `status` and/or `headers` to mock a failure or a redirect with a real body: `status: 404` with an error payload, `201` with a `Location`, `429` with `Retry-After`. Omit `response` to send no body at all, which 204 and 304 require. These need mockzilla 2.8.20 or newer; the tool says so if the installed CLI is older. To fail a share of requests instead of every one, use `serve_locally` with `errors`. Path placeholders like `{id}` are stored as literal directory names — by default ALL placeholder values share the same response. To return different responses for specific values, call mock_endpoint again with a literal value (e.g. /pets/123). Calling this multiple times accumulates endpoints in the same server — adding `POST /pets` after `GET /pets/{id}` keeps both. Mutually exclusive with `serve_locally`: stop any ad-hoc server first. See `mockzilla_docs_search('static directory')` for the underlying convention.

NameTypeReqDescription
content_typestringOverride content type. Inferred from response type if omitted (object → application/json, string → text/plain).
headersobjectExtra response headers, e.g. {"Location": "/orders/42"}. A Content-Type here wins over `content_type`.
methodstring
pathstringyesPath beginning with /. First segment is the service name.
responseResponse body. Object → JSON. String → text. Default {}.
statusintegerResponse status. Omit `response` alongside it for a body-less response, which is what 204 and 304 need.

No output schema declared.

No examples provided.

mockzilla_docs_read ~163

Return the full markdown of Mockzilla doc topics. Pass `topics` with one or more ids from `mockzilla_docs_topics`, or `category` to read a whole category in one call. A large request returns what fits and lists the rest in `remaining`: read those in a second call. A link to another topic reads as (topic `id`). Each topic carries `url`, its public page, to give the user; don't fetch it, the markdown is the same page.

NameTypeReqDescription
categorystringA category slug from `mockzilla_docs_topics`, e.g. 'simulations'.
topicsarrayTopic ids from `mockzilla_docs_topics`, e.g. ['getting-started/terminology', 'engine/contexts'].

No output schema declared.

No examples provided.

mockzilla_docs_search ~99

Search the Mockzilla docs by keyword. Returns the best matching sections {topic, title, heading, snippet} so you know which topics to read. Use it when no topic title from `mockzilla_docs_topics` clearly fits. Answer from the docs rather than from memory: they describe the product as it is now.

NameTypeReqDescription
limitinteger
querystringyesFree-text query, e.g. 'static directory layout'.

No output schema declared.

No examples provided.

mockzilla_docs_topics ~124

List the Mockzilla docs that ship with this bridge: the product docs from mockzilla.org (what a simulation is, deploying, resilient backends, billing, settings, the CLI and this MCP server) and the open-source engine docs under `engine/` (configuration, contexts, middleware, replay). Returns each category with its topics' `id`, `title` and one-line `summary`. The docs are files inside the bridge, so this needs no network and no login. Call it before answering a question about Mockzilla, then read the topics that fit.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

pack ~274

Pack a directory of mockzilla services into a `.mockz` archive for easier distribution or sharing. The archive carries a manifest (name, description, mounts, modes, git source) so the runtime can register every service without re-walking the tree. Hand the resulting .mockz to anyone — they can serve it with `serve_locally`, even from a URL. Use this when the user wants to share a working mock setup, snapshot one for a teammate, or publish it. Defaults: output is `<basename>.mockz` next to `dir`. Git metadata (remote, ref, commit) is auto-embedded when `dir` is inside a git tree — pass `skip_git: true` to suppress.

NameTypeReqDescription
descriptionstringFree-text description embedded in the manifest.
dirstringyesDirectory containing services / specs to pack.
min_versionstringMinimum mockzilla version required to load this archive (e.g. '2.5.3'). Useful when the archive relies on newer features.
namestringDisplay name embedded in the archive manifest.
outputstringOutput .mockz path. Defaults to <basename>.mockz next to dir.
skip_gitbooleanDon't auto-embed git remote/ref/commit in the manifest.

No output schema declared.

No examples provided.

publish_to_github ~514

Publish mocks to one of the USER'S OWN GitHub repositories and let the Mockzilla action deploy them, giving a shareable URL at api.mockz.io/gh/<owner>/<repo>/. No Mockzilla account is needed: the first push registers the repository. This is the free path for a user who is not logged in, and a valid choice for one who is when they want the mocks living in a repo and reviewed like code. If they are logged in and just want a quick hosted mock, prefer `deploy_mock_from_*` instead, which also gives history and replays in the app. ASK THE USER FIRST, do not guess: 1. WHICH REPOSITORY. It is theirs, not one you invent. It can be an existing repo, including an app repo they already have, since this only adds a services folder and a workflow. `list_github_repos` shows the candidates. 2. PRIVATE OR PUBLIC, if it has to be created. `visibility` is required and has no default. The deployed mock URL is public either way, so say so: whatever is in these responses is readable by anyone with the link. SIDE EFFECTS: uses the user's own `gh` login, may create a repository, commits and pushes, and triggers a public deploy. An existing services folder is merged into, not replaced, unless `replace` is true; an existing workflow is never overwritten. Mocks here are static: spec-generated or fixed responses. If the user wants real logic or state, this is the wrong tool; that needs the codegen action and a Go server, and this refuses to publish into such a repository. Keep specs small too, since a free simulation has 128MB and a big spec costs far more in memory than on disk: `simplify` first if needed. Then call `wait_for_github_deploy`.

NameTypeReqDescription
descriptionstringDescription for a new repo.
messagestringCommit message.
replacebooleanDelete the repo's existing service folder first. Default merges.
repostringyes"owner/name" of the user's repo. Created if absent.
services_dirstringWhere service folders go in the repo. Defaults to "services"; use another path when adding mocks to an existing project.
sourcestringFolder to publish. Defaults to the mocks built by mock_endpoint.
visibilitystringyesRequired when creating. Ask the user; there is no default.

No output schema declared.

No examples provided.

request_history ~253

List the requests the running local server has answered, newest first: method, URL, status, content type, how long it took, and where the response came from (generated, upstream, replay or cache). Use it to show the user what their code actually sent, to confirm a call arrived, or to find the request to look at next. Pass `id` together with `service` for one request's full headers and body. Reads the server's own history API, so it needs no account and works entirely on localhost. To ask what is WRONG with the traffic rather than list it, call `diagnose_requests`.

NameTypeReqDescription
failed_onlybooleanOnly responses with status 400 or above.
idstringOne entry's id, from a previous listing. Needs `service` too. Returns full request and response headers and bodies.
limitinteger
methodstringOnly this HTTP method, e.g. "POST".
path_containsstringOnly requests whose URL contains this substring.
servicestringLimit to one service. Omit to read every service the server has.
statusintegerOnly this exact status code.

No output schema declared.

No examples provided.

serve_locally ~607

Start ONE mockzilla portable mock server on this machine that serves any number of APIs together — no mockzilla account needed. Pass `input` as a single spec path / directory / public https URL, OR an array of them to combine multiple APIs into the same server (each becomes a service mounted at /<service>/...). Returns {url, port, pid, services} plus `example_endpoints`, callable URLs for a single spec. Use one of those rather than guessing a path: each service answers under its mount prefix, not at the spec's bare path. Pair with `stop_locally(pid)` to clean up. Prefer this over `deploy_mock_from_*` whenever the user says 'try locally', 'experiment', or 'play with' — those tools create persistent hosted bundles, this one is ephemeral. The bridge only runs ONE local server at a time on purpose: if the user wants more APIs, stop the current server and restart with all of them in `input`. To test how a client handles a slow or failing API, pass `latency` and/or `errors`. These and `mount`/`context` work only when `input` is a single spec or single-service folder. If the user names a well-known API (stripe, twilio, github, openai, slack, etc.) WITHOUT providing a URL, recall the public OpenAPI spec URL from your training knowledge and pass that. Do NOT pass a catalog ID or slug from `list_catalog_products` — that catalog is for the HOSTED `deploy_mock_from_catalog` flow, its ids are not URLs. Examples of public OpenAPI URLs: • Stripe: https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json • Twilio: https://raw.githubusercontent.com/twilio/twilio-oai/main/spec/json/twilio_api_v2010.json • GitHub: https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json • Petstore: https://petstore3.swagger.io/api/v3/openapi.json

NameTypeReqDescription
contextstringPath to a flat context YAML of replacement values for generated data.
errorsobjectError injection by cumulative percentile, keys p1 to p100. {"p5": 500, "p10": 503} returns 500 for 5% of requests and 503 for the next 5%.
inputyesSpec file path(s), directory, or public OpenAPI URL(s). Pass an array to combine multiple APIs into one server.
latencystringDelay added to every response, as a Go duration: "100ms", "1.5s".
mountstringURL path to mount the service at, e.g. "pets/v2".
portintegerPort to bind on. Omit or pass 0 to let the OS pick a free port.

No output schema declared.

No examples provided.

setup_replay ~458

Configure replay for a service: record a real response once, then serve it back for every matching request (VCR). Writes a `replay:` block into the service's config.yml. ASK THE USER TWO THINGS BEFORE CALLING: 1. Record from a real backend, or pin the mock's own output? With `upstream_url` the recording is the real backend's response. Without it, replay pins the generated response so repeat calls stop returning fresh random data, which is often what 'make it stable' means. 2. One recording for the whole endpoint, or one per input? With no `match` fields the key is method and path only, so EVERY call to POST /foo replays the first response no matter what it sends. Look at what the endpoint actually takes, then ask which fields distinguish one case from another and pass those as `match`. Match fields come from three sources: `path` (path variables, ignored unless listed), `body` (dotted paths like `data.items[0].name`, or `"[0].name"` for a top-level array, or flat keys for form bodies), and `query`. Returns `recording_scope` spelling out what each endpoint is keyed by. Only writes inside the bridge's own mocks dir; for a folder served from the user's project it returns the YAML and the path for them to apply. Config is read at startup, so restart after.

NameTypeReqDescription
auto_replaybooleanRecord and replay without the X-Mockzilla-Replay header.
dirstringDirectory holding the service, when it is not one of the bridge's own mocks.
durationstringHow long recordings live, e.g. "24h".
endpointsarrayyesEndpoints to record.
servicestringyesService to record, as named in serve_locally's output.
upstream_onlybooleanRefuse to record anything that did not come from the upstream. Needs `upstream_url`, or every request answers 502.
upstream_urlstringReal backend to record from, e.g. "https://api.example.com". Omit to record the mock's own generated responses.

No output schema declared.

No examples provided.

simplify ~320

Simplify an OpenAPI spec: drop or reduce union types (anyOf/oneOf), strip x-* extensions, and optionally limit the number of optional properties per schema. Writes the simplified spec to disk and returns its path. Use this when a spec is too large or too complex to mock cleanly (deeply nested unions, hundreds of optional fields) — the output is a faithful subset the agent can hand to `serve_locally`. Optional-property handling: • omit `optional` to keep every optional property • `optional: N` keeps exactly N per schema (0 drops them all) • `optional_min`/`optional_max` (must come together) picks a random count in that range per schema Pass `config` for an oapi-codegen-dd codegen.yml when the user wants filter + overlay + prune applied before simplification.

NameTypeReqDescription
configstringPath to an oapi-codegen-dd codegen.yml. Applies filter + overlay + prune before simplification.
inputstringyesSpec file path or public https URL.
optionalintegerKeep exactly N optional properties per schema. Mutually exclusive with optional_min/optional_max.
optional_maxintegerRange mode upper bound (use with optional_min).
optional_minintegerRange mode lower bound (use with optional_max).
outputstringWhere to write the simplified spec. Omit to write into ~/.cache/mockzilla-mcp/simplified/ and let the bridge pick a name.

No output schema declared.

No examples provided.

stop_locally ~45

Stop the mockzilla server started by `serve_locally`. Takes no arguments — there's only ever one local server running. Returns {stopped: bool, pid?, reason?}.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

unpublish_from_github ~122

Take down the mocks a repository serves, freeing its simulation slot. Runs the workflow with `delete: true`, which needs the workflow_dispatch trigger this bridge writes; a repo whose own workflow lacks it cannot be torn down this way, and the result says so. Pass `delete_repo: true` to also delete the repository itself, which is permanent and needs the `delete_repo` scope, so confirm with the user before using it.

NameTypeReqDescription
delete_repobooleanAlso delete the repository. Permanent. Ask first.
repostringyes

No output schema declared.

No examples provided.

wait_for_deploy ~124

Block until a sim's deploy reaches a terminal status (`active` or `failed`) or until `timeout_s` seconds elapse (default 25, max 30). Returns `{sim_id, status, urls: {live, dashboard}}` — `urls.live` is set once the deploy is ACTIVE. On timeout the response carries the current non-terminal status (typically `deploying`); the agent can call `wait_for_deploy` again with the same `sim_id`.

NameTypeReqDescription
sim_idstringyes
timeout_sinteger

No output schema declared.

No examples provided.

wait_for_github_deploy ~82

Wait for the Mockzilla workflow run to finish and return the live mock URL. Call after `publish_to_github`, or after the user pushes. A first deploy takes a minute or two. If it returns with no conclusion it simply ran out of time: call again.

NameTypeReqDescription
repostringyes
timeout_secondsinteger

No output schema declared.

No examples provided.

Common questions

What is the io.github.mockzilla/mockzilla-mcp server?

io.github.mockzilla/mockzilla-mcp is listed in the public MCP registry as io.github.mockzilla/mockzilla-mcp. Mock OpenAPI specs locally, or log in to deploy hosted mocks on mockzilla.org from your MCP client. This page covers its npm package (@mockzilla/mcp).

Is the io.github.mockzilla/mockzilla-mcp server safe to use?

io.github.mockzilla/mockzilla-mcp scores 88 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.mockzilla/mockzilla-mcp server expose?

io.github.mockzilla/mockzilla-mcp exposes 35 tools: check_cli, install_cli, serve_locally, call_endpoint, mock_endpoint, and 30 more. Their descriptions and schemas cost roughly 6,446 tokens of context every time the server is loaded.

Is the io.github.mockzilla/mockzilla-mcp server still maintained?

io.github.mockzilla/mockzilla-mcp is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.mockzilla/mockzilla-mcp server under?

io.github.mockzilla/mockzilla-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.