Add .mcpb Claude Desktop bundle with zero-config token handling

New scripts/build-mcpb.mjs packs a Claude Desktop extension bundle
(scripts/mcpb-wrapper.mjs + manifest + icon) into dist-mcpb/tiletopia.mcpb.
The wrapper reads the bearer token from %APPDATA% at launch and execs
`npx -y mcp-remote`, so no secrets are baked in and Regenerate keeps
working transparently. Run via `pnpm run build:mcpb`.

McpPanel gets a "Download .mcpb" button linking to the releases page; the
help-overlay tip and README MCP section both lead with the bundle install
path and keep the .mcp.json shim recipe as the Claude Code fallback.

Session-log entry in memory.md covers the design choices, especially why
the wrapper-script approach beat the alternatives (user_config prompt
would defeat one-click; baked-in token would be wrong for everyone else).
This commit is contained in:
megaproxy 2026-05-26 17:31:34 +01:00
parent 25aac634ab
commit b29233a012
9 changed files with 505 additions and 3 deletions

View file

@ -187,6 +187,55 @@
color: #ccd;
}
/* Inline small-print under inputs small, muted, tight line-height. Used by
* the token hint and the .mcpb install hint. */
.mcp-hint {
margin: 4px 0 0;
color: #888;
font-size: 11px;
line-height: 1.4;
}
.mcp-hint code {
background: #0c0c0c;
padding: 1px 4px;
border-radius: 2px;
font-family: inherit;
color: #aac;
}
/* ---- Claude Desktop .mcpb install row ----------------------------------- */
.mcp-mcpb-row {
display: flex;
align-items: flex-start;
gap: 12px;
}
.mcp-mcpb-btn {
font: inherit;
font-family: inherit;
font-size: 11px;
font-weight: 600;
background: #1a2a3a;
color: #cce6ff;
border: 1px solid #2a4a6a;
border-radius: 3px;
padding: 6px 14px;
cursor: pointer;
flex-shrink: 0;
white-space: nowrap;
}
.mcp-mcpb-btn:hover {
background: #2a4a6a;
color: #e0f0ff;
border-color: #4488cc;
}
.mcp-mcpb-hint {
flex: 1 1 auto;
margin: 0;
}
.mcp-snippet {
font: inherit;
font-family: inherit;