diff --git a/docs/design/mcpb-packaging-and-signing-via-esrp.md b/docs/design/mcpb-packaging-and-signing-via-esrp.md index 86c522ba26..9852b46bfb 100644 --- a/docs/design/mcpb-packaging-and-signing-via-esrp.md +++ b/docs/design/mcpb-packaging-and-signing-via-esrp.md @@ -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? @@ -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 │ │ ┌──────────────────────────────┐ │ @@ -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) @@ -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 ``` @@ -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. diff --git a/eng/README.md b/eng/README.md index e3f7e1c5b7..54b2e1c021 100644 --- a/eng/README.md +++ b/eng/README.md @@ -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//mcpb/` +- requires a `manifest.json` and `icon.png` under `servers//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. diff --git a/eng/scripts/Pack-Mcpb.ps1 b/eng/scripts/Pack-Mcpb.ps1 index d8d60c6889..b285c383df 100644 --- a/eng/scripts/Pack-Mcpb.ps1 +++ b/eng/scripts/Pack-Mcpb.ps1 @@ -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." } diff --git a/servers/Azure.Mcp.Server/images/azureicon.png b/servers/Azure.Mcp.Server/images/azureicon.png index b943f262a6..a09ce527c8 100644 Binary files a/servers/Azure.Mcp.Server/images/azureicon.png and b/servers/Azure.Mcp.Server/images/azureicon.png differ diff --git a/servers/Azure.Mcp.Server/mcpb/manifest.json b/servers/Azure.Mcp.Server/mcpb/manifest.json index 2480d38cb9..f89a8d5402 100644 --- a/servers/Azure.Mcp.Server/mcpb/manifest.json +++ b/servers/Azure.Mcp.Server/mcpb/manifest.json @@ -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", diff --git a/servers/Fabric.Mcp.Server/fabric-icon.png b/servers/Fabric.Mcp.Server/fabric-icon.png index 2c13c94740..53391c2c93 100644 Binary files a/servers/Fabric.Mcp.Server/fabric-icon.png and b/servers/Fabric.Mcp.Server/fabric-icon.png differ diff --git a/servers/Fabric.Mcp.Server/mcpb/manifest.json b/servers/Fabric.Mcp.Server/mcpb/manifest.json index af875b93f0..6147fcc4f2 100644 --- a/servers/Fabric.Mcp.Server/mcpb/manifest.json +++ b/servers/Fabric.Mcp.Server/mcpb/manifest.json @@ -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", diff --git a/servers/Template.Mcp.Server/mcpb/manifest.json b/servers/Template.Mcp.Server/mcpb/manifest.json index 10a41a9706..0eaaa043f4 100644 --- a/servers/Template.Mcp.Server/mcpb/manifest.json +++ b/servers/Template.Mcp.Server/mcpb/manifest.json @@ -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",