Skip to content

feat: add Smithery MCPB bundle with tools:[] workaround (SCR-3048) - #57

Open
paulius-krutkis-dcd wants to merge 1 commit into
mainfrom
feat/smithery-mcpb-bundle
Open

feat: add Smithery MCPB bundle with tools:[] workaround (SCR-3048)#57
paulius-krutkis-dcd wants to merge 1 commit into
mainfrom
feat/smithery-mcpb-bundle

Conversation

@paulius-krutkis-dcd

Copy link
Copy Markdown
Member

Summary

Unblocks publishing to Smithery (SCR-3048).

Smithery now requires either OAuth support or a .mcpb bundle under 25MB. Our previous bundle was ~270MB (embedded node_modules). This adds a minimal stdio bundle that simply launches the npm-published @decodo/mcp-server via npx, so the packed bundle is <1KB.

Why not OAuth?

The bundle path is the lighter alternative to implementing OAuth on the server. Since we already publish to npm, a thin launcher bundle is enough to get Smithery showing up-to-date capabilities.

tools:[] workaround

Smithery currently rejects stdio bundles whose manifest omits tools with 400 {"error":"No values to set"}smithery-ai/cli#770 (still open upstream, community-verified workaround). The manifest includes an explicit "tools": [] so the release payload is accepted. Runtime tool discovery is unaffected.

Contents

  • smithery/manifest.json — MCPB manifest (stdio, node launcher, tools: [])
  • smithery/index.js — thin launcher that runs npx -y @decodo/mcp-server
  • smithery/README.md — publish steps

Verification

npx @anthropic-ai/mcpb validate smithery/manifest.json   # passes
npx @anthropic-ai/mcpb pack smithery decodo-mcp.mcpb     # ~917B, tools:[] survives round-trip

Publishing itself is a CLI step (not part of this PR):

npx @anthropic-ai/mcpb pack smithery decodo-mcp.mcpb
npx smithery mcp publish ./decodo-mcp.mcpb -n Decodo/mcp-server

Note

  • SCRAPER_API_TOKEN is used as the env var (matches current build/index.js); the old Smithery config used sapiUsername/sapiPassword. Please confirm this is correct.
  • Keep version in manifest.json in sync with package.json.

Publishing to Smithery requires OAuth or a <25MB .mcpb bundle. Add a
minimal stdio bundle that launches the npm-published @decodo/mcp-server,
avoiding the 270MB node_modules payload.

Includes an explicit "tools": [] in the manifest to work around
arcadeai-labs/smithery-cli#770, which rejects stdio bundles that omit tools with
400 {"error":"No values to set"}.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant