What it is
A runtime MCP proxy: one always-on entry in your client config that reaches the rest of the ecosystem. search finds a server across seven registries, shapeshift(id) mounts its tools into the current turn, and shapeshift() with no argument drops them again. The same loop doubles as a REPL for a server you are writing — connect, edit, reload, call — without the session dying in between.
Requirements
Python 3.12+. Install with pip install kitsune-mcp, uvx kitsune-mcp for an isolated environment, or npx kitsune-mcp which delegates to uvx, then add one entry to the client config with the command kitsune-mcp. Node and npx are needed for npm-based servers, uvx for PyPI-based ones. SMITHERY_API_KEY is optional and opens the hosted Smithery servers; the other registries need no auth. Docker is optional but load-bearing: community npm, PyPI and GitHub mounts cage in a hardened container by default when Docker is on PATH — no host filesystem, --cap-drop ALL, read-only rootfs, RAM and PID caps, credentials forwarded by name only. A community mount requires confirm=True, and TOFU version pins live in ~/.kitsune/pins.json. Credentials sit at mode 0600 with OAuth 2.1, PKCE S256 and dynamic client registration. A cold mount takes roughly 1-15 seconds. MIT.
Setup effort
One command — pip install kitsune-mcp