@mushi-mushi/mcp 0.16.0 → 0.16.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/CONTRIBUTING.md CHANGED
@@ -58,9 +58,9 @@ packages/
58
58
  react-native/ React Native SDK (MIT)
59
59
  cli/ CLI tool (MIT)
60
60
  mcp/ MCP server for coding agents (MIT)
61
- server/ Supabase Edge Functions (BSL)
62
- agents/ Agentic fix pipeline (BSL)
63
- verify/ Fix verification (BSL)
61
+ server/ Supabase Edge Functions (AGPLv3)
62
+ agents/ Agentic fix pipeline (AGPLv3)
63
+ verify/ Fix verification (AGPLv3)
64
64
  apps/
65
65
  admin/ Admin dashboard (React + Tailwind)
66
66
  docs/ Documentation site (Nextra — apps/docs)
@@ -97,8 +97,10 @@ Guardrails (run locally before pushing):
97
97
  pnpm check:docs-stats # root README stat badges
98
98
  pnpm check:sdk-version-matrix # apps/docs/content/sdks/index.mdx versions
99
99
  pnpm check:internal-doc-links # dead /foo links in MDX
100
+ pnpm check:onboarding-drift # phantom MCP env vars / stale tool names
100
101
  pnpm check:bundle-docs # @mushi-mushi/web size-limit vs README
101
102
  pnpm gen:llms-txt # regenerate apps/docs/public/llms.txt after nav changes
103
+ pnpm gen:mcp-tools-doc # regenerate sdks/mcp-tools.generated.mdx from catalog.ts
102
104
  ```
103
105
 
104
106
  README changes on npm packages only appear on [npmjs.com](https://www.npmjs.com) after the next **Changesets publish**.
@@ -115,13 +117,30 @@ Select the affected packages, the semver bump type, and write a summary. The cha
115
117
 
116
118
  ## Release flow
117
119
 
118
- Releases are fully automated. Maintainers don't run `npm publish` by hand.
120
+ Releases are fully automated once the version PR is merged. Maintainers don't run
121
+ `npm publish` by hand for routine bumps. See **[`docs/DEPLOYMENT.md`](docs/DEPLOYMENT.md)**
122
+ for the full production runbook (edge functions, admin SPA, docs site, migrations).
119
123
 
120
124
  1. PRs land on `master` with one or more changeset files in `.changeset/`.
121
- 2. `release.yml` runs on every push to `master`. It opens (or updates) a `chore: version packages` PR that bumps every affected `package.json`, rolls up the changelogs, and deletes the consumed changesets.
122
- 3. Merging that "Version Packages" PR re-fires `release.yml`. The publish step authenticates to npm via **OpenID Connect (OIDC) Trusted Publishers** — no long-lived `NPM_TOKEN` is exchanged — and every tarball ships with a **Sigstore provenance attestation** uploaded to the public transparency log.
125
+ Orphaned changesets (only ignored packages) fail `pnpm check:changeset-orphans`.
126
+ 2. `release.yml` runs on every push to `master`. It opens (or updates) a
127
+ **`chore: version packages`** PR on `changeset-release/master` that bumps
128
+ affected `package.json` files, rolls up changelogs, and deletes consumed
129
+ changesets.
130
+ 3. **Wait for CI on the version PR.** If checks don't appear (bot-branch
131
+ suppression), push an empty commit to `changeset-release/master`. If
132
+ `check:sdk-version-matrix` fails, run `pnpm gen:sdk-version-matrix` on that
133
+ branch and commit `apps/docs/content/sdks/index.mdx`.
134
+ 4. Merge the version PR. The publish step uses **OIDC Trusted Publishers** +
135
+ Sigstore provenance (with `NPM_TOKEN` only for brand-new package bootstrap).
136
+ 5. **Manually dispatch Release** unless a run starts within ~2 minutes:
137
+ **Actions → Release → Run workflow → `master`**. Squash-merges attributed to
138
+ `github-actions[bot]` usually suppress the auto `push` trigger — manual
139
+ dispatch is the normal path, not a fallback of last resort.
123
140
 
124
- If GitHub's anti-loop protection suppresses the auto re-fire (the squash merge can be attributed to `github-actions[bot]`), trigger the workflow manually: **Actions → release → Run workflow → master**.
141
+ ```bash
142
+ gh workflow run release.yml --ref master
143
+ ```
125
144
 
126
145
  ### Adding a brand-new publishable package
127
146
 
@@ -168,7 +187,7 @@ chore: bump dependencies
168
187
  ## License
169
188
 
170
189
  - SDK packages are MIT — your contributions will be MIT-licensed
171
- - Server/agents/verify are BSL 1.1 — contributions to those packages fall under BSL
190
+ - Server/agents/verify are AGPLv3 — contributions to those packages fall under AGPLv3
172
191
 
173
192
  ## Questions?
174
193
 
package/README.md CHANGED
@@ -1,13 +1,8 @@
1
1
  # @mushi-mushi/mcp
2
2
 
3
- > **Sentry sees what code throws. Mushi sees what users feel — and closes the loop with AI.**
3
+ > **Your AI wrote it. Mushi tells you why it broke.**
4
4
 
5
- [Model Context Protocol](https://spec.modelcontextprotocol.io/) server that wires Mushi's **evolution loop** into your AI coding agent. The loop is already running in your Mushi project:
6
-
7
- ```
8
- User feels a bug → Mushi captures it → AI triages → AI opens a PR
9
- → QA verifies → Judge scores → Lesson library remembers → next agent is smarter
10
- ```
5
+ [Model Context Protocol](https://spec.modelcontextprotocol.io/) server that wires Mushi into Cursor, Claude Code, and any MCP client. Pull fix context, run triage, and dispatch fixes without a second LLM vendor key.
11
6
 
12
7
  Wire it into Cursor, Claude Code, or any MCP client in one command:
13
8
 
@@ -16,7 +11,7 @@ npx mushi-mushi setup --ide cursor
16
11
  # or: npx mushi-mushi setup --ide claude
17
12
  ```
18
13
 
19
- That command reads `~/.mushirc`, writes `.cursor/mcp.json` with the `mushi` server block, and prints "Done — restart Cursor and ask: `list mushi tools`". No copy-pasting environment variables.
14
+ 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
15
 
21
16
  ### Codebase Understand tools (indexed repos)
22
17
 
@@ -146,7 +141,7 @@ The Mushi backend now exposes the same tool catalog over the **Streamable HTTP**
146
141
 
147
142
  ### Feature groups (`?features=` / `MUSHI_FEATURES`)
148
143
 
149
- Full catalog is **79 tools**. New installs default to a lean set via:
144
+ Full catalog is **71 tools**. New installs default to a lean set via:
150
145
 
151
146
  - **Stdio:** `MUSHI_FEATURES=triage,fixes,inventory,setup,docs`
152
147
  - **HTTP:** `?features=triage,fixes,inventory,setup,docs` on the MCP URL
package/dist/catalog.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  RESOURCE_CATALOG,
6
6
  TDD_TOOL_CATALOG,
7
7
  TOOL_CATALOG
8
- } from "./chunk-PZEGN4XD.js";
8
+ } from "./chunk-UYZEIJ5G.js";
9
9
  export {
10
10
  ALL_SCOPES,
11
11
  CODEBASE_TOOL_CATALOG,
@@ -44,7 +44,7 @@ var TOOL_CATALOG = [
44
44
  {
45
45
  name: "get_fix_context",
46
46
  title: "Fix context bundle",
47
- description: "Bundle the full context an agent needs to fix a bug: report detail, reproduction steps, component, root cause, ontology tags. One call instead of several.",
47
+ description: "Bundle the full context an agent needs to fix a bug: a paste-ready fixPrompt (plain-English diagnosis + reproduction + suggested fix + relevant code + blast radius), plus report detail, reproduction steps, component, root cause, and ontology tags. One call instead of several. No second LLM key needed.",
48
48
  scope: "mcp:read",
49
49
  hints: { readOnly: true, idempotent: true, openWorld: true },
50
50
  useCase: "Give me everything I need to fix this in one payload."
package/dist/index.js CHANGED
@@ -51,7 +51,7 @@ var TOOL_CATALOG = [
51
51
  {
52
52
  name: "get_fix_context",
53
53
  title: "Fix context bundle",
54
- description: "Bundle the full context an agent needs to fix a bug: report detail, reproduction steps, component, root cause, ontology tags. One call instead of several.",
54
+ description: "Bundle the full context an agent needs to fix a bug: a paste-ready fixPrompt (plain-English diagnosis + reproduction + suggested fix + relevant code + blast radius), plus report detail, reproduction steps, component, root cause, and ontology tags. One call instead of several. No second LLM key needed.",
55
55
  scope: "mcp:read",
56
56
  hints: { readOnly: true, idempotent: true, openWorld: true },
57
57
  useCase: "Give me everything I need to fix this in one payload."
@@ -1131,6 +1131,7 @@ function createMushiServer(config) {
1131
1131
  inputSchema: { reportId: z.string().describe("The report UUID to fix") },
1132
1132
  outputSchema: {
1133
1133
  report: z.unknown(),
1134
+ fixPrompt: z.unknown(),
1134
1135
  reproductionSteps: z.unknown(),
1135
1136
  component: z.unknown(),
1136
1137
  rootCause: z.unknown(),
@@ -1141,6 +1142,10 @@ function createMushiServer(config) {
1141
1142
  const report = await apiCall(`/v1/admin/reports/${args.reportId}`);
1142
1143
  return jsonResult({
1143
1144
  report,
1145
+ // Paste-ready fix prompt composed server-side by composeFixPacket()
1146
+ // (diagnosis + repro + suggested fix + relevant code + blast radius).
1147
+ // Hand this straight to the editing agent — no second LLM key needed.
1148
+ fixPrompt: report.fix_packet ?? null,
1144
1149
  reproductionSteps: report.reproduction_steps ?? [],
1145
1150
  component: report.component,
1146
1151
  rootCause: report.stage2_analysis?.rootCause,
package/dist/server.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  CODEBASE_TOOL_CATALOG,
3
3
  TDD_TOOL_CATALOG,
4
4
  TOOL_CATALOG
5
- } from "./chunk-PZEGN4XD.js";
5
+ } from "./chunk-UYZEIJ5G.js";
6
6
  import {
7
7
  MUSHI_SERVER_METADATA
8
8
  } from "./chunk-EHB2BGWX.js";
@@ -409,6 +409,7 @@ function createMushiServer(config) {
409
409
  inputSchema: { reportId: z.string().describe("The report UUID to fix") },
410
410
  outputSchema: {
411
411
  report: z.unknown(),
412
+ fixPrompt: z.unknown(),
412
413
  reproductionSteps: z.unknown(),
413
414
  component: z.unknown(),
414
415
  rootCause: z.unknown(),
@@ -419,6 +420,10 @@ function createMushiServer(config) {
419
420
  const report = await apiCall(`/v1/admin/reports/${args.reportId}`);
420
421
  return jsonResult({
421
422
  report,
423
+ // Paste-ready fix prompt composed server-side by composeFixPacket()
424
+ // (diagnosis + repro + suggested fix + relevant code + blast radius).
425
+ // Hand this straight to the editing agent — no second LLM key needed.
426
+ fixPrompt: report.fix_packet ?? null,
422
427
  reproductionSteps: report.reproduction_steps ?? [],
423
428
  component: report.component,
424
429
  rootCause: report.stage2_analysis?.rootCause,
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@mushi-mushi/mcp",
3
- "version": "0.16.0",
3
+ "mcpName": "io.github.kensaurus/mushi-mushi",
4
+ "version": "0.16.1",
4
5
  "license": "MIT",
5
6
  "description": "MCP server for Mushi Mushi — triage user-felt bugs, pull evidence (screenshots, console logs, network requests), check blast radius, and dispatch fix PRs, all from your AI coding agent",
6
7
  "type": "module",
@@ -42,7 +43,7 @@
42
43
  "dependencies": {
43
44
  "@modelcontextprotocol/sdk": "^1.29.0",
44
45
  "zod": "^4.4.2",
45
- "@mushi-mushi/core": "^1.15.0"
46
+ "@mushi-mushi/core": "^1.16.0"
46
47
  },
47
48
  "devDependencies": {
48
49
  "@types/node": "^22.19.17",