@mushi-mushi/mcp 0.21.1 → 0.22.1
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.
- package/README.md +34 -42
- package/dist/branding.d.ts +8 -2
- package/dist/branding.js +1 -1
- package/dist/catalog.d.ts +41 -1
- package/dist/catalog.js +7 -3
- package/dist/{chunk-EANW5YTI.js → chunk-FJRPC4VR.js} +1 -1
- package/dist/{chunk-XSL2FPLV.js → chunk-LFSAKI6Z.js} +12 -15
- package/dist/{chunk-FNDGCFSJ.js → chunk-RPSPV4FC.js} +87 -21
- package/dist/clients.d.ts +1 -1
- package/dist/clients.js +3 -3
- package/dist/feature-groups.d.ts +14 -4
- package/dist/feature-groups.js +1 -1
- package/dist/index.js +3041 -512
- package/dist/server.d.ts +18 -5
- package/dist/server.js +2747 -392
- package/package.json +21 -19
- package/CODE_OF_CONDUCT.md +0 -51
- package/CONTRIBUTING.md +0 -226
- package/SECURITY.md +0 -359
package/README.md
CHANGED
|
@@ -18,20 +18,6 @@ npx mushi-mushi setup --ide cursor
|
|
|
18
18
|
|
|
19
19
|
That command reads CLI config at **`~/.config/mushi/config.json`** (legacy `~/.mushirc` auto-migrates), writes `.cursor/mcp.json` with the `mushi-<slug>` server block, and prints "Done; restart Cursor and ask: `list mushi tools`". No copy-pasting environment variables.
|
|
20
20
|
|
|
21
|
-
### Codebase Understand tools (indexed repos)
|
|
22
|
-
|
|
23
|
-
When codebase indexing is enabled on a project, these MCP tools ground on `project_codebase_files` (+ wiki chunks when configured):
|
|
24
|
-
|
|
25
|
-
| Tool | Scope | Purpose |
|
|
26
|
-
|------|-------|---------|
|
|
27
|
-
| `ask_codebase` | write | Plain-English Q&A with file:line citations |
|
|
28
|
-
| `get_file_summary` | read | Lazy plain-English file/symbol summary |
|
|
29
|
-
| `get_codebase_tour` | read | Dependency-ordered onboarding tour |
|
|
30
|
-
| `search_codebase` | read | Semantic (or scoped) embedding search |
|
|
31
|
-
| `get_codebase_domains` | read | Business domain / flow map |
|
|
32
|
-
| `analyze_codebase_impact` | read | Diff impact (paths, last push, compare, fix PR) |
|
|
33
|
-
| `analyze_wiki_knowledge` | read | Wiki/docs knowledge graph |
|
|
34
|
-
|
|
35
21
|
> **What this is, and what it isn't**
|
|
36
22
|
>
|
|
37
23
|
> - **This package** (`@mushi-mushi/mcp`) is the MCP **server**; runs locally next to your editor, talks to the Mushi API, and presents bug reports as MCP tools/resources to your coding agent. Always install it by its scoped name (`npx -y @mushi-mushi/mcp@latest`); the bare `mushi-mcp` name was never published to npm.
|
|
@@ -142,11 +128,11 @@ The Mushi backend now exposes the same tool catalog over the **Streamable HTTP**
|
|
|
142
128
|
}
|
|
143
129
|
```
|
|
144
130
|
|
|
145
|
-
> **Cursor icon:** HTTP MCP URLs on `*.supabase.co` often show the **Supabase favicon** in Cursor settings; not a Mushi bug. Use **stdio** (`command` + `npx @mushi-mushi/mcp`) for the red 虫 stamp, or set `"icon": "https://kensaur.us/mushi-mushi/integrations/mushi-mark-512.png"` in your server block. The hosted endpoint also emits MCP `serverInfo.icons` and serves inline SVG at `?icon=1`.
|
|
131
|
+
> **Cursor icon:** HTTP MCP URLs on `*.supabase.co` often show the **Supabase favicon** in Cursor settings; not a Mushi bug. Use **stdio** (`command` + `npx @mushi-mushi/mcp`) for the red 虫 stamp, or set `"icon": "https://kensaur.us/mushi-mushi/docs/integrations/mushi-mark-512.png"` in your server block. The hosted endpoint also emits MCP `serverInfo.icons` and serves inline SVG at `?icon=1`.
|
|
146
132
|
|
|
147
133
|
### Feature groups (`?features=` / `MUSHI_FEATURES`)
|
|
148
134
|
|
|
149
|
-
Full catalog is **
|
|
135
|
+
Full catalog is **76 tools** (stdio / `MUSHI_FEATURES=all`). The hosted HTTP
|
|
150
136
|
endpoint exposes a leaner subset filtered by feature groups (see
|
|
151
137
|
`mcp-hosted-tool-manifest.json`). New installs now default to the lean
|
|
152
138
|
`triage,fixes,inventory,setup,docs` set automatically (stdio: when
|
|
@@ -184,7 +170,9 @@ For custom MCP hosts or tests:
|
|
|
184
170
|
|
|
185
171
|
1. **One global MCP config**; keep `mushi` in `~/.cursor/mcp.json` only. Do **not** duplicate `mushi` / `mushi-stdio` in per-project `.cursor/mcp.json` (prevents connection storms). Project repos may ship `{}` or a comment pointing to the global file.
|
|
186
172
|
2. **Windows paths**; use forward slashes in JSON (`C:/Users/...`) or escaped backslashes (`C:\\Users\\...`). Raw `\f`, `\n`, `\t` in paths corrupt JSON.
|
|
187
|
-
3. **Multi-project**; either one HTTP server per project (distinct server name + `X-Mushi-Project-Id`) or one stdio server and pass `
|
|
173
|
+
3. **Multi-project**; either one HTTP server per project (distinct server name + `X-Mushi-Project-Id`) or one stdio server and pass `projectId` on each tool call.
|
|
174
|
+
|
|
175
|
+
Tool parameters are camelCase (`projectId`, `reportId`, `includeRaw`). The snake_case spelling of any of them (`project_id`) is accepted too, on both transports, so older prompts and configs keep working.
|
|
188
176
|
4. **After editing global config**; fully restart Cursor (MCP panel must reload).
|
|
189
177
|
|
|
190
178
|
| Header | Role |
|
|
@@ -214,6 +202,9 @@ The endpoint accepts JSON-RPC 2.0 over POST (returns `application/json` or `text
|
|
|
214
202
|
| `diagnose_setup` | Setup health in one call: `mode=full` (default) runs ingest + dispatch preflight, `mode=ingest` / `mode=dispatch` narrow it. Returns the single best next action. Run first when a user says setup is broken |
|
|
215
203
|
| `check_sdk_version` | Compare a published `@mushi-mushi/*` pin to `GET /v1/sdk/latest-version`. Returns `{ package, current, latest, outdated }` and, when outdated, Sentry-style `suggestedActions` (max 1). Does not bump the pin. |
|
|
216
204
|
| `activation_status` | Unified activation posture for the active project: required steps, SDK heartbeat, dispatch preflight, and the next best action |
|
|
205
|
+
| `query_funnel` | Ordered funnel over `Mushi.track()` events (2–8 steps, per-step window, optional breakdown). Answers "where do users drop off?" from `GET /v1/admin/events/funnel` |
|
|
206
|
+
| `get_product_events_summary` | Event names, counts, distinct users and daily volume for the trailing window — call first to discover event names |
|
|
207
|
+
| `get_user_paths` | Most common events users fired right after a given event ("what did they do next?") from `GET /v1/admin/events/paths` |
|
|
217
208
|
| `get_report_timeline` | Ordered report timeline: the reporter/admin comment thread (including verify/reopen signals) plus fix, QA, and status lanes. Use when triaging whether an end user still sees a bug as unfixed |
|
|
218
209
|
| `list_projects` | Discover all Mushi projects accessible to this API key. Returns project id, name, and created date |
|
|
219
210
|
| `get_project_context` | Rich context snapshot: SDK heartbeat, ingest status, autofix readiness, and open report counts |
|
|
@@ -233,6 +224,20 @@ The endpoint accepts JSON-RPC 2.0 over POST (returns `application/json` or `text
|
|
|
233
224
|
| `transition_status` | Move a report between workflow states (enforces the same rules as the UI) |
|
|
234
225
|
| `run_nl_query` | Natural-language → read-only SQL against your project data (60/hour rate-limited) |
|
|
235
226
|
|
|
227
|
+
### Codebase (indexed repos)
|
|
228
|
+
|
|
229
|
+
When codebase indexing is enabled on a project, these tools ground on `project_codebase_files` (+ wiki chunks when configured):
|
|
230
|
+
|
|
231
|
+
| Tool | Scope | Purpose |
|
|
232
|
+
|------|-------|---------|
|
|
233
|
+
| `ask_codebase` | write | Plain-English Q&A with file:line citations |
|
|
234
|
+
| `get_file_summary` | read | Lazy plain-English file/symbol summary |
|
|
235
|
+
| `get_codebase_tour` | read | Dependency-ordered onboarding tour |
|
|
236
|
+
| `search_codebase` | read | Semantic (or scoped) embedding search |
|
|
237
|
+
| `get_codebase_domains` | read | Business domain / flow map |
|
|
238
|
+
| `analyze_codebase_impact` | read | Diff impact (paths, last push, compare, fix PR) |
|
|
239
|
+
| `analyze_wiki_knowledge` | read | Wiki/docs knowledge graph |
|
|
240
|
+
|
|
236
241
|
> Need a tool that isn't here? Open an issue at [github.com/kensaurus/mushi-mushi/issues](https://github.com/kensaurus/mushi-mushi/issues) and tag it `mcp`.
|
|
237
242
|
|
|
238
243
|
### Tool annotations (what clients see before invoking)
|
|
@@ -255,7 +260,7 @@ The same catalog entries power the `/mcp` beginner console in the admin app; so
|
|
|
255
260
|
## Resources
|
|
256
261
|
|
|
257
262
|
Full list (8). See also the generated catalog at
|
|
258
|
-
[
|
|
263
|
+
[kensaur.us/mushi-mushi/docs/sdks/mcp-tools](https://kensaur.us/mushi-mushi/docs/sdks/mcp-tools).
|
|
259
264
|
|
|
260
265
|
| URI | Returns |
|
|
261
266
|
|---|---|
|
|
@@ -286,6 +291,9 @@ Named templates the MCP client surfaces in its slash-menu. Each one bakes in the
|
|
|
286
291
|
| `MUSHI_API_KEY` | yes | — | Project API key with `mcp:read` or `mcp:write` scope. Mint one in the admin console → **Projects** (the one-time reveal card has a **Copy as `.env.local`** tab). |
|
|
287
292
|
| `MUSHI_PROJECT_ID` | yes | — | UUID from the admin console URL (`/projects/<uuid>/...`) or the reveal card. |
|
|
288
293
|
| `MUSHI_API_ENDPOINT` | no | `https://dxptnwrhwsqckaftyymj.supabase.co/functions/v1/api` | Override only if you self-host. Localhost: `http://localhost:54321/functions/v1/api`. |
|
|
294
|
+
| `MUSHI_MCP_SENTRY_DSN` | no | — | Reports this server's own errors to your Sentry project. Needs `@sentry/node` installed next to the server (an optional peer, not installed by default): `npx -p @sentry/node -p @mushi-mushi/mcp mushi-mcp`. |
|
|
295
|
+
|
|
296
|
+
If a client passes a variable reference through unexpanded (the server receives the literal text `${MUSHI_API_KEY}`), the server treats it as unset: it falls back to the `mushi login` config, or serves setup mode and prints which client syntax to use. Claude Desktop expands no variables; Cursor and VS Code expand `${env:MUSHI_API_KEY}`; Claude Code expands `${MUSHI_API_KEY}`.
|
|
289
297
|
|
|
290
298
|
### Storing the key in `.env.local`
|
|
291
299
|
|
|
@@ -297,7 +305,7 @@ The MCP binary reads these three vars from `process.env` on spawn; that means **
|
|
|
297
305
|
# Mushi MCP; drop into .env.local (gitignored). The MCP binary picks these up on spawn.
|
|
298
306
|
MUSHI_API_ENDPOINT=https://dxptnwrhwsqckaftyymj.supabase.co/functions/v1/api
|
|
299
307
|
MUSHI_PROJECT_ID=<your-uuid>
|
|
300
|
-
MUSHI_API_KEY=
|
|
308
|
+
MUSHI_API_KEY=mushi_…
|
|
301
309
|
```
|
|
302
310
|
|
|
303
311
|
2. Paste it into your repo's `.env.local` (already gitignored by every Vite / Next.js / Node project scaffold). Confirm `.env.local` is in `.gitignore` if you're in an unusual setup.
|
|
@@ -353,7 +361,7 @@ For teams that live in Cursor / Claude Code / Continue / Cline / Zed / Windsurf:
|
|
|
353
361
|
| Shipped | Tools, resources, prompts; tool annotations; progress on `dispatch_fix`; scope-aware errors; stdio + Streamable HTTP; `outputSchema` / `structuredContent` on key tools; inventory action anchors on `dispatch_fix` / `get_fix_context` |
|
|
354
362
|
| Waiting on clients | Resource subscriptions / `list_changed` push; sampling / elicitation |
|
|
355
363
|
|
|
356
|
-
Detail and tool tables: [docs `/sdks/mcp`](https://kensaur.us/mushi-mushi/docs/sdks/mcp) and the generated [MCP tools](https://kensaur.us/mushi-mushi/docs/sdks/mcp-tools
|
|
364
|
+
Detail and tool tables: [docs `/sdks/mcp`](https://kensaur.us/mushi-mushi/docs/sdks/mcp) and the generated [MCP tools reference](https://kensaur.us/mushi-mushi/docs/sdks/mcp-tools) page. Open an issue for a waiting-on-clients row once ≥2 major clients ship support.
|
|
357
365
|
|
|
358
366
|
## Admin console: `/mcp` page
|
|
359
367
|
|
|
@@ -391,7 +399,7 @@ Spawns `dist/index.js` with a dummy unreachable endpoint and confirms it adverti
|
|
|
391
399
|
pnpm --filter @mushi-mushi/mcp build
|
|
392
400
|
pnpm --filter @mushi-mushi/mcp test:smoke
|
|
393
401
|
# OK; prints live tool/resource/prompt counts from the catalog
|
|
394
|
-
# (see packages/mcp/src/catalog.ts — currently
|
|
402
|
+
# (see packages/mcp/src/catalog.ts — currently 76 tools / 8 resources / 4 prompts)
|
|
395
403
|
```
|
|
396
404
|
|
|
397
405
|
### Layer 3; Full localhost E2E (real binary + real backend behaviour)
|
|
@@ -435,7 +443,7 @@ Replace the public endpoint block in your client's MCP config with the three env
|
|
|
435
443
|
"args": ["/absolute/path/to/mushi-mushi/packages/mcp/dist/index.js"],
|
|
436
444
|
"env": {
|
|
437
445
|
"MUSHI_API_ENDPOINT": "http://localhost:54321/functions/v1/api",
|
|
438
|
-
"MUSHI_API_KEY": "
|
|
446
|
+
"MUSHI_API_KEY": "mushi_abc…",
|
|
439
447
|
"MUSHI_PROJECT_ID": "00000000-0000-0000-0000-000000000000"
|
|
440
448
|
}
|
|
441
449
|
}
|
|
@@ -473,32 +481,16 @@ Both are complementary; use Sentry for exception noise, Mushi for "the user says
|
|
|
473
481
|
|
|
474
482
|
## See also
|
|
475
483
|
|
|
476
|
-
- [
|
|
477
|
-
- [
|
|
478
|
-
- [`@mushi-mushi/agents`](
|
|
484
|
+
- [Fix orchestrator](https://kensaur.us/mushi-mushi/docs/concepts/fix-orchestrator); the agentic fix architecture this server feeds into.
|
|
485
|
+
- [MCP tool reference](https://kensaur.us/mushi-mushi/docs/sdks/mcp-tools); every tool's parameters, generated from the catalog.
|
|
486
|
+
- [`@mushi-mushi/agents`](https://www.npmjs.com/package/@mushi-mushi/agents); orchestrator that consumes MCP-exposed fix workers.
|
|
479
487
|
|
|
480
488
|
## License
|
|
481
489
|
|
|
482
490
|
MIT
|
|
483
491
|
|
|
484
|
-
## More from KENSAURUS
|
|
485
|
-
|
|
486
|
-
| | App | What it is |
|
|
487
|
-
|---|---|---|
|
|
488
|
-
| <img src="https://kensaur.us/glot-it/icon-512.png" width="28" height="28" alt=""> | [Glot It](https://kensaur.us/glot-it/?utm_source=github&utm_medium=readme) | Learn Thai — bite-size lessons, smart flashcards, and an AI tutor |
|
|
489
|
-
| <img src="https://kensaur.us/yen-yen/icon.svg" width="28" height="28" alt=""> | [yen-yen](https://kensaur.us/yen-yen/?utm_source=github&utm_medium=readme) | Where did the money go? Now you'll know. A kakeibo for households |
|
|
490
|
-
| <img src="https://kensaur.us/the-wanting-mind/pwa-512x512.png" width="28" height="28" alt=""> | [The Wanting Mind](https://kensaur.us/the-wanting-mind/?utm_source=github&utm_medium=readme) | How the Battle Between Extraction and Generation Is Reshaping Our World — a 147,000-word interactive webbook with 268 concepts, 242 citations, and original illustrations |
|
|
491
|
-
| <img src="https://kensaur.us/help-her-take-photo/assets/apple-touch-icon.png" width="28" height="28" alt=""> | [Help Her Take Photo](https://kensaur.us/help-her-take-photo/?utm_source=github&utm_medium=readme) | Pair phones, direct the pose, nail the photo |
|
|
492
|
-
| <img src="https://talk.kensaur.us/pwa-192.png" width="28" height="28" alt=""> | [Cooler Heads](https://talk.kensaur.us/?utm_source=github&utm_medium=readme) | Practice hard conversations before you have them |
|
|
493
|
-
| <img src="https://solo-boss.kensaur.us/apple-touch-icon.png" width="28" height="28" alt=""> | [一人社長 Solo Boss](https://solo-boss.kensaur.us/?utm_source=github&utm_medium=readme) | Bookkeeping and tax-filing co-pilot for one-person companies in Japan |
|
|
494
|
-
| <img src="https://tsumagoi.kensaur.us/apple-touch-icon.png" width="28" height="28" alt=""> | [Tsumagoi Work&Camp 嬬恋牧場](https://tsumagoi.kensaur.us/?utm_source=github&utm_medium=readme) | Coworking camp at 1,444 m — [Instagram](https://www.instagram.com/tsumagoicamp/) · [Facebook](https://www.facebook.com/profile.php?id=61592113053042) · [Maps](https://maps.app.goo.gl/JCNnTfsdQVHCS1FA7) |
|
|
495
|
-
| <img src="https://github.com/kensaurus.png" width="28" height="28" alt=""> | [cursor-kenji](https://github.com/kensaurus/cursor-kenji) | Ready-made playbooks for your AI coding editor |
|
|
496
|
-
| <img src="https://kensaur.us/favicon.svg" width="28" height="28" alt=""> | [KENSAURUS](https://kensaur.us/?view=portfolio&utm_source=github&utm_medium=readme) | Everything else built under the same roof |
|
|
497
|
-
|
|
498
|
-
All apps live under [kensaur.us](https://kensaur.us).
|
|
499
|
-
|
|
500
492
|
|
|
501
493
|
<!-- mushi-readme-stats-footer -->
|
|
502
494
|
---
|
|
503
495
|
|
|
504
|
-
<sub>Monorepo scale (July 2026):
|
|
496
|
+
<sub>Monorepo scale (July 2026): 59 edge functions · 376 SQL migrations · 13 outbound plugins · 11 inbound adapters · 19 pipeline agents. Canonical counts: <a href="https://github.com/kensaurus/mushi-mushi/blob/master/docs/stats.md">docs/stats.md</a> · <code>pnpm docs-stats</code></sub>
|
package/dist/branding.d.ts
CHANGED
|
@@ -7,8 +7,14 @@
|
|
|
7
7
|
*/
|
|
8
8
|
/** Public marketing site — also hosts favicon.svg for the docs app. */
|
|
9
9
|
declare const MUSHI_WEBSITE_URL = "https://kensaur.us/mushi-mushi";
|
|
10
|
-
/**
|
|
11
|
-
|
|
10
|
+
/**
|
|
11
|
+
* 512×512 stamp mark — safe PNG on CDN (Cursor requires png/jpeg reliably).
|
|
12
|
+
* Served from the docs app's `public/integrations/`, which CloudFront exposes
|
|
13
|
+
* under `/mushi-mushi/docs/`; the site root serves only the favicon, so the
|
|
14
|
+
* `/mushi-mushi/integrations/...` form this used until 2026-09-22 was a 404 —
|
|
15
|
+
* which is what every MCP client asking for our icon received.
|
|
16
|
+
*/
|
|
17
|
+
declare const MUSHI_ICON_PNG_URL = "https://kensaur.us/mushi-mushi/docs/integrations/mushi-mark-512.png";
|
|
12
18
|
/** SVG favicon from the docs app (scalable; some clients sanitize SVG). */
|
|
13
19
|
declare const MUSHI_ICON_SVG_URL = "https://kensaur.us/mushi-mushi/favicon.svg";
|
|
14
20
|
/** Hosted MCP icon route — same origin as the MCP endpoint when proxied. */
|
package/dist/branding.js
CHANGED
package/dist/catalog.d.ts
CHANGED
|
@@ -41,6 +41,16 @@ interface ToolSpec {
|
|
|
41
41
|
scope: McpScope;
|
|
42
42
|
/** MCP annotation hints. */
|
|
43
43
|
hints: ToolHints;
|
|
44
|
+
/**
|
|
45
|
+
* The result carries text neither Mushi nor the operator wrote: reporter
|
|
46
|
+
* descriptions, console logs, comments, timeline bodies, SDK event names, or
|
|
47
|
+
* LLM output derived from them. Reports arrive from a public widget, so both
|
|
48
|
+
* transports wrap these results in data delimiters (wrap-untrusted) before an
|
|
49
|
+
* agent that also holds write tools reads them. The stdio server applies it
|
|
50
|
+
* centrally from this flag; the hosted server's UNTRUSTED_TOOLS set is held
|
|
51
|
+
* to it by scripts/check-catalog-sync.mjs.
|
|
52
|
+
*/
|
|
53
|
+
returnsUntrusted?: true;
|
|
44
54
|
/**
|
|
45
55
|
* One-liner that tells a human "what problem does calling this tool solve?".
|
|
46
56
|
* Shown on the admin /mcp catalog cards — should be end-user-shaped, not
|
|
@@ -74,6 +84,36 @@ interface UseMushiIntent {
|
|
|
74
84
|
hint: string;
|
|
75
85
|
}
|
|
76
86
|
declare const USE_MUSHI_INTENTS: Record<string, UseMushiIntent>;
|
|
87
|
+
/** What use_mushi recommends for one intent on one connection. */
|
|
88
|
+
interface UseMushiRoute {
|
|
89
|
+
/** Matched USE_MUSHI_INTENTS key (`status` when nothing matched). */
|
|
90
|
+
key: string;
|
|
91
|
+
label: string;
|
|
92
|
+
/** The intent's tools this connection exposes, in recommendation order. */
|
|
93
|
+
tools: string[];
|
|
94
|
+
/** The intent's tools the active feature groups or key scope hide. */
|
|
95
|
+
hidden: string[];
|
|
96
|
+
/** First tool to call — always one of `tools`, or null when none is exposed. */
|
|
97
|
+
firstTool: string | null;
|
|
98
|
+
/** Orientation sentence; never names a tool the connection does not expose. */
|
|
99
|
+
hint: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Route a use_mushi intent against the tools a connection actually exposes.
|
|
103
|
+
* With feature filtering on, the static intent table named tools the lean
|
|
104
|
+
* default does not register (start_skill_pipeline, get_account_overview, …),
|
|
105
|
+
* which is the phantom-tool failure the 2026-08-16 audit fixed, reintroduced.
|
|
106
|
+
*/
|
|
107
|
+
declare function routeUseMushiIntent(intent: string, isAvailable: (tool: string) => boolean): UseMushiRoute;
|
|
108
|
+
/**
|
|
109
|
+
* Server instructions returned in `initialize` by both transports. Clients
|
|
110
|
+
* that defer tool loading (Claude Code tool search) show the model only this
|
|
111
|
+
* and the bare tool names at session start, so it says what Mushi is, where
|
|
112
|
+
* to start, and which calls need the user's say-so. The hosted server keeps a
|
|
113
|
+
* copy (functions/mcp/index.ts SERVER_INSTRUCTIONS) that
|
|
114
|
+
* packages/mcp/scripts/check-catalog-sync.mjs holds equal to this one.
|
|
115
|
+
*/
|
|
116
|
+
declare const MUSHI_SERVER_INSTRUCTIONS: string;
|
|
77
117
|
declare const CODEBASE_TOOL_CATALOG: ToolSpec[];
|
|
78
118
|
|
|
79
|
-
export { ALL_SCOPES, CODEBASE_TOOL_CATALOG, type McpScope, PROMPT_CATALOG, type PromptSpec, RESOURCE_CATALOG, type ResourceSpec, TDD_TOOL_CATALOG, TOOL_CATALOG, type ToolHints, type ToolSpec, USE_MUSHI_INTENTS, type UseMushiIntent };
|
|
119
|
+
export { ALL_SCOPES, CODEBASE_TOOL_CATALOG, MUSHI_SERVER_INSTRUCTIONS, type McpScope, PROMPT_CATALOG, type PromptSpec, RESOURCE_CATALOG, type ResourceSpec, TDD_TOOL_CATALOG, TOOL_CATALOG, type ToolHints, type ToolSpec, USE_MUSHI_INTENTS, type UseMushiIntent, type UseMushiRoute, routeUseMushiIntent };
|
package/dist/catalog.js
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ALL_SCOPES,
|
|
3
3
|
CODEBASE_TOOL_CATALOG,
|
|
4
|
+
MUSHI_SERVER_INSTRUCTIONS,
|
|
4
5
|
PROMPT_CATALOG,
|
|
5
6
|
RESOURCE_CATALOG,
|
|
6
7
|
TDD_TOOL_CATALOG,
|
|
7
8
|
TOOL_CATALOG,
|
|
8
|
-
USE_MUSHI_INTENTS
|
|
9
|
-
|
|
9
|
+
USE_MUSHI_INTENTS,
|
|
10
|
+
routeUseMushiIntent
|
|
11
|
+
} from "./chunk-RPSPV4FC.js";
|
|
10
12
|
export {
|
|
11
13
|
ALL_SCOPES,
|
|
12
14
|
CODEBASE_TOOL_CATALOG,
|
|
15
|
+
MUSHI_SERVER_INSTRUCTIONS,
|
|
13
16
|
PROMPT_CATALOG,
|
|
14
17
|
RESOURCE_CATALOG,
|
|
15
18
|
TDD_TOOL_CATALOG,
|
|
16
19
|
TOOL_CATALOG,
|
|
17
|
-
USE_MUSHI_INTENTS
|
|
20
|
+
USE_MUSHI_INTENTS,
|
|
21
|
+
routeUseMushiIntent
|
|
18
22
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/branding.ts
|
|
2
2
|
var MUSHI_WEBSITE_URL = "https://kensaur.us/mushi-mushi";
|
|
3
|
-
var MUSHI_ICON_PNG_URL = `${MUSHI_WEBSITE_URL}/integrations/mushi-mark-512.png`;
|
|
3
|
+
var MUSHI_ICON_PNG_URL = `${MUSHI_WEBSITE_URL}/docs/integrations/mushi-mark-512.png`;
|
|
4
4
|
var MUSHI_ICON_SVG_URL = `${MUSHI_WEBSITE_URL}/favicon.svg`;
|
|
5
5
|
function mcpIconUrl(mcpBaseUrl) {
|
|
6
6
|
let end = mcpBaseUrl.length;
|
|
@@ -27,6 +27,7 @@ var ALL_FEATURE_GROUPS = FEATURE_GROUPS.filter(
|
|
|
27
27
|
);
|
|
28
28
|
var TOOL_FEATURE_MAP = {
|
|
29
29
|
// triage
|
|
30
|
+
triage_next_steps: "triage",
|
|
30
31
|
get_recent_reports: "triage",
|
|
31
32
|
get_report_detail: "triage",
|
|
32
33
|
get_report_timeline: "triage",
|
|
@@ -48,13 +49,10 @@ var TOOL_FEATURE_MAP = {
|
|
|
48
49
|
get_inventory: "inventory",
|
|
49
50
|
diff_inventory: "inventory",
|
|
50
51
|
list_gate_findings: "inventory",
|
|
51
|
-
inventory_current: "admin",
|
|
52
52
|
// setup
|
|
53
53
|
diagnose_setup: "setup",
|
|
54
54
|
check_sdk_version: "setup",
|
|
55
55
|
activation_status: "setup",
|
|
56
|
-
project_integration_health: "setup",
|
|
57
|
-
setup_repo_for_mushi: "setup",
|
|
58
56
|
get_two_way_comms_health: "setup",
|
|
59
57
|
// fixes
|
|
60
58
|
submit_fix_result: "fixes",
|
|
@@ -75,13 +73,11 @@ var TOOL_FEATURE_MAP = {
|
|
|
75
73
|
get_account_overview: "admin",
|
|
76
74
|
get_project_context: "admin",
|
|
77
75
|
get_pipeline_logs: "admin",
|
|
78
|
-
|
|
79
|
-
project_stats: "admin",
|
|
80
|
-
project_settings: "admin",
|
|
81
|
-
privacy_status: "admin",
|
|
82
|
-
evolution_history: "admin",
|
|
83
|
-
// usage / billing
|
|
76
|
+
// usage / billing / product analytics (Mushi.track() funnels)
|
|
84
77
|
get_usage: "usage",
|
|
78
|
+
query_funnel: "usage",
|
|
79
|
+
get_product_events_summary: "usage",
|
|
80
|
+
get_user_paths: "usage",
|
|
85
81
|
// qa / tdd
|
|
86
82
|
map_user_stories: "qa",
|
|
87
83
|
get_map_run_status: "qa",
|
|
@@ -114,8 +110,10 @@ var TOOL_FEATURE_MAP = {
|
|
|
114
110
|
get_codebase_domains: "codebase",
|
|
115
111
|
analyze_codebase_impact: "codebase",
|
|
116
112
|
analyze_wiki_knowledge: "codebase",
|
|
117
|
-
// docs
|
|
118
|
-
search_mushi_docs: "docs"
|
|
113
|
+
// docs / orientation
|
|
114
|
+
search_mushi_docs: "docs",
|
|
115
|
+
get_mushi_doc: "docs",
|
|
116
|
+
use_mushi: "docs"
|
|
119
117
|
};
|
|
120
118
|
var DEPRECATED_TOOL_ALIASES = {
|
|
121
119
|
// Removed deprecated tools → successor.
|
|
@@ -152,12 +150,11 @@ function parseFeaturesCsv(raw) {
|
|
|
152
150
|
}
|
|
153
151
|
function toolMatchesFeatures(toolName, filter) {
|
|
154
152
|
if (filter === "all") return true;
|
|
155
|
-
|
|
156
|
-
if (!group) return true;
|
|
157
|
-
if (group === "legacy") {
|
|
153
|
+
if (Object.prototype.hasOwnProperty.call(DEPRECATED_TOOL_ALIASES, toolName)) {
|
|
158
154
|
return filter.includes("legacy");
|
|
159
155
|
}
|
|
160
|
-
|
|
156
|
+
const group = TOOL_FEATURE_MAP[toolName];
|
|
157
|
+
return group !== void 0 && filter.includes(group);
|
|
161
158
|
}
|
|
162
159
|
function featuresQueryString(groups) {
|
|
163
160
|
return groups.join(",");
|