Add support to publish servers as MCP Bundles#1681
Open
Conversation
…nd update .NET SDK usage
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces end-to-end infrastructure to package MCP servers as MCP Bundles (.mcpb), sign them via ESRP detached PKCS#7 signing, publish bundles to GitHub Releases, and surface MCPB entries in server.json (including SHA256 hash updates during publishing).
Changes:
- Added MCPB packaging/signing PowerShell scripts and new pipeline job templates to pack, sign, verify, and publish
.mcpbartifacts. - Added per-server MCPB manifests/icons and updated server registry metadata (
server.json) to include MCPB package entries. - Added/updated documentation describing MCPB packaging/signing and updated engineering docs/pipeline parameters to support
PackageMCPB.
Reviewed changes
Copilot reviewed 24 out of 28 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| servers/Template.Mcp.Server/server.json | Adds MCPB package entries (URLs + SHA placeholders) to registry metadata. |
| servers/Template.Mcp.Server/mcpb/servericon.png | Adds MCPB icon asset for Template server. |
| servers/Template.Mcp.Server/mcpb/manifest.json | Adds MCPB bundle manifest for Template server. |
| servers/Template.Mcp.Server/build.yml | Introduces PackageMCPB parameter wiring for Template pipeline. |
| servers/Fabric.Mcp.Server/mcpb/servericon.png | Adds MCPB icon asset for Fabric server. |
| servers/Fabric.Mcp.Server/mcpb/manifest.json | Adds MCPB bundle manifest for Fabric server. |
| servers/Fabric.Mcp.Server/build.yml | Introduces PackageMCPB parameter wiring for Fabric pipeline. |
| servers/Azure.Mcp.Server/server.json | Adds MCPB package entries (URLs + SHA placeholders) to registry metadata. |
| servers/Azure.Mcp.Server/mcpb/servericon.png | Adds MCPB icon asset for Azure server. |
| servers/Azure.Mcp.Server/mcpb/manifest.json | Adds MCPB bundle manifest for Azure server. |
| servers/Azure.Mcp.Server/changelog-entries/1770669516879.yaml | Adds changelog entry noting MCPB support. |
| servers/Azure.Mcp.Server/build.yml | Enables PackageMCPB by default for Azure pipeline. |
| eng/scripts/Verify-McpbSignatures.ps1 | Adds MCPB signature verification script (mcpb info/verify). |
| eng/scripts/Update-ServerJsonMcpbHashes.ps1 | Adds script to compute SHA256 for signed bundles and update server.json. |
| eng/scripts/Stage-McpbForSigning.ps1 | Adds staging script for ESRP detached signing workflow. |
| eng/scripts/Pack-Mcpb.ps1 | Adds packaging script to generate .mcpb bundles from trimmed binaries + manifests. |
| eng/scripts/New-ServerJson.ps1 | Updates server.json generation to populate MCPB download URLs. |
| eng/scripts/Apply-McpbSignatures.ps1 | Adds script to embed detached PKCS#7 signatures into MCPB format. |
| eng/pipelines/templates/jobs/update-mcp-repository.yml | Updates MCP repository publish job to apply MCPB SHA256 hashes. |
| eng/pipelines/templates/jobs/sign-and-pack.yml | Adds PackageMCPB parameter and MCPB pack/sign job inclusion. |
| eng/pipelines/templates/jobs/release.yml | Adds MCPB publishing job and wires MCPB into release flow. |
| eng/pipelines/templates/jobs/mcpb/release-mcpb.yml | Adds job template to upload signed .mcpb assets to GitHub Releases. |
| eng/pipelines/templates/jobs/mcpb/pack-and-sign-mcpb.yml | Adds job template to pack, ESRP-sign, apply signatures, and verify MCPB bundles. |
| eng/pipelines/templates/common.yml | Plumbs PackageMCPB parameter through common pipeline template. |
| eng/pipelines/templates/1es-redirect.yml | Enables 1ES golang internal module proxy feature flag. |
| eng/README.md | Documents MCPB artifact type and related scripts/pipelines. |
| docs/design/mcpb-packaging-and-signing-via-esrp.md | Adds detailed design document for MCPB packaging/signing via ESRP. |
| .gitignore | Ignores .vscode/settings.json. |
hallipr
reviewed
Feb 11, 2026
hallipr
reviewed
Feb 11, 2026
hallipr
reviewed
Feb 11, 2026
hallipr
reviewed
Feb 11, 2026
conniey
reviewed
Feb 11, 2026
conniey
reviewed
Feb 11, 2026
conniey
reviewed
Feb 11, 2026
conniey
reviewed
Feb 11, 2026
hallipr
reviewed
Feb 18, 2026
hallipr
reviewed
Feb 18, 2026
hallipr
approved these changes
Feb 19, 2026
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.
What does this PR do?
This PR implements end-to-end MCPB (MCP Bundle) packaging and signing infrastructure using Microsoft's ESRP (Enterprise Signing and Release Pipeline) service. MCPB is a standardized bundle format for distributing MCP servers, similar to Chrome extensions (.crx) or VS Code extensions (.vsix).
Documentation
PowerShell Scripts
Pack-Mcpb.ps1- Packages trimmed and self-contained server binaries into MCPB formatStage-McpbForSigning.ps1- Prepares MCPB files for ESRP signingApply-McpbSignatures.ps1- Applies ESRP detached signatures to MCPB filesVerify-McpbSignatures.ps1- Validates MCPB signaturesUpdate-ServerJsonMcpbHashes.ps1- Updatesserver.jsonwith MCPB hashesNew-ServerJson.ps1- Added entries for MCPB filesPipeline Templates
pack-and-sign-mcpb.yml- Main packaging and signing jobrelease-mcpb.yml- Release MCPB files to GitHub releasescommon.ymlrelease.ymlsign-and-pack.ymlupdate-mcp-repository.ymlbuild.yml1es-reditect- Fixed issue with Go package downloads. Module downloads now go through Microsoft's internal proxy server instead of going directly to the public internet (proxy.golang.org).Server Manifests
manifest.jsonfor all servers. These files serve as a base that gets updated during release to include the most recent server metadata (version, tools, etc.).server.jsonfor Azure and Template servers to list MCP Bundles in the official MCP registry.Testing
mcpb verifyvalidates signed bundlesGitHub issue number?
Fixes: #128
Pre-merge Checklist
servers/Azure.Mcp.Server/CHANGELOG.mdand/orservers/Fabric.Mcp.Server/CHANGELOG.mdfor product changes (features, bug fixes, UI/UX, updated dependencies)servers/Azure.Mcp.Server/README.mdand/orservers/Fabric.Mcp.Server/README.mddocumentationeng/scripts/Process-PackageReadMe.ps1. See Package README/servers/Azure.Mcp.Server/docs/azmcp-commands.mdand/or/docs/fabric-commands.md.\eng\scripts\Update-AzCommandsMetadata.ps1to update tool metadata in azmcp-commands.md (required for CI)ToolDescriptionEvaluatorand obtained a score of0.4or more and a top 3 ranking for all related test promptsconsolidated-tools.json/servers/Azure.Mcp.Server/docs/e2eTestPrompts.mdcrypto mining, spam, data exfiltration, etc.)/azp run mcp - pullrequest - liveto run Live Test Pipeline