Skip to content

Conversation

@triepod-ai
Copy link

Summary

Adds Model Context Protocol Bundle (MCPB) support enabling single-click installation in Claude Desktop and other MCP hosts.

Addresses #1470

Changes

  • Added manifest.json with server configuration
  • Added icon.png for display in Claude Desktop
  • Added .mcpbignore for build exclusions
  • Added pre-built github-mcp-server-0.28.1.mcpb bundle (31.4MB)

What is MCPB?

MCPB (MCP Bundle) is a packaging format that enables easy distribution of MCP servers. Similar to browser extensions (.crx) or VS Code extensions (.vsix), users can install the server with a single click.

Bundle Details

Size: 31.4MB (compressed), 89.3MB (unpacked)

Platform support: All 6 variants included:

  • darwin-arm64, darwin-x64
  • linux-arm64, linux-x64
  • win32-arm64, win32-x64

User-configurable options (via Claude Desktop installation dialog):

  • GitHub Personal Access Token (required, sensitive)
  • Toolsets selection (repos, issues, pull_requests, actions, etc.)
  • GitHub Enterprise host (for self-hosted GitHub)
  • Read-only mode
  • Dynamic toolsets

Testing

  • Bundle validates successfully (mcpb validate)
  • Bundle packs successfully (mcpb pack)
  • Tested installation in Claude Desktop (Windows)
  • All tools functional

Installation

Download the .mcpb file and double-click to install in Claude Desktop.

Building the Bundle

If you prefer to build from source:

npx @anthropic-ai/mcpb validate manifest.json
npx @anthropic-ai/mcpb pack .

🤖 Generated with Claude Code

Add Model Context Protocol Bundle (MCPB) support enabling single-click
installation in Claude Desktop and other MCP hosts.

Changes:
- Add manifest.json with server configuration and user_config for all env vars
- Add icon.png for display in Claude Desktop
- Add .mcpbignore for build exclusions
- Add pre-built github-mcp-server-0.28.1.mcpb bundle (31.4MB)

Includes binaries for all 6 platform/architecture variants:
- darwin-arm64, darwin-x64
- linux-arm64, linux-x64
- win32-arm64, win32-x64

User-configurable options exposed:
- GitHub Personal Access Token (required)
- Toolsets selection
- GitHub Enterprise host
- Read-only mode
- Dynamic toolsets

Addresses github#1470

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@triepod-ai triepod-ai requested a review from a team as a code owner January 18, 2026 15:39
Copilot AI review requested due to automatic review settings January 18, 2026 15:39
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds MCPB (Model Context Protocol Bundle) packaging to enable single-click installation of the GitHub MCP Server in Claude Desktop and other MCP hosts. The bundle format is similar to browser or VS Code extensions, packaging the server binaries and configuration into a single distributable file.

Changes:

  • Added manifest.json with MCPB metadata, server configuration, and user-configurable options
  • Added icon.png for visual display in Claude Desktop
  • Added .mcpbignore to exclude unnecessary files from the bundle
  • Added pre-built github-mcp-server-0.28.1.mcpb bundle (31.4MB)

Reviewed changes

Copilot reviewed 2 out of 4 changed files in this pull request and generated 5 comments.

File Description
manifest.json MCPB manifest defining server metadata, binary paths, platform support, environment variables, and user configuration schema
icon.png PNG icon image for display in MCP host applications
.mcpbignore Build exclusion rules specifying which files to omit from the bundle (source code, docs, CI configs, etc.)

Comment on lines +23 to +41
"entry_point": "bin/darwin-x64/github-mcp-server",
"mcp_config": {
"command": "${__dirname}/bin/darwin-x64/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${user_config.github_token}",
"GITHUB_TOOLSETS": "${user_config.github_toolsets}",
"GITHUB_HOST": "${user_config.github_host}",
"GITHUB_READ_ONLY": "${user_config.github_read_only}",
"GITHUB_DYNAMIC_TOOLSETS": "${user_config.github_dynamic_toolsets}"
},
"platform_overrides": {
"win32": {
"command": "${__dirname}/bin/win32-x64/github-mcp-server.exe"
},
"linux": {
"command": "${__dirname}/bin/linux-x64/github-mcp-server"
}
}
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The platform_overrides configuration only handles x64 architectures but the PR description claims "All 6 variants included" (darwin-arm64, darwin-x64, linux-arm64, linux-x64, win32-arm64, win32-x64). The current configuration will fail on ARM64 systems because:

  1. The default entry_point (line 23) and command (line 25) point to darwin-x64
  2. platform_overrides only specify win32 and linux without architecture variants
  3. No overrides exist for ARM64 architectures on any platform

This means ARM64 users will either get an error or the wrong binary will be executed. You need to add architecture-specific overrides or use a more sophisticated platform detection mechanism that handles both OS and architecture combinations.

Copilot uses AI. Check for mistakes.
{
"manifest_version": "0.3",
"name": "GitHub MCP Server",
"version": "0.28.1",
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The version "0.28.1" appears to be hardcoded and may not match the actual release version. The project uses GoReleaser with version templating (see .goreleaser.yaml line 12 which sets version via ldflags), and server.json uses a VERSION template variable. Consider whether this version should be dynamically set during the build process to ensure consistency across all release artifacts, or document how this version should be maintained when new releases are created.

Suggested change
"version": "0.28.1",
"version": "VERSION",

Copilot uses AI. Check for mistakes.
Comment on lines +84 to +92
"tools": [
{"name": "get_me", "description": "Get current authenticated user"},
{"name": "search_repositories", "description": "Search GitHub repositories"},
{"name": "get_repository", "description": "Get repository details"},
{"name": "list_issues", "description": "List issues in a repository"},
{"name": "create_issue", "description": "Create a new issue"},
{"name": "list_pull_requests", "description": "List pull requests"},
{"name": "create_pull_request", "description": "Create a pull request"}
]
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tools list only includes 7 sample tools, which is incomplete. According to the project documentation, the GitHub MCP Server provides many more tools across multiple toolsets (repos, issues, pull_requests, users, actions, code_security, etc.). While this might be intentional to show representative examples, it creates a discrepancy between what users see in the manifest and what's actually available. Consider either including all tools or clarifying in the description that this is a partial list.

Copilot uses AI. Check for mistakes.
"github_host": {
"type": "string",
"title": "GitHub Host",
"description": "For GitHub Enterprise Server (e.g., github.mycompany.com). Leave empty for github.com",
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The description for the GitHub Host configuration could be more specific. The format shown "github.mycompany.com" is missing the required "https://" prefix that the actual server code expects (as documented in the environment variables section). The description should specify the full format: "https://github.mycompany.com" to prevent user configuration errors.

Suggested change
"description": "For GitHub Enterprise Server (e.g., github.mycompany.com). Leave empty for github.com",
"description": "For GitHub Enterprise Server (must include \"https://\", e.g., https://github.mycompany.com). Leave empty for github.com",

Copilot uses AI. Check for mistakes.
"github_token": {
"type": "string",
"title": "GitHub Personal Access Token",
"description": "Create at github.com/settings/tokens with repo scope",
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The GitHub Personal Access Token description "Create at github.com/settings/tokens with repo scope" is incomplete. It doesn't mention that different scopes may be required depending on which toolsets are enabled. For example, the actions toolset requires "actions" scope, code_security requires "security_events" scope, etc. Consider providing a link to comprehensive documentation or listing the common scopes needed.

Suggested change
"description": "Create at github.com/settings/tokens with repo scope",
"description": "Create at github.com/settings/tokens. At minimum use the repo scope; additional scopes may be required for some toolsets (e.g., actions, security_events). See the README for full scope requirements.",

Copilot uses AI. Check for mistakes.
@SamMorrowDrums
Copy link
Collaborator

#1470

Until it works cross platform not certain we're going to run with it, but thank you for taking a look.

@triepod-ai
Copy link
Author

Thanks for the feedback @SamMorrowDrums!

I saw issue #63 and understand the interest in alternative approaches for binary distribution. The current MCPB spec uses platform_overrides which selects binaries by OS (process.platform) rather than architecture. This bundle works within that constraint:

How it handles architecture:

  • Bundles x64 binaries for darwin/win32/linux
  • macOS ARM64 (Apple Silicon): x64 runs via Rosetta 2 ✅
  • Windows ARM64: x64 runs via WoW64 ✅
  • Linux x64: runs natively ✅
  • Linux ARM64: unsupported (no built-in emulator, but extremely rare for Claude Desktop)

Testing:

  • Tested on macOS Apple Silicon - works well
  • Tested on Windows - works well

Bundle size: ~31MB (includes all platform variants)

Let me know if you'd like to move forward with this, or if you'd prefer to hold off. Happy to address the other review feedback either way.

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.

2 participants