Metadata-Version: 2.4
Name: mcpshape
Version: 0.1.1
Summary: A local proxy that reshapes what MCP servers expose.
Author: Void Freud
Author-email: Void Freud <246163318+voidfreud@users.noreply.github.com>
License-Expression: MIT
Requires-Dist: cryptography>=50
Requires-Dist: fastmcp>=4,<5
Requires-Dist: httpx2>=2
Requires-Dist: jsonschema>=4
Requires-Dist: pydantic>=2.13.5
Requires-Dist: starlette>=1.0
Requires-Dist: tomlkit>=0.15.1
Requires-Dist: typer>=0.27.2
Requires-Python: >=3.12
Description-Content-Type: text/markdown

# mcpshape

Reshape what MCP servers expose before a model sees it.

An MCP server as shipped offers every tool it has, described at whatever length its author
chose, and most Clients take it whole or not at all. mcpshape is a local proxy between the
servers you use and the Clients that use them. You add a server once as an Upstream, and
mcpshape serves one or more Proxies for it, each a curated MCP server of its own: tools
hidden, renamed, re-described, capped, rewritten in Python, or added, before a model sees
them. Clients are pointed at the Proxy.

## Install

Python 3.12 or newer, macOS or Linux. From this repository:

```
uv tool install git+https://github.com/voidfreud/mcpshape
```

From a checkout, `uv tool install .` does the same, and `uv sync` with `uv run mcpshape` runs
it in place. mcpshape makes no network call except to your Upstreams.

## First steps

```
mcpshape add github --stdio 'npx -y @modelcontextprotocol/server-github'
mcpshape upstream sync github
mcpshape tool hide github/default create_gist
mcpshape proxy install github/default --to claude-code
mcpshape daemon up
```

Every command explains itself with an example: `mcpshape --help`, and `--help` on any command.

How work lands is `CONTRIBUTING.md`.
