Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions docs/design/mcpb-packaging-and-signing-via-esrp.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ bundle.mcpb (ZIP file)
│ ├── azmcp # Unix executable
│ ├── azmcp.exe # Windows executable
│ └── [dependencies] # All required DLLs and resources
└── servericon.png # Bundle icon
└── icon.png # Bundle icon
```

### Why Trimmed Binaries?
Expand Down Expand Up @@ -157,7 +157,7 @@ The signature signs the entire file content (including the pre-set EOCD comment_
│ │ Copy icon │ ├── manifest.json │
│ └────────────────────────┘ ├── server/ │
│ │ └── [trimmed binaries] │
│ └── servericon.png │
│ └── icon.png │
│ │
│ 3. Package with MCPB CLI │
│ ┌──────────────────────────────┐ │
Expand Down Expand Up @@ -229,7 +229,7 @@ Location: `eng/scripts/Pack-Mcpb.ps1`
1. Create staging directory structure
2. Copy trimmed binaries to `server/` subdirectory
3. Copy `manifest.json` (uses `platform_overrides` in mcp_config for cross-platform support)
4. Copy icon and assets. Rename icon to `servericon.png`.
4. Copy icon and assets. Rename icon to `icon.png`.
5. Copy LICENSE and NOTICE.txt into each bundle
6. Validate with `mcpb validate`
7. Package with `mcpb pack --update` (auto-populates tools array)
Expand Down Expand Up @@ -321,17 +321,17 @@ servers/
├── Azure.Mcp.Server/
│ ├── mcpb/
│ │ ├── manifest.json # MCPB manifest
│ │ └── servericon.png # Server icon
│ │ └── icon.png # Server icon
│ └── server.json # MCP Registry config with MCPB entries
├── Fabric.Mcp.Server/
│ ├── mcpb/
│ │ ├── manifest.json # MCPB manifest
│ │ └── servericon.png # Server icon
│ │ └── icon.png # Server icon
│ └── server.json # MCP Registry config with MCPB entries
└── Template.Mcp.Server/
├── mcpb/
│ ├── manifest.json # MCPB manifest
│ └── servericon.png # Server icon
│ └── icon.png # Server icon
└── server.json # MCP Registry config with MCPB entries
```

Expand Down Expand Up @@ -424,7 +424,7 @@ All servers have complete `manifest.json` files with:
- `manifest_version: "0.3"` for Claude Desktop compatibility
- `platform_overrides` for cross-platform executable paths
- Proper `entry_point` and `mcp_config.command` paths
- Server icon (`servericon.png`) in the mcpb directory
- Server icon (`icon.png`) in the mcpb directory

The signing script auto-discovers servers based on the `servers/` directory structure and the presence of `manifest.json` files.

Expand Down
2 changes: 1 addition & 1 deletion eng/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ Zip files for each server in a release are added to the GitHub release assets.
- packed with [`Pack-Mcpb.ps1`](https://github.com/microsoft/mcp/blob/main/eng/scripts/Pack-Mcpb.ps1)
- signed via [`pack-and-sign-mcpb.yml`](https://github.com/microsoft/mcp/blob/main/eng/pipelines/templates/jobs/mcpb/pack-and-sign-mcpb.yml)
- released via [`release-mcpb.yml`](https://github.com/microsoft/mcp/blob/main/eng/pipelines/templates/jobs/mcpb/release-mcpb.yml)
- requires a `manifest.json` and `servericon.png` under `servers/<ServerName>/mcpb/`
- requires a `manifest.json` and `icon.png` under `servers/<ServerName>/mcpb/`

MCPB files are signed MCP bundles that can be installed directly into Claude Desktop with a single click. Each platform (win-x64, linux-x64, osx-x64, osx-arm64) produces a separate `.mcpb` file containing trimmed server binaries. The bundles are signed using ESRP's Pkcs7DetachedSign operation and verified with the `mcpb verify` CLI.

Expand Down
4 changes: 2 additions & 2 deletions eng/scripts/Pack-Mcpb.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -179,11 +179,11 @@ Processing MCPB packaging:

$manifest | ConvertTo-Json -Depth 100 | Set-Content "$stagingDir/manifest.json" -NoNewline

# Copy and rename icon to servericon.png (required name for MCPB bundles)
# Copy and rename icon to icon.png (required name for MCPB bundles)
$packageIconPath = "$RepoRoot/$($server.packageIcon)"
if (Test-Path $packageIconPath) {
LogInfo "Copying icon from $packageIconPath..."
Copy-Item -Path $packageIconPath -Destination "$stagingDir/servericon.png" -Force
Copy-Item -Path $packageIconPath -Destination "$stagingDir/icon.png" -Force
} else {
LogWarning "No icon found for $($server.name). MCPB may not validate."
}
Expand Down
Binary file modified servers/Azure.Mcp.Server/images/azureicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion servers/Azure.Mcp.Server/mcpb/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"homepage": "https://learn.microsoft.com/azure/developer/azure-mcp-server/get-started",
"documentation": "https://learn.microsoft.com/azure/developer/azure-mcp-server",
"support": "https://github.com/microsoft/mcp/issues",
"icon": "./servericon.png",
"icon": "./icon.png",
"server": {
"type": "binary",
"entry_point": "server/azmcp",
Expand Down
Binary file modified servers/Fabric.Mcp.Server/fabric-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion servers/Fabric.Mcp.Server/mcpb/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"homepage": "https://github.com/microsoft/mcp/tree/main/servers/Fabric.Mcp.Server",
"documentation": "https://github.com/microsoft/mcp/tree/main/servers/Fabric.Mcp.Server#readme",
"support": "https://github.com/microsoft/mcp/issues",
"icon": "./servericon.png",
"icon": "./icon.png",
"server": {
"type": "binary",
"entry_point": "server/fabmcp",
Expand Down
2 changes: 1 addition & 1 deletion servers/Template.Mcp.Server/mcpb/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"homepage": "https://github.com/microsoft/mcp/tree/main/servers/Template.Mcp.Server",
"documentation": "https://github.com/microsoft/mcp/tree/main/servers/Template.Mcp.Server#readme",
"support": "https://github.com/microsoft/mcp/issues",
"icon": "./servericon.png",
"icon": "./icon.png",
"server": {
"type": "binary",
"entry_point": "server/mcptmp",
Expand Down
Loading