Versioning
mpak uses semantic versioning (semver) for all packages. Understanding how versions work helps you publish reliably and consume safely.
Semantic Versioning
Section titled “Semantic Versioning”Every package version follows MAJOR.MINOR.PATCH:
| Bump | When | Example |
|---|---|---|
| MAJOR | Breaking changes (removed tools, changed behavior) | 1.0.0 -> 2.0.0 |
| MINOR | New features (added tools, new capabilities) | 1.0.0 -> 1.1.0 |
| PATCH | Bug fixes (no behavior change) | 1.0.0 -> 1.0.1 |
For MCP servers, a “breaking change” means: tools were removed, tool schemas changed incompatibly, or required configuration changed.
Version Resolution
Section titled “Version Resolution”When you run a package without specifying a version, mpak resolves to the latest published version:
# Gets the latest versionmpak bundle run @org/server
# Gets a specific versionmpak bundle run @org/server@1.2.0Version Pinning
Section titled “Version Pinning”Pin to a specific version in your MCP client configuration to ensure reproducible behavior:
{ "mcpServers": { "postgres": { "command": "mpak", "args": ["bundle", "run", "@nimblebraininc/postgres-mcp@1.2.0"] } }}This guarantees the same version runs every time, regardless of newer releases.
When to pin:
- Production environments where stability matters
- CI/CD pipelines where reproducibility is critical
- When a specific version is known to work with your setup
When not to pin:
- Development environments where you want the latest features
- When you’re evaluating a package for the first time
Pre-release Versions
Section titled “Pre-release Versions”Version Immutability
Section titled “Version Immutability”Once a version is published, it cannot be overwritten. Publishing @org/server@1.0.0 a second time will be rejected by the registry.
This is critical for supply chain security: if you’ve verified that @org/server@1.0.0 is safe, you can trust that it won’t change.
To fix a bug in a published version, publish a new version:
1.0.0 <- published, immutable1.0.1 <- bug fixDeprecation
Section titled “Deprecation”Deprecation marks a version or package as no longer recommended. Deprecated packages still work (they can be downloaded and run) but display a warning.