# MCP Failure Lab

> Reproduce MCP timeouts, cancellation races, transport loss and invalid responses with repeatable scenarios and CI reports.

- Listing: https://mcp.tc/i/mcp-failure-lab
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: no API key needed
- Category: [Developer Tools](https://mcp.tc/c/developer-tools)
- Vendor: anilloutombam
- Homepage: <https://mcplab.dev>
- Repository: <https://github.com/anilloutombam/mcp-failure-lab>
- Package: npm `mcp-failure-lab`

## About

MCP Failure Lab is a chaos-engineering and resilience-testing toolkit for MCP clients and servers. Its built-in server exposes fault tools such as delay, hang, disconnect, malformed messages, duplicate responses and session loss, so you can check both the failed call and whether the next request on the same connection works.

## What it can do

- Run a built-in demo of a deterministic delay scenario
- Trigger timeouts, hangs and transport disconnects against an MCP client
- Send malformed or duplicate JSON-RPC responses to test client handling
- Run scenario files against external HTTP or stdio MCP servers
- Produce JUnit reports for CI with documented exit codes
- Serve over stdio or local Streamable HTTP

## Example prompts

- "Call the delay tool and tell me how long the response took."
- "Use the hang tool so I can test my client's cancellation handling."
- "Send a duplicate response, then ping to check the connection still works."
- "Trigger a malformed message and report how my client reacted."

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio mcp-failure-lab -- npx -y mcp-failure-lab
```

2. Start Claude Code and type `/mcp`. **mcp-failure-lab** should show as connected.

Add `--scope user` to make it available in every project.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "mcp-failure-lab": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-failure-lab"
      ]
    }
  }
}
```

2. Save the file and restart Claude Desktop.

Needs Node.js on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=mcp-failure-lab&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1jcC1mYWlsdXJlLWxhYiJdfQ%3D%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "mcp-failure-lab": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-failure-lab"
      ]
    }
  }
}
```

Needs Node.js on your computer.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=mcp-failure-lab&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22mcp-failure-lab%22%5D%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"mcp-failure-lab","type":"stdio","command":"npx","args":["-y","mcp-failure-lab"]}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "mcp-failure-lab": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-failure-lab"
      ]
    }
  }
}
```

Needs Node.js on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "mcp-failure-lab": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-failure-lab"
      ]
    }
  }
}
```

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add mcp-failure-lab -- npx -y mcp-failure-lab
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.mcp-failure-lab]
command = "npx"
args = ["-y", "mcp-failure-lab"]
```

Needs Node.js on your computer.

### Gemini CLI

```bash
gemini mcp add mcp-failure-lab npx -- -y mcp-failure-lab
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "mcp-failure-lab": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-failure-lab"
      ]
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs Node.js on your computer.

## Recent changes

- 2026-10-06 21:22 UTC: Tracking started: version 0.12.0. Source: automatic check.

More on the History tab, with descriptions before and after for the newest entries: https://mcp.tc/i/mcp-failure-lab#history (Atom feed: https://mcp.tc/i/mcp-failure-lab/history.xml). It records what mcp.tc's anonymous checks saw, every 3 hours where the tool list can be read without sign-in; it is not a security review.

## Details

- Server version: 0.12.0
- Last checked: 2026-10-05
- Listed: 2026-10-05
- Updated: 2026-10-05

---
Source: https://mcp.tc/i/mcp-failure-lab (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
