Metadata-Version: 2.4
Name: mcpshape
Version: 0.1.2
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.

```
uv tool install mcpshape
brew install voidfreud/mcpshape/mcpshape
```

Either line installs the command: the first from PyPI, the second from the Homebrew tap. From
this repository instead, `uv tool install git+https://github.com/voidfreud/mcpshape`; from a
checkout, `uv tool install .`, 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`.
