@mushi-mushi/mcp 0.29.0 → 0.29.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 CHANGED
@@ -29,7 +29,7 @@ Restart the editor and ask *"what's broken in prod?"*. For Cursor and Claude, `s
29
29
  "mcpServers": {
30
30
  "mushi-mushi": {
31
31
  "command": "npx",
32
- "args": ["-y", "@mushi-mushi/mcp@0.29.0"],
32
+ "args": ["-y", "@mushi-mushi/mcp@0.29.1"],
33
33
  "env": {
34
34
  "MUSHI_API_KEY": "mushi_xxxxxxxxxxxxxxxxxxxx",
35
35
  "MUSHI_PROJECT_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
package/dist/catalog.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  TOOL_CATALOG,
9
9
  USE_MUSHI_INTENTS,
10
10
  routeUseMushiIntent
11
- } from "./chunk-MOW6PVHK.js";
11
+ } from "./chunk-6SHKBN6R.js";
12
12
  export {
13
13
  ALL_SCOPES,
14
14
  CODEBASE_TOOL_CATALOG,
@@ -120,7 +120,7 @@ var TOOL_CATALOG = [
120
120
  {
121
121
  name: "list_gate_findings",
122
122
  title: "Gate findings",
123
- description: "List recent inventory gate runs and their findings for a project, newest first. Returns { runs: [{ id, gate, status, findings_count, \u2026 }], findings: [{ severity, rule_id, message, file_path, node_id, \u2026 }] }. Filter by gate (dead_handler | mock_leak | api_contract | crawl | status_claim | spec_drift | orphan_endpoint | unknown_call | schema_drift | code_health | design_drift | ci_drift | deploy_drift | env_drift | radar | portfolio_radar | portfolio_radar_ci | store_review) or finding severity (info | warn | error). The *_drift gates are the App Recipe checks: design_drift is code that drifts off the design tokens, ci_drift / deploy_drift / env_drift are CI, deploy and env vars that drift from the recipe; radar is the Mushi setup checks (a rejected provider key, no spend cap or AI budget, a webhook that never delivered, a stale code index), each with a suggested_fix (a spend-cap fix is applied in the console by a signed-in project admin, not through an API key); portfolio_radar / portfolio_radar_ci / store_review are the app hole checks (prefer get_radar). Available on every plan. Read-only. Use to see which CI gates failed on the last crawl; use diff_inventory to compare two commits, or get_inventory for the full snapshot.",
123
+ description: "List recent inventory gate runs and their findings for a project, newest first. Returns { runs: [{ id, gate, status, findings_count, \u2026 }], findings: [{ severity, rule_id, message, file_path, node_id, \u2026 }] }. Filter by gate (dead_handler | mock_leak | api_contract | crawl | status_claim | spec_drift | orphan_endpoint | unknown_call | schema_drift | code_health | design_drift | ci_drift | deploy_drift | env_drift | radar | portfolio_radar | portfolio_radar_ci | portfolio_radar_vulns | store_review) or finding severity (info | warn | error). The *_drift gates are the App Recipe checks: design_drift is code that drifts off the design tokens, ci_drift / deploy_drift / env_drift are CI, deploy and env vars that drift from the recipe; radar is the Mushi setup checks (a rejected provider key, no spend cap or AI budget, a webhook that never delivered, a stale code index), each with a suggested_fix (a spend-cap fix is applied in the console by a signed-in project admin, not through an API key); portfolio_radar / portfolio_radar_ci / portfolio_radar_vulns / store_review are the app hole checks (prefer get_radar). Available on every plan. Read-only. Use to see which CI gates failed on the last crawl; use diff_inventory to compare two commits, or get_inventory for the full snapshot.",
124
124
  scope: "mcp:read",
125
125
  hints: { readOnly: true, idempotent: true, openWorld: true },
126
126
  useCase: "Show me what CI gates failed on the last run."
package/dist/clients.d.ts CHANGED
@@ -49,7 +49,7 @@ import { FeatureGroup } from './feature-groups.js';
49
49
  * editor launch. Synced to package.json by `scripts/sync-mcp-pin.mjs` — never
50
50
  * hand-edit the version.
51
51
  */
52
- declare const MCP_PIN_SPEC = "@mushi-mushi/mcp@0.29.0";
52
+ declare const MCP_PIN_SPEC = "@mushi-mushi/mcp@0.29.1";
53
53
  interface StdioConfig {
54
54
  command: string;
55
55
  args: string[];
package/dist/clients.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-7RWHDJPZ.js";
9
9
 
10
10
  // src/clients.ts
11
- var MCP_PIN_SPEC = "@mushi-mushi/mcp@0.29.0";
11
+ var MCP_PIN_SPEC = "@mushi-mushi/mcp@0.29.1";
12
12
  var PIN_SPEC_RE = /^@mushi-mushi\/mcp@\d+\.\d+\.\d+$/;
13
13
  function pinOf(pinSpec) {
14
14
  return pinSpec && PIN_SPEC_RE.test(pinSpec) ? pinSpec : MCP_PIN_SPEC;
package/dist/index.js CHANGED
@@ -196,7 +196,7 @@ var TOOL_CATALOG = [
196
196
  {
197
197
  name: "list_gate_findings",
198
198
  title: "Gate findings",
199
- description: "List recent inventory gate runs and their findings for a project, newest first. Returns { runs: [{ id, gate, status, findings_count, \u2026 }], findings: [{ severity, rule_id, message, file_path, node_id, \u2026 }] }. Filter by gate (dead_handler | mock_leak | api_contract | crawl | status_claim | spec_drift | orphan_endpoint | unknown_call | schema_drift | code_health | design_drift | ci_drift | deploy_drift | env_drift | radar | portfolio_radar | portfolio_radar_ci | store_review) or finding severity (info | warn | error). The *_drift gates are the App Recipe checks: design_drift is code that drifts off the design tokens, ci_drift / deploy_drift / env_drift are CI, deploy and env vars that drift from the recipe; radar is the Mushi setup checks (a rejected provider key, no spend cap or AI budget, a webhook that never delivered, a stale code index), each with a suggested_fix (a spend-cap fix is applied in the console by a signed-in project admin, not through an API key); portfolio_radar / portfolio_radar_ci / store_review are the app hole checks (prefer get_radar). Available on every plan. Read-only. Use to see which CI gates failed on the last crawl; use diff_inventory to compare two commits, or get_inventory for the full snapshot.",
199
+ description: "List recent inventory gate runs and their findings for a project, newest first. Returns { runs: [{ id, gate, status, findings_count, \u2026 }], findings: [{ severity, rule_id, message, file_path, node_id, \u2026 }] }. Filter by gate (dead_handler | mock_leak | api_contract | crawl | status_claim | spec_drift | orphan_endpoint | unknown_call | schema_drift | code_health | design_drift | ci_drift | deploy_drift | env_drift | radar | portfolio_radar | portfolio_radar_ci | portfolio_radar_vulns | store_review) or finding severity (info | warn | error). The *_drift gates are the App Recipe checks: design_drift is code that drifts off the design tokens, ci_drift / deploy_drift / env_drift are CI, deploy and env vars that drift from the recipe; radar is the Mushi setup checks (a rejected provider key, no spend cap or AI budget, a webhook that never delivered, a stale code index), each with a suggested_fix (a spend-cap fix is applied in the console by a signed-in project admin, not through an API key); portfolio_radar / portfolio_radar_ci / portfolio_radar_vulns / store_review are the app hole checks (prefer get_radar). Available on every plan. Read-only. Use to see which CI gates failed on the last crawl; use diff_inventory to compare two commits, or get_inventory for the full snapshot.",
200
200
  scope: "mcp:read",
201
201
  hints: { readOnly: true, idempotent: true, openWorld: true },
202
202
  useCase: "Show me what CI gates failed on the last run."
@@ -1489,7 +1489,7 @@ var MUSHI_DOCS_INDEX = [
1489
1489
  route: "/",
1490
1490
  markdown: "index.md",
1491
1491
  keywords: ["know", "ai-built", "app", "broke", "fix", "ready"],
1492
- headings: ["This is what a diagnosis looks like", "See it in action", "What this is (and is not)", "Get started with the SDK", "Install in your framework", "One queue. Sentry flows in, fixes flow out."],
1492
+ headings: ["The problem it solves", "A real example from our own sites", "What this is (and is not)", "Where it stands today", "This is what a diagnosis looks like", "See it in action", "Get started", "Install it in your app"],
1493
1493
  excerpt: "Your AI shipped it. Mushi tells you why it broke: a plain-English diagnosis and a ready fix in your editor. Open source, Sentry optional."
1494
1494
  },
1495
1495
  {
@@ -1618,6 +1618,15 @@ var MUSHI_DOCS_INDEX = [
1618
1618
  headings: ["What's tracked", "Charts", "Controlling costs", "Export", "Related pages"],
1619
1619
  excerpt: "The Cost page shows LLM token use and estimated spend per model and pipeline for a Mushi project, so you can see what each diagnosis costs."
1620
1620
  },
1621
+ {
1622
+ title: "Spend credits",
1623
+ url: docUrl("/admin/credits"),
1624
+ route: "/admin/credits",
1625
+ markdown: "admin/credits.md",
1626
+ keywords: ["admin", "credits", "spend"],
1627
+ headings: ["Cursor: fix bugs", "Cursor: improve your apps with skills", "Firecrawl: find bugs on your live sites", "Site audit", "Search rank", "Where the fixes go"],
1628
+ excerpt: "Spend credits lists expiring Cursor and Firecrawl credits and every way Mushi can spend them fixing bugs, improving apps with skills and checking sites."
1629
+ },
1621
1630
  {
1622
1631
  title: "Dashboard",
1623
1632
  url: docUrl("/admin/dashboard"),
@@ -2065,7 +2074,7 @@ var MUSHI_DOCS_INDEX = [
2065
2074
  route: "/admin/ux-runs",
2066
2075
  markdown: "admin/ux-runs.md",
2067
2076
  keywords: ["admin", "ux-runs", "runs", "ux"],
2068
- headings: ["Run in the cloud", "What you see", "File as bug", "Where the changes are"],
2077
+ headings: ["Run in the cloud", "What you see", "File as bug", "Audit signed-in screens", "Where the changes are"],
2069
2078
  excerpt: "Each screen your coding agent worked on in a mushi ux run, with its plan, every attempt, before and after screenshots, and what was kept."
2070
2079
  },
2071
2080
  {
@@ -2338,6 +2347,15 @@ var MUSHI_DOCS_INDEX = [
2338
2347
  headings: ["Storage", "Why both pgvector and AGE?", "Indexing", "Bug Ontology"],
2339
2348
  excerpt: "How Mushi links reports, components, fixes and developers in a per-project knowledge graph, with pgvector for similarity and Apache AGE for traversal."
2340
2349
  },
2350
+ {
2351
+ title: "Known holes in dependencies",
2352
+ url: docUrl("/concepts/known-holes"),
2353
+ route: "/concepts/known-holes",
2354
+ markdown: "concepts/known-holes.md",
2355
+ keywords: ["concepts", "known-holes", "known", "holes", "dependencies"],
2356
+ headings: ["What Mushi checks", "What becomes a report", "How bad is it", "The fix", "What leaves Mushi", "Where to see it", "Data sources"],
2357
+ excerpt: "Mushi checks the exact versions in your lockfiles and runtime pins against published advisories, and files each fixable hole as a bug with the upgrade."
2358
+ },
2341
2359
  {
2342
2360
  title: "Multi-repo coordinated fixes",
2343
2361
  url: docUrl("/concepts/multi-repo-fixes"),
@@ -2812,7 +2830,7 @@ var MUSHI_DOCS_INDEX = [
2812
2830
  route: "/quickstart",
2813
2831
  markdown: "quickstart/index.md",
2814
2832
  keywords: ["quickstart", "fix", "first", "bug", "60", "seconds", "choose", "stack"],
2815
- headings: ["Start here (MCP)", "Pick your stack", "How do I install the SDK?", "Troubleshooting"],
2833
+ headings: ["What you need", "The fastest way: one command", "Start here (editor first)", "Pick your stack", "How do I install the SDK?", "Troubleshooting"],
2816
2834
  excerpt: "Install Mushi with npx mushi-mushi, connect Cursor or Claude Code over MCP, and turn user bug reports into plain-English diagnoses with ready fixes."
2817
2835
  },
2818
2836
  {
@@ -3889,6 +3907,7 @@ var GATE_IDS = [
3889
3907
  "radar",
3890
3908
  "portfolio_radar",
3891
3909
  "portfolio_radar_ci",
3910
+ "portfolio_radar_vulns",
3892
3911
  "store_review"
3893
3912
  ];
3894
3913
  var GATE_FINDING_SEVERITIES = ["info", "warn", "error"];
@@ -6365,7 +6384,8 @@ function createMushiServer(config) {
6365
6384
  method: "PATCH",
6366
6385
  body: JSON.stringify({
6367
6386
  status: args.status,
6368
- reason: args.reason,
6387
+ // Kept as a team note on the report (the console's Triage note).
6388
+ note: args.reason,
6369
6389
  closed_reason: args.closedReason,
6370
6390
  reporter_message: args.reporterMessage
6371
6391
  })
package/dist/server.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  TDD_TOOL_CATALOG,
5
5
  TOOL_CATALOG,
6
6
  routeUseMushiIntent
7
- } from "./chunk-MOW6PVHK.js";
7
+ } from "./chunk-6SHKBN6R.js";
8
8
  import {
9
9
  MUSHI_SERVER_METADATA
10
10
  } from "./chunk-FJRPC4VR.js";
@@ -32,7 +32,7 @@ var MUSHI_DOCS_INDEX = [
32
32
  route: "/",
33
33
  markdown: "index.md",
34
34
  keywords: ["know", "ai-built", "app", "broke", "fix", "ready"],
35
- headings: ["This is what a diagnosis looks like", "See it in action", "What this is (and is not)", "Get started with the SDK", "Install in your framework", "One queue. Sentry flows in, fixes flow out."],
35
+ headings: ["The problem it solves", "A real example from our own sites", "What this is (and is not)", "Where it stands today", "This is what a diagnosis looks like", "See it in action", "Get started", "Install it in your app"],
36
36
  excerpt: "Your AI shipped it. Mushi tells you why it broke: a plain-English diagnosis and a ready fix in your editor. Open source, Sentry optional."
37
37
  },
38
38
  {
@@ -161,6 +161,15 @@ var MUSHI_DOCS_INDEX = [
161
161
  headings: ["What's tracked", "Charts", "Controlling costs", "Export", "Related pages"],
162
162
  excerpt: "The Cost page shows LLM token use and estimated spend per model and pipeline for a Mushi project, so you can see what each diagnosis costs."
163
163
  },
164
+ {
165
+ title: "Spend credits",
166
+ url: docUrl("/admin/credits"),
167
+ route: "/admin/credits",
168
+ markdown: "admin/credits.md",
169
+ keywords: ["admin", "credits", "spend"],
170
+ headings: ["Cursor: fix bugs", "Cursor: improve your apps with skills", "Firecrawl: find bugs on your live sites", "Site audit", "Search rank", "Where the fixes go"],
171
+ excerpt: "Spend credits lists expiring Cursor and Firecrawl credits and every way Mushi can spend them fixing bugs, improving apps with skills and checking sites."
172
+ },
164
173
  {
165
174
  title: "Dashboard",
166
175
  url: docUrl("/admin/dashboard"),
@@ -608,7 +617,7 @@ var MUSHI_DOCS_INDEX = [
608
617
  route: "/admin/ux-runs",
609
618
  markdown: "admin/ux-runs.md",
610
619
  keywords: ["admin", "ux-runs", "runs", "ux"],
611
- headings: ["Run in the cloud", "What you see", "File as bug", "Where the changes are"],
620
+ headings: ["Run in the cloud", "What you see", "File as bug", "Audit signed-in screens", "Where the changes are"],
612
621
  excerpt: "Each screen your coding agent worked on in a mushi ux run, with its plan, every attempt, before and after screenshots, and what was kept."
613
622
  },
614
623
  {
@@ -881,6 +890,15 @@ var MUSHI_DOCS_INDEX = [
881
890
  headings: ["Storage", "Why both pgvector and AGE?", "Indexing", "Bug Ontology"],
882
891
  excerpt: "How Mushi links reports, components, fixes and developers in a per-project knowledge graph, with pgvector for similarity and Apache AGE for traversal."
883
892
  },
893
+ {
894
+ title: "Known holes in dependencies",
895
+ url: docUrl("/concepts/known-holes"),
896
+ route: "/concepts/known-holes",
897
+ markdown: "concepts/known-holes.md",
898
+ keywords: ["concepts", "known-holes", "known", "holes", "dependencies"],
899
+ headings: ["What Mushi checks", "What becomes a report", "How bad is it", "The fix", "What leaves Mushi", "Where to see it", "Data sources"],
900
+ excerpt: "Mushi checks the exact versions in your lockfiles and runtime pins against published advisories, and files each fixable hole as a bug with the upgrade."
901
+ },
884
902
  {
885
903
  title: "Multi-repo coordinated fixes",
886
904
  url: docUrl("/concepts/multi-repo-fixes"),
@@ -1355,7 +1373,7 @@ var MUSHI_DOCS_INDEX = [
1355
1373
  route: "/quickstart",
1356
1374
  markdown: "quickstart/index.md",
1357
1375
  keywords: ["quickstart", "fix", "first", "bug", "60", "seconds", "choose", "stack"],
1358
- headings: ["Start here (MCP)", "Pick your stack", "How do I install the SDK?", "Troubleshooting"],
1376
+ headings: ["What you need", "The fastest way: one command", "Start here (editor first)", "Pick your stack", "How do I install the SDK?", "Troubleshooting"],
1359
1377
  excerpt: "Install Mushi with npx mushi-mushi, connect Cursor or Claude Code over MCP, and turn user bug reports into plain-English diagnoses with ready fixes."
1360
1378
  },
1361
1379
  {
@@ -2498,6 +2516,7 @@ var GATE_IDS = [
2498
2516
  "radar",
2499
2517
  "portfolio_radar",
2500
2518
  "portfolio_radar_ci",
2519
+ "portfolio_radar_vulns",
2501
2520
  "store_review"
2502
2521
  ];
2503
2522
  var GATE_FINDING_SEVERITIES = ["info", "warn", "error"];
@@ -4974,7 +4993,8 @@ function createMushiServer(config) {
4974
4993
  method: "PATCH",
4975
4994
  body: JSON.stringify({
4976
4995
  status: args.status,
4977
- reason: args.reason,
4996
+ // Kept as a team note on the report (the console's Triage note).
4997
+ note: args.reason,
4978
4998
  closed_reason: args.closedReason,
4979
4999
  reporter_message: args.reporterMessage
4980
5000
  })
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mushi-mushi/mcp",
3
3
  "mcpName": "io.github.kensaurus/mushi-mushi",
4
- "version": "0.29.0",
4
+ "version": "0.29.1",
5
5
  "license": "MIT",
6
6
  "description": "MCP server for Cursor, Claude Code and Copilot. The bug mediator for AI-built apps: plain-English diagnosis + a ready fix, in your editor.",
7
7
  "type": "module",
@@ -44,7 +44,7 @@
44
44
  "dependencies": {
45
45
  "@modelcontextprotocol/core": "^2.3.1",
46
46
  "@modelcontextprotocol/server": "^2.3.1",
47
- "zod": "^4.4.3",
47
+ "zod": "^4.6.7",
48
48
  "@mushi-mushi/core": "^1.33.2"
49
49
  },
50
50
  "peerDependencies": {