@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 +27 -8
- package/README.md +4 -9
- package/dist/catalog.js +1 -1
- package/dist/{chunk-PZEGN4XD.js → chunk-UYZEIJ5G.js} +1 -1
- package/dist/index.js +6 -1
- package/dist/server.js +6 -1
- package/package.json +3 -2
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 (
|
|
62
|
-
agents/ Agentic fix pipeline (
|
|
63
|
-
verify/ Fix verification (
|
|
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
|
|
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
|
-
|
|
122
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
> **
|
|
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
|
|
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
|
|
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 **
|
|
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
|
@@ -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-
|
|
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
|
-
"
|
|
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.
|
|
46
|
+
"@mushi-mushi/core": "^1.16.0"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
48
49
|
"@types/node": "^22.19.17",
|