Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/superradcompany/tool-cli/llms.txt

Use this file to discover all available pages before exploring further.

Before publishing, you validate your manifest and pack your project into a bundle. The bundle is the artifact that gets uploaded to the registry and downloaded by users.

Validate

tool validate checks your manifest.json for errors and warnings without producing any output file.
tool validate                     # Validate current directory
tool validate ./my-tool           # Validate specific path
tool validate --strict            # Treat warnings as errors
tool validate --json              # JSON output for CI/CD
tool validate -q                  # Quiet mode (errors only)

--strict

Promotes all warnings to errors. Useful in CI to enforce manifest quality.

--json

Outputs structured JSON — ideal for parsing results in scripts or pipelines.
Run validation as a pre-publish check, or integrate it into your CI pipeline with --json for machine-readable output.

Pack

tool pack bundles your project into a single distributable file. It runs validation first by default, then creates the archive.
tool pack                         # Pack current directory
tool pack ./my-tool               # Pack specific directory
tool pack -o release.mcpb         # Custom output filename
tool pack --no-validate           # Skip validation step
tool pack -v                      # Show files being added
tool pack --multi-platform        # Pack bundles for each platform override

Output filename

By default, tool pack creates <name>-<version>.mcpb (or .mcpbx) in the current directory. Use -o to specify a custom path:
tool pack -o ./dist/my-tool-1.0.0.mcpb
The -o flag is ignored when using --multi-platform. Platform-specific filenames are generated automatically.

Verbose mode

Pass -v to see every file being added to the archive:
tool pack -v
This is helpful for confirming that no unexpected files are included and that your .mcpbignore patterns are working correctly.

Skipping validation

In automated environments where you have already run tool validate separately, skip it with --no-validate:
tool validate --strict && tool pack --no-validate

Bundle formats

tool-cli automatically picks the right file format based on your manifest.

.mcpb (MCPB)

The standard MCPB format. Used for bundled servers that:
  • Run over stdio transport
  • Have an entry_point and server.type
  • Do not use system_config, mcp_config.url, mcp_config.headers, or mcp_config.oauth_config
A .mcpb file is a zip archive containing the manifest.json and all bundled server files.

.mcpbx (MCPBX)

The MCPBX extension format. tool-cli produces .mcpbx automatically whenever the manifest uses any feature beyond the base MCPB spec:
  • Reference mode — no entry_point or no server.type
  • HTTP transportserver.transport: "http"
  • system_config present
  • mcp_config extensionsurl, headers, or oauth_config present
The separate extension allows MCP hosts to know upfront whether they support the manifest before attempting to install it. You never need to choose the format manually — tool pack and tool publish handle it for you.
Reference-mode tools (pointing to npx, uvx, or a remote URL) always produce .mcpbx and do not need multi-platform publishing, since they bundle no platform-specific code.

Multi-platform packing

If your tool has platform-specific binaries or native addons, use --multi-platform to create one bundle per platform defined in your manifest’s platform_overrides:
tool pack --multi-platform
This produces a bundle for each platform entry in server.mcp_config.platform_overrides, plus a universal fallback. See Multi-platform publishing for details.

Build docs developers (and LLMs) love