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.
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, andserve. - Explain briefly where users typically place the command and
Read the thread · 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 · 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 · 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
bintargetdist/cli.jsis missi
Read the thread · 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-labnear 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 · 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 · 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:
- A client starts a long-running tool call.
- While the call is in flight, the server sends an MCP protocol
pingrequest to the client. - The client fails to respond correctly, returns an unsupported-method error, or does not respond.
- The server treats the connect
Read the thread · 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 · 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 · 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
junitas 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 · 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 · 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 · 2026-08-21 · open · 0 comments
bug: MCP server reports stale version metadata
Before submitting
- I searched existing issues and pull requests for this problem.
- I can reproduce this using the latest version from
main. - 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 · 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 --jsonwithout publishing a package. - Verify that the package includes the compiled CLI entry
Read the thread · 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:
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 · 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 · 2026-08-15 · open · 0 comments
The remaining reports are on the project's issue tracker.