Edit, reload , call again in the same session

Kitsune MCP

by kaiser-data · MIT license · ★ 3 on GitHub · updated Nov 8

Kitsune MCP cover

Hot-reload for MCP servers: edit, reload(), call again in the same session. Plus mount any of 130k+ community servers mid-session, Docker-caged.

<!-- mcp-name: io.github.kaiser-data/kitsune-mcp -->
<div align="center">
  <img src="https://raw.githubusercontent.com/kaiser-data/kitsune-mcp/main/docs/assets/kitsune-logo-reveal.gif" alt="The Kitsune MCP logo builds itself: a fox head appears, seven tool tails fan out one by one, and the fox's eyes light up" width="280" />
  <h1>🦊 Kitsune MCP</h1>
  <p><strong>Let your agent test the MCP server it's building.</strong><br/>
  Edit a tool, <code>reload("dev")</code>, call it again. No client restart.</p>
  <p>⭐ Saved you a restart? <a href="https://github.com/kaiser-data/kitsune-mcp"><strong>Star it on GitHub</strong></a> so others find it.</p>
  <p>📖 <a href="https://kaiser-data.github.io/kitsune-mcp/"><strong>Documentation</strong></a> · <a href="https://kaiser-data.github.io/kitsune-mcp/hot-reload/">Hot-reload tutorial</a> · <a href="https://kaiser-data.github.io/kitsune-mcp/tools/">Tools reference</a></p>
</div>

> **AI agents installing this server** (Cline, Claude Code, Cursor, …): follow [llms-install.md](llms-install.md). No clone or build needed. Add the `uvx kitsune-mcp` entry to your MCP settings.

[![GitHub stars](https://img.shields.io/github/stars/kaiser-data/kitsune-mcp?style=social)](https://github.com/kaiser-data/kitsune-mcp)
[![PyPI](https://img.shields.io/pypi/v/kitsune-mcp?color=blue&label=pypi)](https://pypi.org/project/kitsune-mcp/)
[![npm](https://img.shields.io/npm/v/kitsune-mcp?color=cb3837&label=npm&logo=npm)](https://www.npmjs.com/package/kitsune-mcp)
[![PyPI downloads](https://static.pepy.tech/badge/kitsune-mcp)](https://pepy.tech/projects/kitsune-mcp)
[![PyPI monthly](https://img.shields.io/pypi/dm/kitsune-mcp?label=pypi%20downloads)](https://pypistats.org/packages/kitsune-mcp)
[![npm monthly](https://img.shields.io/npm/dm/kitsune-mcp?label=npm%20downloads&color=cb3837)](https://www.npmjs.com/package/kitsune-mcp)

Overview

[](https://github.com/kaiser-data/kitsune-mcp) [](https://pypi.org/project/kitsune-mcp/) [](https://www.npmjs.com/package/kitsune-mcp) [](https://pepy.tech/projects/kitsune-mcp) [](https://pypistats.org/packages/kitsune-mcp) [](https://www.npmjs.com/package/kitsune-mcp) [](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.kaiser-data%2Fkitsune-mcp) [](https://pypi.org/project/kitsune-mcp/) [](https://github.com/kaiser-data/kitsune-mcp/actions) [](https://codecov.io/gh/kaiser-data/kitsune-mcp) [](https://scorecard.dev/viewer/?uri=github.com/kaiser-data/kitsune-mcp) [](LICENSE) [](https://glama.ai/mcp/servers/kaiser-data/kitsune-mcp)…

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • README.md11.4 KB
Read README.md here
kaiser-data/main1 file
README.md
Show the full text193 lines
The Kitsune MCP logo builds itself: a fox head appears, seven tool tails fan out one by one, and the fox's eyes light up

🦊 Kitsune MCP

Let your agent test the MCP server it's building.
Edit a tool, reload("dev"), call it again. No client restart.

⭐ Saved you a restart? Star it on GitHub so others find it.

📖 Documentation · Hot-reload tutorial · Tools reference

AI agents installing this server (Cline, Claude Code, Cursor, …): follow llms-install.md. No clone or build needed. Add the uvx kitsune-mcp entry to your MCP settings.

GitHub stars PyPI npm PyPI downloads PyPI monthly npm monthly MCP Registry Python CI Coverage OpenSSF Scorecard License: MIT Glama Listed in Awesome MCP Servers

Claude Code connects a weather MCP server through Kitsune, gets 59°C for Berlin, fixes the Fahrenheit conversion, calls reload(&quot;dev&quot;) and gets 15°C in the same session
One prompt: Claude finds the bug, fixes it, reloads, checks again. Real recording, 31 s.


Why

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("uv run 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

No Docker needed: connect() runs your own server as a plain local process, so the loop stays fast.

It also mounts any of 130,000+ servers from 7 registries mid-session. If Docker is installed, community packages run caged.

Try it: hot-reload tutorial · examples/demo-hot-reload/

Install

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: not used for hot-reload, only to cage community servers when installed.

Three things it does

Loop What you get
MCP REPL connect → shapeshift → edit → reload → call Iterate on your own server without restarting the client
Long-tail reach search → shapeshift → call → shapeshift() Use a server once without adding it to your config forever
Try before you trust confirm=True + Docker cage + version pins Run community npm/PyPI code contained, not as your user
Borrow a server you never configured
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
Try a community package, caged
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()
Add credentials mid-session
auth("BRAVE_API_KEY", "sk-...")  # saved to ~/.kitsune/.env, no restart
shapeshift("brave", tools=["brave_web_search"])

Full live walkthrough: docs/demo-realtime.md.

When to use it, when not to

Use Kitsune when… Skip it when…
You're building an MCP server and want an edit/reload loop You only use 1–3 trusted servers (configure them natively)
A task needs a server that isn't in your config Every turn hits the same server (keep it always-on)
You want to evaluate community MCP code without installing it for good You want lower token use: modern clients already defer tool schemas, so most configured servers cost little up front
Your MCP config is crowded (GATEWAY) You need a sub-second first call (cold mount takes ~1–15 s)

How it works

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.

Kitsune MCP architecture

search() covers the official servers repo, the MCP Registry, Glama, npm, PyPI, GitHub (github:owner/repo) and Smithery (hosted servers, free API key).

Tools

Default profile: 9 tools. Standing cost: ~1,774 tokens/turn on clients that load every tool schema up front (measured with python examples/benchmark.py); ~70 tokens/turn on Claude Code with Tool Search, where schemas load only on first use (measured on Claude Code 2.1.319, 2026-11-06).

Tool Role
connect(command, name) Start a persistent local server, e.g. the one you're developing
reload(name) Release, restart on fresh code, remount, in one call
release(name) Stop a persistent server
search(query, registry?) Search 7 registries
shapeshift(server_id?, tools=[…]) Mount a server's tools (all or a subset); no argument drops them
call(tool_name, arguments) Call a tool; the server is inferred when mounted
auth(var_or_server, value?) Set an env key or run an OAuth 2.1 browser flow
auto(task, server_hint=) Search, mount and call in one step
status() Current form, connection pool, session stats

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.

Safety, in short

  • Community sources need consent. npm, PyPI and GitHub servers require 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.
  • Community packages run in a Docker cage by default when Docker is installed: no host filesystem, --cap-drop ALL, read-only root, memory and PID limits. Credentials are passed by name, never in argv.
  • Version pins (TOFU). A later malicious publish doesn't silently replace a version you already ran.
  • Opt-in action guard. A ~/.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.
  • Install commands are validated and launched without a shell. 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.

More

Why "Kitsune"?

In 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.

Contributing

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

1<!-- mcp-name: io.github.kaiser-data/kitsune-mcp -->
2<div align="center">
3 <img src="https://raw.githubusercontent.com/kaiser-data/kitsune-mcp/main/docs/assets/kitsune-logo-reveal.gif" alt="The Kitsune MCP logo builds itself: a fox head appears, seven tool tails fan out one by one, and the fox's eyes light up" width="280" />
4 <h1>🦊 Kitsune MCP</h1>
5 <p><strong>Let your agent test the MCP server it's building.</strong><br/>
6 Edit a tool, <code>reload("dev")</code>, call it again. No client restart.</p>
7 <p>⭐ Saved you a restart? <a href="https://github.com/kaiser-data/kitsune-mcp"><strong>Star it on GitHub</strong></a> so others find it.</p>
8 <p>📖 <a href="https://kaiser-data.github.io/kitsune-mcp/"><strong>Documentation</strong></a> · <a href="https://kaiser-data.github.io/kitsune-mcp/hot-reload/">Hot-reload tutorial</a> · <a href="https://kaiser-data.github.io/kitsune-mcp/tools/">Tools reference</a></p>
9</div>
10 
11> **AI agents installing this server** (Cline, Claude Code, Cursor, …): follow [llms-install.md](llms-install.md). No clone or build needed. Add the `uvx kitsune-mcp` entry to your MCP settings.
12 
13[![GitHub stars](https://img.shields.io/github/stars/kaiser-data/kitsune-mcp?style=social)](https://github.com/kaiser-data/kitsune-mcp)
14[![PyPI](https://img.shields.io/pypi/v/kitsune-mcp?color=blue&label=pypi)](https://pypi.org/project/kitsune-mcp/)
15[![npm](https://img.shields.io/npm/v/kitsune-mcp?color=cb3837&label=npm&logo=npm)](https://www.npmjs.com/package/kitsune-mcp)
16[![PyPI downloads](https://static.pepy.tech/badge/kitsune-mcp)](https://pepy.tech/projects/kitsune-mcp)
17[![PyPI monthly](https://img.shields.io/pypi/dm/kitsune-mcp?label=pypi%20downloads)](https://pypistats.org/packages/kitsune-mcp)
18[![npm monthly](https://img.shields.io/npm/dm/kitsune-mcp?label=npm%20downloads&color=cb3837)](https://www.npmjs.com/package/kitsune-mcp)
19[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-listed-8a2be2)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.kaiser-data%2Fkitsune-mcp)
20[![Python](https://img.shields.io/pypi/pyversions/kitsune-mcp)](https://pypi.org/project/kitsune-mcp/)
21[![CI](https://github.com/kaiser-data/kitsune-mcp/actions/workflows/test.yml/badge.svg)](https://github.com/kaiser-data/kitsune-mcp/actions)
22[![Coverage](https://codecov.io/gh/kaiser-data/kitsune-mcp/branch/main/graph/badge.svg)](https://codecov.io/gh/kaiser-data/kitsune-mcp)
23[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/kaiser-data/kitsune-mcp/badge)](https://scorecard.dev/viewer/?uri=github.com/kaiser-data/kitsune-mcp)
24[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
25[![Glama](https://glama.ai/mcp/servers/kaiser-data/kitsune-mcp/badges/score.svg)](https://glama.ai/mcp/servers/kaiser-data/kitsune-mcp)
26[![Listed in Awesome MCP Servers](https://img.shields.io/badge/Awesome%20MCP%20Servers-listed-fc60a8?logo=awesomelists&logoColor=white)](https://github.com/punkpeye/awesome-mcp-servers#aggregators)
27 
28<p align="center">
29 <img src="https://raw.githubusercontent.com/kaiser-data/kitsune-mcp/main/docs/demo-hot-reload.gif" alt="Claude Code connects a weather MCP server through Kitsune, gets 59°C for Berlin, fixes the Fahrenheit conversion, calls reload(&quot;dev&quot;) and gets 15°C in the same session" width="800" />
30 <br/><sub>One prompt: Claude finds the bug, fixes it, reloads, checks again. Real recording, 31 s.</sub>
31</p>
32 
33---
34 
35## Why
36 
37Your 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.
38 
39With Kitsune, `connect`, `call` and `reload` are tools. The agent runs the whole loop itself:
40 
41```python
42connect("uv run my-mcp-server", name="dev") # start your server
43shapeshift("dev") # its tools appear in the client
44call("summarize", arguments={"url": "https://example.com"})
45 
46# … the agent (or you) edits the tool …
47 
48reload("dev") # restart on fresh code, remount
49call("summarize", arguments={"url": "https://example.com"}) # new code, same session
50```
51 
52No Docker needed: `connect()` runs your own server as a plain local process, so the loop stays fast.
53 
54It also mounts any of 130,000+ servers from 7 registries mid-session. If Docker is installed, community packages run caged.
55 
56Try it: [hot-reload tutorial](https://kaiser-data.github.io/kitsune-mcp/hot-reload/) · [`examples/demo-hot-reload/`](examples/demo-hot-reload/)
57 
58## Install
59 
60**Claude Code**
61 
62```bash
63claude mcp add -s user kitsune -- uvx kitsune-mcp
64```
65 
66**Any other client** (Claude Desktop, Cursor, Windsurf, Cline, Zed, …):
67 
68```json
69{
70 "mcpServers": {
71 "kitsune": { "command": "uvx", "args": ["kitsune-mcp"] }
72 }
73}
74```
75 
76Also on PyPI (`pip install kitsune-mcp`, then `"command": "kitsune-mcp"`) and npm (`npx kitsune-mcp`, delegates to `uvx`).
77 
78**Requirements:** Python 3.12+ · [uv](https://github.com/astral-sh/uv) · `node`/`npx` for npm-based servers · Docker optional: not used for hot-reload, only to cage community servers when installed.
79 
80## Three things it does
81 
82| | Loop | What you get |
83|---|---|---|
84| **MCP REPL** | `connect` → `shapeshift` → edit → `reload` → `call` | Iterate on your own server without restarting the client |
85| **Long-tail reach** | `search` → `shapeshift` → `call` → `shapeshift()` | Use a server once without adding it to your config forever |
86| **Try before you trust** | `confirm=True` + Docker cage + version pins | Run community npm/PyPI code contained, not as your user |
87 
88### Borrow a server you never configured
89 
90```python
91search("web scraping")
92shapeshift("firecrawl", tools=["scrape_url"]) # mount one tool, not the whole server
93call("scrape_url", arguments={"url": "https://example.com"})
94shapeshift() # drop it, session stays up
95```
96 
97### Try a community package, caged
98 
99```python
100search("pdf", registry="glama")
101shapeshift("mcp-pdf-tools", confirm=True) # npm/PyPI run in hardened Docker when available
102call("extract_text", arguments={"path": "report.pdf"})
103shapeshift()
104```
105 
106### Add credentials mid-session
107 
108```python
109auth("BRAVE_API_KEY", "sk-...") # saved to ~/.kitsune/.env, no restart
110shapeshift("brave", tools=["brave_web_search"])
111```
112 
113Full live walkthrough: [`docs/demo-realtime.md`](docs/demo-realtime.md).
114 
115## When to use it, when not to
116 
117| Use Kitsune when… | Skip it when… |
118|---|---|
119| You're building an MCP server and want an edit/reload loop | You only use 1–3 trusted servers (configure them natively) |
120| A task needs a server that isn't in your config | Every turn hits the same server (keep it always-on) |
121| You want to evaluate community MCP code without installing it for good | You want lower token use: modern clients already defer tool schemas, so most configured servers cost little up front |
122| Your MCP config is crowded ([GATEWAY](docs/configuration.md#gateway-consolidate-always-on-servers)) | You need a sub-second first call (cold mount takes ~1–15 s) |
123 
124## How it works
125 
126`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.
127 
128<div align="center">
129 <picture>
130 <source media="(prefers-color-scheme: dark)"
131 srcset="https://raw.githubusercontent.com/kaiser-data/kitsune-mcp/main/docs/architecture-dark.svg"/>
132 <img src="https://raw.githubusercontent.com/kaiser-data/kitsune-mcp/main/docs/architecture-light.svg"
133 alt="Kitsune MCP architecture" width="700"/>
134 </picture>
135</div>
136 
137`search()` covers the [official servers repo](https://github.com/modelcontextprotocol/servers), the [MCP Registry](https://registry.modelcontextprotocol.io), [Glama](https://glama.ai/mcp/servers), npm, PyPI, GitHub (`github:owner/repo`) and [Smithery](https://smithery.ai) (hosted servers, free API key).
138 
139## Tools
140 
141Default profile: **9 tools**. Standing cost: **~1,774 tokens/turn** on clients that load every tool schema up front (measured with `python examples/benchmark.py`); **~70 tokens/turn** on Claude Code with Tool Search, where schemas load only on first use (measured on Claude Code 2.1.319, 2026-11-06).
142 
143| Tool | Role |
144|---|---|
145| `connect(command, name)` | Start a persistent local server, e.g. the one you're developing |
146| `reload(name)` | Release, restart on fresh code, remount, in one call |
147| `release(name)` | Stop a persistent server |
148| `search(query, registry?)` | Search 7 registries |
149| `shapeshift(server_id?, tools=[…])` | Mount a server's tools (all or a subset); no argument drops them |
150| `call(tool_name, arguments)` | Call a tool; the server is inferred when mounted |
151| `auth(var_or_server, value?)` | Set an env key or run an OAuth 2.1 browser flow |
152| `auto(task, server_hint=)` | Search, mount and call in one step |
153| `status()` | Current form, connection pool, session stats |
154 
155`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`](docs/tools.md). Companion skills for Claude Code: `kitsune-dev`, `kitsune-improve`.
156 
157## Safety, in short
158 
159- **Community sources need consent.** npm, PyPI and GitHub servers require `confirm=True`. The model can set that flag itself, so real approval belongs in your client's tool-approval UI.
160- **`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.
161- **Community packages run in a Docker cage by default** when Docker is installed: no host filesystem, `--cap-drop ALL`, read-only root, memory and PID limits. Credentials are passed by name, never in argv.
162- **Version pins (TOFU).** A later malicious publish doesn't silently replace a version you already ran.
163- **Opt-in action guard.** A `~/.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.
164- Install commands are validated and launched without a shell. `fetch()` blocks private hosts and re-checks every redirect.
165 
166Don't run it unattended with production admin, billing or security credentials. The full model, including what it does **not** protect against: [`docs/safety.md`](docs/safety.md).
167 
168## More
169 
170- [Configuration](docs/configuration.md): env and `.env` lookup, tool profiles, sandbox and trust settings, Smithery, GATEWAY, mount patterns
171- [Performance](docs/performance.md): cold/warm latency and token cost compared with always-on servers
172- [Transports](docs/transports.md) · [Compatibility](docs/compatibility.md) · [Agent patterns](docs/agent-patterns.md) · [Worked scenarios](examples/scenarios/)
173 
174## Why "Kitsune"?
175 
176In 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.
177 
178> *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.*
179 
180## Contributing
181 
182```bash
183make dev # install with dev dependencies
184make test # pytest
185make lint # ruff
186```
187 
188Issues and PRs welcome: [github.com/kaiser-data/kitsune-mcp](https://github.com/kaiser-data/kitsune-mcp) · [CHANGELOG.md](CHANGELOG.md)
189 
190---
191 
192*MIT License · Python 3.12+ · Built on [FastMCP](https://github.com/jlowin/fastmcp)*
193 
View all files on GitHub →

Details

Updated
Nov 8, 2026
License
MIT
Stars on the repo
★ 3
Checked
Source
kaiser-data/kitsune-mcp ↗
Creator
kaiser-data · 1 listing
View creator

Similar MCP servers

See all →
SkillTests in real browsers via Chrome DevTools MCPBrowser testing with devtoolsaddyosmani/agent-skills · by addyosmaniTests in real browsers via Chrome DevTools MCP. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM, capture console errors, analyze network requests, profile performance, or verify visual output with real runtime data. Requires the chrome-devtools MCP server to be configured.★ 98.7k GitHub starsAgentThis MCP server attempts to exercise all the featuresEverything MCP Servermodelcontextprotocol/servers · by modelcontextprotocolThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test…★ 90.5k GitHub starsAgentA Model Context Protocol server that provides web contentFetch MCP Servermodelcontextprotocol/servers · by modelcontextprotocolA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content…★ 90.5k GitHub starsAgentNode.js server implementing Model Context ProtocolFilesystem MCP Servermodelcontextprotocol/servers · by modelcontextprotocolNode.js server implementing Model Context Protocol (MCP) for filesystem operations.★ 90.5k GitHub starsSkillAbout libraries, frameworks, API referencesContext7 MCPupstash/context7 · by upstashThis skill should be used when the user asks about libraries, frameworks, API references, or needs code examples. Activates for setup questions, code generation involving libraries, or mentions of specific frameworks like React, Vue, Next.js, Prisma, Supabase, etc.★ 62.3k GitHub starsSkillUses Chrome DevTools via MCP for efficient debuggingChromeDevTools/chrome-devtools-mcp · by ChromeDevToolsUses Chrome DevTools via MCP for efficient debugging, troubleshooting and browser automation. Use when debugging web pages, automating browser interactions, analyzing performance, or inspecting network requests. This skill does not apply to `--slim` mode (MCP configuration).★ 52.4k GitHub stars