Repository navigation
Add MCP Registry support with MCPB packaging - #227
Merged
Merged
Conversation
- Add server.json with MCPB package configuration for MCP Registry - Create mcpb-manifest.json template for MCP Bundle format - Add scripts/package-mcpb.sh to create MCPB bundles from releases - Update release workflow to build and upload .mcpb files - Add comprehensive publishing documentation This prepares FocusRelay for publication to the official MCP Registry at registry.modelcontextprotocol.io. The server will be distributed as an MCPB bundle via GitHub Releases. Note: server.json contains a placeholder SHA256 hash that must be updated with the actual hash after creating a release. See MCP_REGISTRY_SETUP.md for complete instructions. Co-authored-by: Brent Deverman <brent@deverman.org>
Co-authored-by: Cursor <cursoragent@cursor.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
This PR prepares FocusRelay for publication to the official MCP Registry at
registry.modelcontextprotocol.io. FocusRelay will be distributed as an MCPB (MCP Bundle) package via GitHub Releases—the recommended approach for macOS-only Swift binaries.Changes Made
1. Added MCPB Bundle Support
mcpb-manifest.json: Manifest template for the MCP Bundle format2. Created Packaging Infrastructure
scripts/package-mcpb.sh: Automated MCPB bundle creationfocusrelaybinary,FocusRelayBridge.omnijsplugin, andREADME.mdmanifest.jsonwith the correct version.mcpbextension3. Updated Release Workflow
.github/workflows/release.yml: Now builds and uploads MCPB bundlespackage-mcpb.shalongside the existing tarball packaging.mcpband.mcpb.sha256files to GitHub releases4. Added Registry Metadata
server.json: MCP Registry server definitionio.github.deverman/focusrelaymcpb(GitHub releases distribution)fileSha256is currently a placeholder (all zeros) and must be updated after creating a release5. Added Documentation
docs/PUBLISHING_MCP_REGISTRY.md: Complete publishing guideMCP_REGISTRY_SETUP.md: Quick-start checklist (this exact list below)Why MCPB?
The MCP Registry supports several distribution methods (npm, PyPI, Docker/OCI, MCPB, etc.). MCPB is the right choice for FocusRelay because:
✅ Designed for prebuilt binaries distributed via GitHub Releases
✅ No need to publish to npm, PyPI, or other package registries
✅ Perfect for macOS-only native executables
✅ Already using GitHub Releases for Homebrew distribution
✅ Simple: just a ZIP containing the binary + manifest
The registry verifies the MCPB file exists and contains "mcp" in the URL (✓
FocusRelayMCPsatisfies this).Next Steps for Brent
🎯 Checklist
After this PR is merged, follow these steps to publish to the MCP Registry:
☐ 1. Create a New Release
Either push a version tag or use workflow dispatch:
The workflow will automatically create the
.mcpbfile and upload it to the release.☐ 2. Update
server.jsonwith the Real SHA256 HashAfter the release completes:
# Download the SHA256 checksum curl -LO https://github.com/deverman/FocusRelayMCP/releases/download/v0.13.0-beta/focusrelay-0.13.0-beta.mcpb.sha256 cat focusrelay-0.13.0-beta.mcpb.sha256Edit
server.json:versionto"0.13.0-beta"(match the release)packages[0].identifierURL to match the release versionfileSha256with the actual hash from the.sha256fileCommit and push:
git add server.json git commit -m "Update server.json for v0.13.0-beta release" git push origin main☐ 3. Install
mcp-publisherCLI☐ 4. Authenticate with GitHub
Opens a browser for OAuth. This verifies you own the
devermannamespace.☐ 5. Validate
server.jsonChecks schema, version format, and package URL accessibility.
☐ 6. Publish to the Registry
This uploads the metadata to
registry.modelcontextprotocol.io. The registry will:.mcpbfile exists at the specified URLFor Future Releases
After the initial setup, publishing new versions is simple:
.mcpbcreation)server.jsonwith the new version and SHA256mcp-publisher publishTesting
You can test the MCPB packaging after merging:
.mcpbfilemanifest.json,focusrelay,FocusRelayBridge.omnijs/,README.mdReferences
docs/PUBLISHING_MCP_REGISTRY.mdMCP_REGISTRY_SETUP.mdReady to merge! Everything is set up. After merging, just follow the checklist above to publish FocusRelay to the official MCP Registry.