HTTP transport, platform-specific configuration, and template variables
This section covers advanced topics for tool authors who need more control over how their tools run and are configured.
MCP tools typically communicate over stdio, where the host spawns the tool as a subprocess. HTTP transport allows tools to run as remote services or persistent HTTP servers instead. This enables deployment scenarios like cloud-hosted tools, shared tool instances, and OAuth-authenticated services. HTTP transport is an MCPBX extension — manifests that use it produce .mcpbx bundles.
Tools that need different configuration on different operating systems or CPU architectures can use multi-platform support. Binary tools need separate executables for each platform. Python tools might need different commands on Windows versus Unix. The manifest supports both OS-level and architecture-level overrides, and the CLI can pack and publish platform-specific bundles.
Manifest values often need to reference things that are not known until runtime, like the installation directory, user-provided configuration, or system-allocated ports. Template variables let you use placeholders like ${__dirname} and ${user_config.api_key} in your manifest. Basic variable substitution is part of the MCPB spec. Template functions like base64() and basicAuth() and the ${system_config.*} namespace are MCPBX extensions.