v1.1.5
π― What's New
Full MCPB manifest spec coverage β the bundler now supports all optional fields from the MCPB manifest specification. Extension stores and clients can display richer listings with themed icons, screenshots, pre-install tool/prompt previews, and per-platform configuration β all driven from server.meta.json.
β MCPB Manifest Enhancements
Static tools and prompts arrays β the bundler scans tools/*/tool.meta.json and prompts/*/prompt.meta.json at bundle time and emits static tools and prompts arrays in manifest.json. Clients like Claude Desktop use these for pre-install previews ("this extension offers: search_files, read_file, ..."). Without them, the store listing was a blank box with just tools_generated: true.
icons array passthrough β when server.meta.json defines an icons array with {src, size, theme} objects, the bundler passes it through and copies referenced files into the bundle. Supports light/dark theme variants for proper dark mode rendering in extension stores.
screenshots passthrough β screenshot paths from server.meta.json are passed through and files are auto-copied into the bundle for store listings.
platform_overrides passthrough β per-platform command, args, and env overrides from server.meta.json are merged into server.mcp_config.platform_overrides. Enables cross-platform bundles that need .exe suffixes on Windows or DYLD_LIBRARY_PATH on macOS.
_meta passthrough β platform-specific client integration metadata with reverse-DNS keys (e.g., Windows Store package_family_name, static initialize/tools/list responses for faster cold starts).
localization passthrough β {resources, default_locale} for i18n of user-facing manifest fields.
All seven fields are emitted only when present in server.meta.json β no empty objects or nulls when absent.
π Bug Fixes
Registry cache epoch-boundary race β load_cache_if_empty in tools, resources, resource templates, and prompts called date +%s independently of the caller's captured timestamp. When the epoch second rolled over between the two calls, LAST_SCAN could exceed now, producing a negative cache age that satisfied any TTL check β silently skipping the disk scan. This caused intermittent failures where newly added tools weren't discovered until the next refresh cycle. Each function now uses the caller's timestamp to guarantee LAST_SCAN <= now.
π Documentation
docs/MCPB.mdupdated with all new optional fields, examples, and explanations- Manifest example expanded with
localization,platform_overrides,icons,screenshots,tools, andpromptssections - Changelog updated for
1.1.5
π¦ Upgrading
No breaking changes. Drop-in patch release for 1.1.4.
# Upgrade mcp-bash
curl -fsSL "https://raw.githubusercontent.com/yaniv-golan/mcp-bash-framework/v1.1.5/install.sh" | bash -s -- --yes --version "v1.1.5"
# Or via mcp-bash doctor
mcp-bash doctor --fixFull Changelog: v1.1.4...v1.1.5