Metadata-Version: 2.5
Name: bouncer-mcp
Version: 0.1.2
Summary: A local stdio MCP proxy that enforces bouncer-core's contracts on every tool call
Project-URL: Homepage, https://github.com/Ezed9/mcp-bouncer
Project-URL: Issues, https://github.com/Ezed9/mcp-bouncer/issues
License-Expression: MIT
Requires-Python: >=3.12
Requires-Dist: anyio>=4.0
Requires-Dist: bouncer-core==0.1.2
Requires-Dist: mcp<2,>=1.28
Description-Content-Type: text/markdown

# bouncer-mcp

The local **stdio MCP proxy** half of [bouncer](https://github.com/Ezed9/mcp-bouncer).
It sits between your MCP client and your existing tool servers, re-exports every
tool 1:1, and enforces [`bouncer-core`](https://pypi.org/project/bouncer-core/)'s
contracts on each call.

```bash
uv tool install bouncer-mcp
bouncer init
```

The enforcement engine — provenance and taint rules, per-argument constraints,
call budgets — is `bouncer-core`, which depends only on `pyyaml` and speaks no
MCP at all. Install that one directly if you are enforcing contracts inside your
own harness rather than proxying an MCP server.

**There is no LLM in the enforcement path.** Every decision is plain Python over
a recorded schema, a policy, and a taint log.

Full documentation, the threat model, and the benchmark results are in the
[repository README](https://github.com/Ezed9/mcp-bouncer#readme).
