# Reported issues for mcp-failure-lab

Pod holds 16 of 17 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [mcp-failure-lab](/mcp/mcp-failure-lab).

## Most discussed

### docs: add MCP client launch configuration example

## Problem

The README explains how to run MCP Failure Lab from a terminal, but it does not provide a copyable configuration for launching the published package from an MCP client.

## Expected work

Add a concise MCP client configuration example that launches the server through `npx` without requiring a global installation.

## Acceptance criteria

- Add a JSON configuration example using `npx`, `-y`, `mcp-failure-lab`, and `serve`.
- Explain briefly where users typically place the command and 

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/27) · 2026-08-16 · open · 5 comments

### feat: add Streamable HTTP transport

## Context

MCP Failure Lab currently serves over stdio. Streamable HTTP is needed for clients and deployments that do not use process-based transport.

## Scope

- Add a Streamable HTTP serving mode using the MCP SDK transport.
- Reuse server construction and tool registration.
- Define host, port, session, shutdown, and diagnostic behavior.
- Add deterministic lifecycle and integration coverage.

## Acceptance criteria

- The server starts and stops cleanly over Streamable HTTP.
- Existing too

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/54) · 2026-08-21 · closed · 1 comment

### feat: define the target-client adapter interface

## Context

External client orchestration needs a small, stable boundary before client-specific adapters are implemented.

## Scope

- Define startup, readiness, invocation, timeout, cancellation, and cleanup responsibilities.
- Define how adapter observations map to scenario recordings.
- Keep transport and process management outside tool implementations.
- Add a deterministic contract-test adapter.

## Acceptance criteria

- Ownership and cleanup semantics are explicit.
- Adapter failures are 

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/49) · 2026-08-21 · closed · 1 comment

### Validate npm package contents before publishing

## Summary

Add strict npm package-content validation to the publish workflow before `npm publish`.

## Required changes

Update `.github/workflows/publish.yml` so the `Verify package contents` step does more than run `npm pack --dry-run`. The step must inspect the package file list, either from dry-run JSON output or from a temporary tarball.

The validation must fail when:
- a required published file is missing;
- an unexpected file is included; or
- the npm `bin` target `dist/cli.js` is missi

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/45) · 2026-08-20 · open · external user · 1 comment

### docs: add npm package badge to README

## Problem

MCP Failure Lab is published on npm, but visitors to the GitHub repository cannot immediately see its npm availability or current published version.

## Expected work

Add an npm version badge near the top of the README that links to the public npm package page.

## Acceptance criteria

- Add an npm version badge for `mcp-failure-lab` near the README title.
- Link the badge to `https://www.npmjs.com/package/mcp-failure-lab`.
- Use meaningful alt text.
- Keep the existing README layou

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/26) · 2026-08-16 · closed · 1 comment

### feat: migrate to MCP SDK v2 and support 2026-07-28

## Context

MCP Failure Lab currently uses `@modelcontextprotocol/sdk@^1.30.0` and negotiates MCP `2025-11-25`.

The `2026-07-28` protocol changes some assumptions the lab currently relies on, including initialization, sessions, and server-initiated requests. Before adding more protocol-level faults, move the project onto the current SDK/protocol model.

This should be a migration only. New fault behavior belongs in separate issues.

## Scope

- Migrate from the v1 monolithic SDK to the appropri

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/57) · 2026-08-23 · closed · 0 comments

### feat: add protocol-level ping/liveness scenario during in-flight tool calls

## Context

MCP Failure Lab can currently delay, hang, or disconnect a tool call, but the disconnect fault is triggered directly by the lab.

A real MCP failure case can happen through protocol-level liveness handling instead:

1. A client starts a long-running tool call.
2. While the call is in flight, the server sends an MCP protocol `ping` request to the client.
3. The client fails to respond correctly, returns an unsupported-method error, or does not respond.
4. The server treats the connect

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/56) · 2026-08-23 · open · 0 comments

### feat: orchestrate scenarios against external MCP clients

## Context

Issue #16 defines the target-client adapter contract. Once that boundary is available, the scenario runner needs orchestration that executes scenarios through configured external clients.

## Depends on

- #16

## Scope

- Select and configure a target-client adapter.
- Start the target client and wait for readiness.
- Execute the primary scenario call through the adapter.
- Preserve timeout, cancellation, observer, cleanup, and reporting semantics.
- Surface adapter startup and exec

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/55) · 2026-08-21 · open · 0 comments

## Most recent

### feat: add malformed-message fault scenarios

## Context

The current fault tools cover timing and transport loss but cannot reproduce invalid MCP or JSON-RPC messages.

## Scope

- Define deterministic malformed-message variants.
- Implement the smallest required transport-level mechanism.
- Bound payload size and activation count.
- Record client-visible outcomes and cleanup behavior.

## Acceptance criteria

- Every variant has explicit activation and observable behavior.
- Faults cannot continue indefinitely or affect unrelated sessions

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/53) · 2026-08-21 · open · 0 comments

### feat: add JUnit scenario reporting

## Context

The scenario runner supports console and JSON reports, but CI systems commonly consume JUnit XML for native test reporting.

## Scope

- Add `junit` as a report format.
- Map assertion failures to test failures and execution errors to test errors.
- Include primary and observer durations and diagnostics.
- Preserve existing console and JSON behavior.

## Acceptance criteria

- Output is valid JUnit XML.
- XML-sensitive content is escaped.
- Primary failures, observer failures, and ex

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/52) · 2026-08-21 · open · 0 comments

### feat: add duplicate-response fault scenarios

## Context

Clients need deterministic coverage for duplicate responses caused by server, proxy, or retry defects.

## Scope

- Emit a bounded duplicate response for one configured request.
- Define timing, correlation, and cleanup behavior.
- Record the client-visible outcome.
- Add integration and end-to-end coverage.

## Acceptance criteria

- The fault targets an explicit request and is bounded.
- Duplicate responses preserve the intended request identifier.
- Tests cover activation, client 

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/51) · 2026-08-21 · open · 0 comments

### feat: add session-loss fault scenarios

## Context

Transport disconnection does not model a session that becomes invalid during or between requests.

## Scope

- Define deterministic session-loss activation points.
- Invalidate only the targeted session.
- Expose clear behavior for active and subsequent requests.
- Add cleanup, integration coverage, and examples.

## Acceptance criteria

- Session loss targets a specific session.
- Active-request and between-request behavior are documented.
- Tests cover activation, observable failur

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/50) · 2026-08-21 · open · 0 comments

### bug: MCP server reports stale version metadata

### Before submitting

- [x] I searched existing issues and pull requests for this problem.
- [x] I can reproduce this using the latest version from `main`.
- [x] This report does not contain secrets or sensitive data.

### Problem

The MCP server reports stale version metadata during initialization.

The current package version is 0.3.1, but an MCP client connecting to the server receives serverInfo.version as 0.1.0.

The server version is currently hardcoded in src/server.ts, so it can become 

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/37) · 2026-08-17 · closed · 0 comments

### test: verify npm package contents before publishing

## Problem

The package is now published on npm, but the project does not have an automated check confirming that the generated package contains the files required by users.

## Expected work

Add a deterministic validation that inspects the output of `npm pack --dry-run --json` and fails when required package files or executable metadata are missing.

## Acceptance criteria

- Run `npm pack --dry-run --json` without publishing a package.
- Verify that the package includes the compiled CLI entry

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/28) · 2026-08-16 · open · 0 comments

### feat: add Streamable HTTP transport support

## Problem

MCP Failure Lab currently serves MCP over stdio only. Clients that connect over Streamable HTTP cannot use the existing fault tools.

## Proposed behavior

Add an explicitly selected Streamable HTTP mode to the existing `serve` command:

```text
mcp-failure-lab serve --transport http
```

The HTTP mode must reuse `createServer()` and the existing fault registrations.

Defaults:

- Host: `127.0.0.1`
- Port: `3000`
- Path: `/mcp`

Stdio remains the default when `--transport` is omitted

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/17) · 2026-08-15 · closed · 0 comments

### feat: define a target-client adapter contract

## Problem

The current runner calls MCP Failure Lab through its own in-process MCP client. This validates the lab and its scenario semantics, but it does not verify how an external MCP client reacts to controlled faults.

## Proposed behavior

Define a narrow target-client adapter contract that lets the scenario runner launch or connect to a client under test, observe its behavior, and clean up all owned resources.

## Acceptance criteria

- Document the lifecycle and ownership boundaries for a

[Read the thread](https://github.com/anilloutombam/mcp-failure-lab/issues/16) · 2026-08-15 · open · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/anilloutombam/mcp-failure-lab/issues).
