Releasing¶
This guide covers how to create a release of the @drawio-mcp/server MCP server package.
How It Works¶
Releases are driven by git tags. When a tag matching vX.Y.Z is pushed to GitHub, a GitHub Actions workflow automatically:
- Builds the
drawio-jsapiSDK from TypeScript source - Vendors the built SDK into the MCP server package
- Runs
npm packto produce a distributable tarball - Creates a GitHub Release with the tarball attached
The tarball is the same artifact that would be published to npmjs.com. Users install it directly via npx.
Prerequisites¶
- Push access to the repository
- Python 3 installed (for the tagging script)
- All changes committed and pushed to
main
Creating a Release¶
1. Update the version¶
Edit the version field in mcp/package.json:
Commit the change:
2. Tag and push¶
Run the tagging script via Make:
This reads the version from mcp/package.json, creates a v0.1.0 tag, and pushes it to GitHub. The output looks like:
✓ Created tag: v0.1.0
✓ Pushed tag: v0.1.0
GitHub Actions will now build and release mcp@0.1.0
→ https://github.com/aws-samples/sample-drawio-mcp/releases/tag/v0.1.0
3. Verify the release¶
After a few minutes, check the Releases page to confirm:
- The release was created with auto-generated release notes
- Two tarballs are attached:
drawio-mcp-server-0.1.0.tgzanddrawio-mcp-server-latest.tgz
Test the install:
npx -y https://github.com/aws-samples/sample-drawio-mcp/releases/latest/download/drawio-mcp-server-latest.tgz
Testing a Release Before Tagging¶
The release workflow can be triggered manually against any branch to validate the build without creating a release.
- Push the branch to GitHub
- Go to Actions → Release MCP Server → Run workflow
- Select the branch and click Run workflow
- Once complete, download the tarball from the Artifacts section of the workflow run
- Test locally:
Note
Manual workflow runs upload the tarball as a workflow artifact. They do not create a GitHub Release.
Versioning¶
The project uses semantic versioning. The version in mcp/package.json is the single source of truth.
| Change type | Version bump | Example |
|---|---|---|
| Bug fixes, minor tweaks | Patch | 0.0.1 → 0.0.2 |
| New tools, features | Minor | 0.0.2 → 0.1.0 |
| Breaking changes | Major | 0.1.0 → 1.0.0 |
Warning
The jsapi/package.json version is managed separately. Bump it independently when the SDK itself changes.
Troubleshooting¶
Tag already exists — If the tag for the current version already exists, either bump the version in mcp/package.json or delete the existing tag:
Workflow failed — Check the Actions tab for build logs. Common causes are jsapi build failures or missing dependencies.
Tarball missing from release — Verify the files field in mcp/package.json includes "src" and "vendor". Run npm pack --dry-run locally in the mcp/ directory to inspect what would be included.