Repository navigation
Add .mcpb bundle generation and attach to GitHub Releases - #11
Merged
Merged
Conversation
- Add mcp/manifest.json (mcpb v0.3 spec) declaring familiar-mcp as a Node stdio server with darwin-only compatibility - Add mcp/.mcpbignore to keep src/ tests configs and coverage/ out of the bundle - Extend .github/workflows/release.yml: after npm publish prune dev deps, run mcpb pack . familiar-mcp.mcpb, then upload the resulting bundle as a GitHub Release asset - Ignore *.mcpb in .gitignore so locally-built bundles do not get committed - Verified locally: bundle is 2.7MB packed / 8.2MB unpacked / 1959 files (dist + production node_modules + manifest + LICENSE + README), entry_point dist/index.js loads cleanly under node and exits 0 on stdin EOF (normal MCP stdio shutdown) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add
mcp/manifest.json(mcpb v0.3 spec) and extend.github/workflows/release.ymlso eachv*tag push also produces a.mcpbbundle and attaches it to the corresponding GitHub Release.Why
.mcpb(formerly.dxt) is the official MCP Bundle format. Claude Desktop, Cursor's MCP install flows, Smithery, and similar MCP hosts can install a stdio MCP server by double-clicking / pointing at a.mcpbfile (a zip containing the manifest, compiled JS, and productionnode_modules).Changes
mcp/manifest.json— declaresfamiliar-mcpas a Node stdio server, darwin-only,entry_point: dist/index.js. Schema-validated bymcpb validate.mcp/.mcpbignore— keepssrc/, tests, build / lint configs, andcoverage/out of the bundle..gitignore— ignore*.mcpbso locally-built bundles never get committed..github/workflows/release.yml— afternpm publish, the workflow runsnpm prune --omit=devthennpx @anthropic-ai/mcpb pack . familiar-mcp.mcpb, creates the GitHub Release, then uploads the bundle as a release asset.Distribution policy
The
.mcpbis not included in the npm tarball. It is only attached to GitHub Releases. The npm tarball already shipsdist/; consumers usingnpx @dominion525/familiar-mcp@latestdo not need a redundant zip.Local verification
npm prune --omit=dev && npx @anthropic-ai/mcpb pack . familiar-mcp.mcpb→ 2.7MB packed / 8.2MB unpacked / 1959 files. Coverage and dev configs excluded as expected.unzipof the bundle hasmanifest.jsonat the root anddist/index.jsat the declaredentry_point.node dist/index.js < /dev/nullfrom inside the unpacked bundle loads the server and exits 0 on EOF (normal MCP stdio graceful shutdown).