エージェントを強化
公開元自身のコマンドです。PlugMCP のエンドポイントではありません。
キーとログ付きでコピーをホスト。
npx -y [email protected]Claude Code にはローカルコマンド用のインストールリンクがありません。下のコマンドをコピーして、ターミナルで実行してください。
claude mcp add kitsune-mcp -- npx -y kitsune-mcp@0.23.0ターミナルで実行します。
{ "mcpServers": { "kitsune-mcp": { "command": "npx", "args": [ "-y", "[email protected]" ] } }}claude_desktop_config.json
リモート URL か、手元のマシンのコマンドか 2 つのインストール方法の違い
PlugMCP で実行
A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.
起動Your agent edits an MCP tool, but the client still runs the old process. Someone has to restart it before the agent can test the fix.
With Kitsune, connect, call and reload are tools. The agent runs the whole loop itself:
connect("uvx --from . my-mcp-server", name="dev") # start your server
shapeshift("dev") # its tools appear in the client
call("summarize", arguments={"url": "https://example.com"})
# … the agent (or you) edits the tool …
reload("dev") # restart on fresh code, remount
call("summarize", arguments={"url": "https://example.com"}) # new code, same session
It also mounts any of 130,000+ servers from 7 registries mid-session, caged in Docker.
Try it: hot-reload tutorial · examples/demo-hot-reload/
Claude Code
claude mcp add -s user kitsune -- uvx kitsune-mcp
Any other client (Claude Desktop, Cursor, Windsurf, Cline, Zed, …):
{
"mcpServers": {
"kitsune": { "command": "uvx", "args": ["kitsune-mcp"] }
}
}
Also on PyPI (pip install kitsune-mcp, then "command": "kitsune-mcp") and npm (npx kitsune-mcp, delegates to uvx).
Requirements: Python 3.12+ · uv · node/npx for npm-based servers · Docker optional, used to cage community servers.
search("web scraping")
shapeshift("firecrawl", tools=["scrape_url"]) # mount one tool, not the whole server
call("scrape_url", arguments={"url": "https://example.com"})
shapeshift() # drop it, session stays up
search("pdf", registry="glama")
shapeshift("mcp-pdf-tools", confirm=True) # npm/PyPI run in hardened Docker when available
call("extract_text", arguments={"path": "report.pdf"})
shapeshift()
auth("BRAVE_API_KEY", "sk-...") # saved to ~/.kitsune/.env, no restart
shapeshift("brave", tools=["brave_web_search"])
Full live walkthrough: docs/demo-realtime.md.
shapeshift(server_id) picks a transport (stdio, HTTP+SSE, WebSocket, Docker), connects, reads tools/list, and registers each tool as a native tool with the server's real schema. The client receives notifications/tools/list_changed and sees first-class tools, with no wrapper in between. shapeshift() with no argument removes them and closes the connection.
search() covers the official servers repo, the MCP Registry, Glama, npm, PyPI, GitHub (github:owner/repo) and Smithery (hosted servers, free API key).
Default profile: 9 tools, ~1,774 tokens/turn (measured with python examples/benchmark.py).
KITSUNE_TOOLS=all (or the kitsune-forge command) adds developer tools: inspect (schemas, credential check, token cost), test (quality score 0–100), bench (p50/p95 latency), compare, prewarm, craft, setup, and more. See docs/tools.md. Companion skills for Claude Code: kitsune-dev, kitsune-improve.
confirm=True. The model can set that flag itself, so real approval belongs in your client's tool-approval UI.connect() runs the command it is given, as your user, with no consent gate and no cage. It is meant for your own code. Approve connect calls in your client before the agent runs them.--cap-drop ALL, read-only root, memory and PID limits. Credentials are passed by name, never in argv.~/.kitsune/policy.json checks every downstream call against allow/ask/deny rules, path roots and a host allowlist. ask goes to you through MCP elicitation.fetch() blocks private hosts and re-checks every redirect.Don't run it unattended with production admin, billing or security credentials. The full model, including what it does not protect against: docs/safety.md.
.env lookup, tool profiles, sandbox and trust settings, Smithery, GATEWAY, mount patternsIn Japanese folklore the kitsune (狐) is known for what it can become: it borrows a form, uses that power, casts it off and returns to itself. That is the product loop.
I am not Japanese, and I use this name with the highest respect for the mythology and culture it comes from. The parallel felt too precise to ignore.
make dev # install with dev dependencies
make test # pytest
make lint # ruff
Issues and PRs welcome: github.com/kaiser-data/kitsune-mcp · CHANGELOG.md
MIT License · Python 3.12+ · Built on FastMCP
Hot-reload for MCP servers: edit your tool, reload(), call it again in the same session. Plus mount any of 130,000+ community servers mid-session across 7 registries, optionally caged in Docker. No cl
{ "mcpServers": { "kitsune-mcp": { "command": "npx", "args": [ "-y", "[email protected]" ] } }}概要
Hot-reload for MCP servers: edit your tool, reload(), call it again in the same session. Plus mount any of 130,000+ community servers mid-session across 7 registries, optionally caged in Docker. No client restarts.
ツール
ツール一覧はまだありません。リモートサーバーは、最初のヘルスチェック後に取得されます。
よくある質問
このページで Cursor、Claude Desktop、Claude Code、VS Code 用の stdio 設定をコピーできます。PlugMCP のプロキシではなく、公開元のインストール方法を使います。
このレコードに必須の環境変数は記載されていません。
Kitsune は stdio 経由でローカル実行されます。
最終チェックは 2026-11-15 です。 Hot-reload for MCP servers: edit your tool, reload(), call it again in the same session. Plus mount any of 130,000+ community servers mid-session across 7 registries, optionally caged in Docker. No client restarts.