@mushi-mushi/mcp 0.20.0 → 0.20.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 +3 -3
- package/dist/catalog.js +1 -1
- package/dist/{chunk-OZJEY3QR.js → chunk-TP2QQWDJ.js} +22 -9
- package/dist/{chunk-VBXXUK5G.js → chunk-ZSVRLSW5.js} +4 -2
- package/dist/clients.d.ts +1 -1
- package/dist/clients.js +2 -2
- package/dist/feature-groups.js +1 -1
- package/dist/index.js +402 -195
- package/dist/server.js +378 -186
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -146,7 +146,7 @@ The Mushi backend now exposes the same tool catalog over the **Streamable HTTP**
|
|
|
146
146
|
|
|
147
147
|
### Feature groups (`?features=` / `MUSHI_FEATURES`)
|
|
148
148
|
|
|
149
|
-
Full catalog is **
|
|
149
|
+
Full catalog is **71 tools** (stdio / `MUSHI_FEATURES=all`). The hosted HTTP
|
|
150
150
|
endpoint exposes a leaner subset filtered by feature groups (see
|
|
151
151
|
`mcp-hosted-tool-manifest.json`). New installs now default to the lean
|
|
152
152
|
`triage,fixes,inventory,setup,docs` set automatically (stdio: when
|
|
@@ -390,7 +390,7 @@ Spawns `dist/index.js` with a dummy unreachable endpoint and confirms it adverti
|
|
|
390
390
|
pnpm --filter @mushi-mushi/mcp build
|
|
391
391
|
pnpm --filter @mushi-mushi/mcp test:smoke
|
|
392
392
|
# OK; prints live tool/resource/prompt counts from the catalog
|
|
393
|
-
# (see packages/mcp/src/catalog.ts — currently
|
|
393
|
+
# (see packages/mcp/src/catalog.ts — currently 71 tools / 8 resources / 4 prompts)
|
|
394
394
|
```
|
|
395
395
|
|
|
396
396
|
### Layer 3; Full localhost E2E (real binary + real backend behaviour)
|
|
@@ -484,4 +484,4 @@ MIT
|
|
|
484
484
|
<!-- mushi-readme-stats-footer -->
|
|
485
485
|
---
|
|
486
486
|
|
|
487
|
-
<sub>Monorepo scale (July 2026): 55 edge functions ·
|
|
487
|
+
<sub>Monorepo scale (July 2026): 55 edge functions · 331 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/catalog.js
CHANGED
|
@@ -449,7 +449,7 @@ var TDD_TOOL_CATALOG = [
|
|
|
449
449
|
{
|
|
450
450
|
name: "list_byok_keys",
|
|
451
451
|
title: "List your API key pool",
|
|
452
|
-
description: "List the project's BYOK API keys grouped by provider (anthropic | openai | firecrawl | browserbase | cursor). Returns { keys: [{ id,
|
|
452
|
+
description: "List the project's BYOK API keys grouped by provider (anthropic | openai | firecrawl | browserbase | cursor). Returns pooled { keys: [{ id, provider_slug, label, priority, status, cooldown_until, test_status, key_hint, base_url, last_tested_at, last_used_at }] } plus read-only { legacyKeys } metadata for credentials saved before the pooled lifecycle \u2014 never the raw secret. Read-only. Use to see which keys are validated, active, pending, legacy, or rate-limited; use add_byok_key to add one.",
|
|
453
453
|
scope: "mcp:read",
|
|
454
454
|
hints: { readOnly: true, idempotent: true, openWorld: true },
|
|
455
455
|
useCase: "Which API keys are active and which are rate-limited?"
|
|
@@ -457,11 +457,27 @@ var TDD_TOOL_CATALOG = [
|
|
|
457
457
|
{
|
|
458
458
|
name: "add_byok_key",
|
|
459
459
|
title: "Add an API key",
|
|
460
|
-
description: "Add a BYOK API key
|
|
460
|
+
description: "Add and immediately validate a BYOK API key for anthropic | openai | firecrawl | browserbase | cursor. The raw key is stored encrypted in Supabase Vault and never returned; failed probes remain quarantined. Optional baseUrl is accepted only for allow-listed OpenAI-compatible HTTPS providers. Write; NOT idempotent.",
|
|
461
461
|
scope: "mcp:write",
|
|
462
462
|
hints: { readOnly: false, destructive: false, idempotent: false, openWorld: true },
|
|
463
463
|
useCase: "Add a backup Anthropic key to the pool."
|
|
464
464
|
},
|
|
465
|
+
{
|
|
466
|
+
name: "test_byok_key",
|
|
467
|
+
title: "Test an API key",
|
|
468
|
+
description: "Re-test one pooled BYOK credential by key id. A successful provider probe activates the key; auth, quota, and network failures keep it out of the runtime pool. Returns the sanitized validation result and updated key metadata. Write; idempotent.",
|
|
469
|
+
scope: "mcp:write",
|
|
470
|
+
hints: { readOnly: false, destructive: false, idempotent: true, openWorld: true },
|
|
471
|
+
useCase: "Re-test a quarantined OpenAI key after fixing its account quota."
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
name: "remove_byok_key",
|
|
475
|
+
title: "Remove an API key",
|
|
476
|
+
description: "Permanently remove one pooled BYOK credential by key id from the authenticated project, including its Vault secret. Write; destructive; idempotent.",
|
|
477
|
+
scope: "mcp:write",
|
|
478
|
+
hints: { readOnly: false, destructive: true, idempotent: true, openWorld: true },
|
|
479
|
+
useCase: "Remove a rotated or compromised provider key from the runtime pool."
|
|
480
|
+
},
|
|
465
481
|
{
|
|
466
482
|
name: "list_pending_review_stories",
|
|
467
483
|
title: "List QA stories pending review",
|
|
@@ -635,7 +651,9 @@ var USE_MUSHI_INTENTS = {
|
|
|
635
651
|
"activation_status",
|
|
636
652
|
"get_backend_health",
|
|
637
653
|
"list_byok_keys",
|
|
638
|
-
"add_byok_key"
|
|
654
|
+
"add_byok_key",
|
|
655
|
+
"test_byok_key",
|
|
656
|
+
"remove_byok_key"
|
|
639
657
|
],
|
|
640
658
|
hint: "Call mushi_setup first \u2014 it diagnoses setup gaps and returns the next command to run."
|
|
641
659
|
},
|
|
@@ -665,12 +683,7 @@ var USE_MUSHI_INTENTS = {
|
|
|
665
683
|
},
|
|
666
684
|
audit: {
|
|
667
685
|
label: "Audit / health check",
|
|
668
|
-
tools: [
|
|
669
|
-
"run_fullstack_audit",
|
|
670
|
-
"get_backend_health",
|
|
671
|
-
"get_dashboard",
|
|
672
|
-
"get_usage"
|
|
673
|
-
],
|
|
686
|
+
tools: ["run_fullstack_audit", "get_backend_health", "get_dashboard", "get_usage"],
|
|
674
687
|
hint: "Call run_fullstack_audit for a full-stack health scorecard."
|
|
675
688
|
}
|
|
676
689
|
};
|
|
@@ -98,8 +98,10 @@ var TOOL_FEATURE_MAP = {
|
|
|
98
98
|
start_skill_pipeline: "skills",
|
|
99
99
|
get_pipeline_run: "skills",
|
|
100
100
|
checkin_pipeline_step: "skills",
|
|
101
|
-
list_byok_keys: "
|
|
102
|
-
add_byok_key: "
|
|
101
|
+
list_byok_keys: "setup",
|
|
102
|
+
add_byok_key: "setup",
|
|
103
|
+
test_byok_key: "setup",
|
|
104
|
+
remove_byok_key: "setup",
|
|
103
105
|
// audit
|
|
104
106
|
run_fullstack_audit: "audit",
|
|
105
107
|
get_backend_health: "audit",
|
package/dist/clients.d.ts
CHANGED
|
@@ -46,7 +46,7 @@ import { FeatureGroup } from './feature-groups.js';
|
|
|
46
46
|
* editor launch. Synced to package.json by `scripts/sync-mcp-pin.mjs` — never
|
|
47
47
|
* hand-edit the version.
|
|
48
48
|
*/
|
|
49
|
-
declare const MCP_PIN_SPEC = "@mushi-mushi/mcp@0.20.
|
|
49
|
+
declare const MCP_PIN_SPEC = "@mushi-mushi/mcp@0.20.1";
|
|
50
50
|
interface StdioConfig {
|
|
51
51
|
command: string;
|
|
52
52
|
args: string[];
|
package/dist/clients.js
CHANGED
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
DEFAULT_FEATURE_GROUPS,
|
|
6
6
|
appendFeaturesToUrl,
|
|
7
7
|
featuresQueryString
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ZSVRLSW5.js";
|
|
9
9
|
|
|
10
10
|
// src/clients.ts
|
|
11
|
-
var MCP_PIN_SPEC = "@mushi-mushi/mcp@0.20.
|
|
11
|
+
var MCP_PIN_SPEC = "@mushi-mushi/mcp@0.20.1";
|
|
12
12
|
function projectServerName(projectId, projectName) {
|
|
13
13
|
const nameSlug = projectName.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 22);
|
|
14
14
|
const idSuffix = projectId.replace(/-/g, "").slice(0, 6);
|