Skip to content

Conversation

@bryankthompson
Copy link
Contributor

Summary

Updates the MCPB manifest to align with the v0.3 specification and switches to an npx-based bundle for improved reliability and smaller size.

Changes

  • manifest_version: Updated from deprecated dxt_version: "0.1" to manifest_version: "0.3"
  • Tool names: Fixed to match actual server tool names:
    • "Resolve Context7 Library ID""resolve-library-id"
    • "Query Documentation""query-docs"
  • privacy_policies: Added ["https://upstash.com/privacy"] (required for MCP Directory submission)
  • support: Added "https://github.com/upstash/context7/issues"
  • version: Synced to 2.1.0 to match package.json
  • Bundle approach: Switched from bundled source to npx-based pattern using @upstash/context7-mcp from npm

Why These Changes

  1. manifest_version: The dxt_version key is deprecated; modern MCPB uses manifest_version
  2. Tool names: Tool names in manifest must exactly match the server's tools/list response for proper discoverability
  3. privacy_policies: Required for MCP Directory submission per MCP Bundle spec
  4. npx approach: Leverages the existing npm package @upstash/context7-mcp, resulting in a much smaller bundle (10KB vs 1.5MB) that always uses the latest published version

Bundle Size Comparison

Metric Before After
Bundle size 1.54 MB 10 KB
Update process Rebuild & commit Automatic via npm

Testing

  • mcpb validate manifest.json passes
  • Bundle packs successfully
  • Server connects in Claude Desktop
  • Both tools (resolve-library-id, query-docs) functional

🤖 Generated with Claude Code

- Update dxt_version to manifest_version 0.3
- Fix tool names to match actual server tools (resolve-library-id, query-docs)
- Add privacy_policies for MCP Directory compliance
- Add support URL for discoverability
- Sync version to 2.1.0 (matches package.json)
- Switch to npx-based bundle using @upstash/context7-mcp from npm

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@enesgules
Copy link
Collaborator

Thanks for the PR!

I don't think we should update the tool names from human readable format to machine readable format, because in the MPC we also have human readable format too

Also could you share any resources that you used while creating this PR? We were not aware of these new features and would like to keep track of them

Best,

Revert tool names to match existing convention:
- "Resolve Context7 Library ID" (not "resolve-library-id")
- "Query Documentation" (not "query-docs")

Keep npx-based bundle pattern for automatic updates from npm.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@bryankthompson
Copy link
Contributor Author

Thanks for the feedback @enesgules!

Regarding tool names:
You're right - I've updated the manifest to use your preferred "human readable" format:

  • "Resolve Context7 Library ID"
  • "Query Documentation"

This matches your existing convention in packages/mcp/mcpb/manifest.json.

Regarding resources:
The npx-based pattern I used isn't in the official MCPB documentation yet. I have an open PR (#161) documenting the equivalent uvx pattern for Python servers, but the Node.js npx pattern hasn't been formally documented yet.

It works because Claude Desktop ships with Node.js/npm/npx built-in. The benefits are:

  • Tiny bundle (~10 KB vs 1.5+ MB with bundled source)
  • Automatic updates from npm (users always get latest version)
  • No need to repack the bundle for each version

For example, the npm package is currently at 2.1.0, but your bundled manifest at packages/mcp/mcpb/ is at 2.0.0. With the npx pattern, users would automatically get 2.1.0 without any bundle update needed.

Official MCPB docs:

I notice you already have an MCPB setup at packages/mcp/mcpb/. This PR offers:

  1. Manifest v0.3 spec (vs your current v0.1)
  2. The npx pattern for automatic updates
  3. privacy_policies and support fields for MCP Directory compliance

Let me know if you have any questions or would like any other changes!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants