# MCP client compatibility fixture

Status: published evidence fixture, not a production server

License: MIT. See `LICENSE-MIT.txt`.

This deterministic Streamable HTTP server supports the compatibility test
described in `docs/seo/article-briefs/mcp-one-server-multiple-clients.md`. It
exposes two read-only tools, requires a bearer credential, and produces fixed
success and failure results.

The fixture deliberately:

- binds to `127.0.0.1`;
- rejects missing or invalid credentials;
- rejects non-local `Origin` values;
- requires `MCP-Protocol-Version: 2025-11-25` after initialization;
- exposes no filesystem, network, database, write, or paid operation;
- does not log requests, headers, credentials, or tool arguments.

## Run locally

Use a throwaway value. Do not reuse a production credential.

```bash
MCP_FIXTURE_TOKEN='replace-with-at-least-16-random-characters' \
  deno run --allow-env --allow-net=127.0.0.1:8789 \
  scripts/mcp-compat-fixture/server.ts
```

The MCP endpoint is `http://127.0.0.1:8789/mcp`; the unauthenticated health
endpoint is `http://127.0.0.1:8789/healthz`.

## Verify

```bash
deno check scripts/mcp-compat-fixture/server.ts
deno test scripts/mcp-compat-fixture/handler_test.ts
```

Do not publish a client compatibility result from the handler tests alone. Each
client row still needs an observed handshake, tool discovery, success call,
failure call, credential rotation, and removal check on the recorded client
version.

The source bundle is also available at
`https://futurecraft.pro/artifacts/mcp-compat-fixture/`.
