kitsune-mcp 0.8.5 → 0.10.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 +39 -5
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -5,7 +5,9 @@
5
5
  <p><strong>One MCP entry. 10,000+ servers on demand.<br/>Load only the tools you need. Switch instantly. No restarts.</strong></p>
6
6
  </div>
7
7
 
8
- [![PyPI](https://img.shields.io/pypi/v/kitsune-mcp?color=blue)](https://pypi.org/project/kitsune-mcp/)
8
+ [![PyPI](https://img.shields.io/pypi/v/kitsune-mcp?color=blue&label=pypi)](https://pypi.org/project/kitsune-mcp/)
9
+ [![npm](https://img.shields.io/npm/v/kitsune-mcp?color=cb3837&label=npm&logo=npm)](https://www.npmjs.com/package/kitsune-mcp)
10
+ [![MCP Registry](https://img.shields.io/badge/MCP%20Registry-listed-8a2be2)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.kaiser-data%2Fkitsune-mcp)
9
11
  [![Python](https://img.shields.io/pypi/pyversions/kitsune-mcp)](https://pypi.org/project/kitsune-mcp/)
10
12
  [![CI](https://github.com/kaiser-data/kitsune-mcp/actions/workflows/test.yml/badge.svg)](https://github.com/kaiser-data/kitsune-mcp/actions)
11
13
  [![Coverage](https://codecov.io/gh/kaiser-data/kitsune-mcp/branch/main/graph/badge.svg)](https://codecov.io/gh/kaiser-data/kitsune-mcp)
@@ -15,6 +17,22 @@
15
17
 
16
18
  ---
17
19
 
20
+ ## What's new in v0.9.0
21
+
22
+ Friction-reduction release focused on first-run onboarding, credential visibility, and agent workflows.
23
+
24
+ - **`search()` shows credential status per result** — `✅ ready` or `✗ needs BRAVE_API_KEY` inline, so you know before you shapeshift
25
+ - **`shapeshift(server_id, source="local", confirm=True)`** — force a local `npx`/`uvx` install without a Smithery key; `source="smithery"` forces HTTP; `source="official"` requires a verified registry listing
26
+ - **`shiftback(uninstall=True)`** — optionally removes the locally installed package (uvx fully removed via `uv tool uninstall`; npx cache clears automatically)
27
+ - **`KITSUNE_TRUST=community`** env var — skip the `confirm=True` gate permanently for trusted users and agents; set once via `key("KITSUNE_TRUST", "community")`
28
+ - **First-run onboarding in `status()`** — clean sessions now show a 5-step getting-started guide with an example flow
29
+ - **Lean-mounting hint** — after a heavy `shapeshift()` the output suggests `tools=[...]` with a concrete tool name and token cost
30
+ - **Registry failure reporting** — `search()` now shows `⚠️ Skipped: <name> (timeout)` when one registry is slow, so you know results are partial instead of silently incomplete
31
+
32
+ See [CHANGELOG.md](CHANGELOG.md) for the full list plus internal refactors and bug fixes.
33
+
34
+ ---
35
+
18
36
  ## Why Kitsune?
19
37
 
20
38
  In Japanese folklore, the Kitsune (狐) is a fox spirit of extraordinary intelligence and magical power. What makes it remarkable is how it grows: with age and wisdom, a Kitsune gains additional tails — each one representing a new ability it has mastered. It can shapeshift, take on any form it chooses, borrow the powers of others, and just as freely cast them off when the purpose is fulfilled. One fox. Many forms. Total fluidity.
@@ -263,6 +281,8 @@ Every `shapeshift()`, `call()`, and `connect()` result shows where the server co
263
281
  | Medium | `mcpregistry`, `glama`, `smithery` | `✓ Source: smithery` |
264
282
  | Community | `npm`, `pypi`, `github` | `⚠️ Source: npm (community — not verified)` |
265
283
 
284
+ 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.
285
+
266
286
  ### Install command validation
267
287
 
268
288
  Before spawning any subprocess, Kitsune MCP validates the executable name:
@@ -400,8 +420,8 @@ key("BRAVE_API_KEY", "your-key") # writes to .env, active immediately
400
420
 
401
421
  | Tool | Description |
402
422
  |---|---|
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. |
423
+ | `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. |
424
+ | `shiftback(kill, uninstall)` | Remove shapeshifted tools. `kill=True` terminates the process. `uninstall=True` also removes a locally installed package. |
405
425
  | `search(query, registry)` | Search MCP servers across registries. |
406
426
  | `inspect(server_id)` | Show tools, schemas, and live credential status (✓/✗ per key). |
407
427
  | `call(tool_name, server_id, args)` | Call a tool. `server_id` optional when shapeshifted — current form used. |
@@ -492,6 +512,16 @@ call("brave_web_search", arguments={"query": "MCP protocol 2025"})
492
512
  shiftback()
493
513
  ```
494
514
 
515
+ ### Local install — no API key needed
516
+
517
+ ```
518
+ # Force local install via npx/uvx — no Smithery key required
519
+ shapeshift("brave", source="local", confirm=True)
520
+ # → spawns npx locally, tools appear natively
521
+ call("brave_web_search", arguments={"query": "MCP 2026"})
522
+ shiftback(uninstall=True) # remove tools AND uninstall the package
523
+ ```
524
+
495
525
  ### Persistent server with setup guidance
496
526
 
497
527
  ```
@@ -509,13 +539,17 @@ shiftback(kill=True) # terminates process, frees RAM
509
539
  ## Installation
510
540
 
511
541
  ```bash
512
- pip install kitsune-mcp # from PyPI
542
+ uvx kitsune-mcp # recommended — uv manages the env automatically
543
+ # or
544
+ pip install kitsune-mcp # classic pip
513
545
  # or
514
- git clone https://github.com/kaiser-data/kitsune-mcp && pip install -e .
546
+ npx kitsune-mcp # if you prefer npm (delegates to uvx internally)
515
547
  ```
516
548
 
517
549
  **Requirements:** Python 3.12+ · `node`/`npx` (for npm servers) · `uvx` from [uv](https://github.com/astral-sh/uv) (for pip servers)
518
550
 
551
+ > **Tip:** `uvx kitsune-mcp` is the easiest way — uv installs into an isolated env automatically. No venv setup needed.
552
+
519
553
  ---
520
554
 
521
555
  ## Contributing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitsune-mcp",
3
- "version": "0.8.5",
3
+ "version": "0.10.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": {