kitsune-mcp 0.8.5 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +20 -4
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -263,6 +263,8 @@ Every `shapeshift()`, `call()`, and `connect()` result shows where the server co
263
263
  | Medium | `mcpregistry`, `glama`, `smithery` | `✓ Source: smithery` |
264
264
  | Community | `npm`, `pypi`, `github` | `⚠️ Source: npm (community — not verified)` |
265
265
 
266
+ Community servers and `source="local"` installs require `confirm=True` — you're explicitly acknowledging you've reviewed the server before running arbitrary code. To bypass this for servers you already trust, set `KITSUNE_TRUST=community` (via `key("KITSUNE_TRUST", "community")` or your `.env`). This persists across sessions so power users and agents never see the gate again.
267
+
266
268
  ### Install command validation
267
269
 
268
270
  Before spawning any subprocess, Kitsune MCP validates the executable name:
@@ -400,8 +402,8 @@ key("BRAVE_API_KEY", "your-key") # writes to .env, active immediately
400
402
 
401
403
  | Tool | Description |
402
404
  |---|---|
403
- | `shapeshift(server_id, tools)` | Load a server's tools live. `tools=[...]` for lean shapeshift. |
404
- | `shiftback(kill)` | Remove shapeshifted tools. `kill=True` terminates the process immediately. |
405
+ | `shapeshift(server_id, tools, source, confirm)` | Load a server's tools live. `tools=[...]` for lean load. `source="local"` forces npx/uvx install; `source="smithery"` forces HTTP. |
406
+ | `shiftback(kill, uninstall)` | Remove shapeshifted tools. `kill=True` terminates the process. `uninstall=True` also removes a locally installed package. |
405
407
  | `search(query, registry)` | Search MCP servers across registries. |
406
408
  | `inspect(server_id)` | Show tools, schemas, and live credential status (✓/✗ per key). |
407
409
  | `call(tool_name, server_id, args)` | Call a tool. `server_id` optional when shapeshifted — current form used. |
@@ -492,6 +494,16 @@ call("brave_web_search", arguments={"query": "MCP protocol 2025"})
492
494
  shiftback()
493
495
  ```
494
496
 
497
+ ### Local install — no API key needed
498
+
499
+ ```
500
+ # Force local install via npx/uvx — no Smithery key required
501
+ shapeshift("brave", source="local", confirm=True)
502
+ # → spawns npx locally, tools appear natively
503
+ call("brave_web_search", arguments={"query": "MCP 2026"})
504
+ shiftback(uninstall=True) # remove tools AND uninstall the package
505
+ ```
506
+
495
507
  ### Persistent server with setup guidance
496
508
 
497
509
  ```
@@ -509,13 +521,17 @@ shiftback(kill=True) # terminates process, frees RAM
509
521
  ## Installation
510
522
 
511
523
  ```bash
512
- pip install kitsune-mcp # from PyPI
524
+ uvx kitsune-mcp # recommended — uv manages the env automatically
525
+ # or
526
+ pip install kitsune-mcp # classic pip
513
527
  # or
514
- git clone https://github.com/kaiser-data/kitsune-mcp && pip install -e .
528
+ npx kitsune-mcp # if you prefer npm (delegates to uvx internally)
515
529
  ```
516
530
 
517
531
  **Requirements:** Python 3.12+ · `node`/`npx` (for npm servers) · `uvx` from [uv](https://github.com/astral-sh/uv) (for pip servers)
518
532
 
533
+ > **Tip:** `uvx kitsune-mcp` is the easiest way — uv installs into an isolated env automatically. No venv setup needed.
534
+
519
535
  ---
520
536
 
521
537
  ## Contributing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitsune-mcp",
3
- "version": "0.8.5",
3
+ "version": "0.9.0",
4
4
  "description": "The shape-shifting MCP hub — shapeshift() into 10,000+ MCP servers at runtime. One entry point, no restarts, 7 registries.",
5
5
  "mcpName": "io.github.kaiser-data/kitsune-mcp",
6
6
  "bin": {