Quick reference for maintaining npm and pip packages for just-mcp.
When changes are pushed to main branch with conventional commits:
- CI runs tests
- Release workflow creates GitHub release with version bump
- Binary build workflow creates multi-platform binaries
- Binaries are uploaded to GitHub release
# Use the helper script
./scripts/publish-packages.sh 0.1.0
# Or manually:
# npm
cd npm && npm version 0.1.0 --no-git-tag-version
# Python
# Edit python/pyproject.toml and python/just_mcp/__init__.pySee TESTING.md for comprehensive testing instructions.
Quick tests:
# npm
cd npm && npm pack && npm install -g just-mcp-0.1.0.tgz
# Python
cd python && python -m build && pip install dist/just_mcp-0.1.0-py3-none-any.whlcd npm
# Login to npm (first time only)
npm login
# Publish
npm publish
# Verify
npm info just-mcpcd python
# Install twine (first time only)
pip install twine
# Build if not already built
python -m build
# Upload to PyPI
python -m twine upload dist/*
# Verify
pip index versions just-mcp# npm
npx just-mcp@latest --version
# Python
uvx just-mcp@latest --version- Update main README.md with new version numbers if needed
- Add to CHANGELOG.md if not auto-generated
- Update any version-specific documentation
If GitHub release structure changes, update:
npm/install.js-downloadUrlconstructionpython/just_mcp/__init__.py-download_binary()function
-
Add to
PLATFORM_MAPin:npm/install.jspython/just_mcp/__init__.py
-
Add to
.github/workflows/build-binaries.ymlmatrix -
Test on new platform
Enable verbose logging:
# npm
npm install --loglevel verbose just-mcp
# Python
pip install --verbose just-mcpCheck package contents:
# npm
npm pack just-mcp
tar -tzf just-mcp-0.1.0.tgz
# Python
unzip -l dist/just_mcp-0.1.0-py3-none-any.whlKeep versions synchronized across:
Cargo.toml(main crate)just-mcp-lib/Cargo.toml(library crate)npm/package.jsonpython/pyproject.tomlpython/just_mcp/__init__.py
Use the publish-packages.sh script to update npm and Python versions automatically.
- Requires npm account with publish permissions for
just-mcppackage - First publish: Package name must be available
- Scope packages: Can use
@promptexecution/just-mcpif needed
- Requires PyPI account with publish permissions for
just-mcppackage - First publish: Package name must be available
- Can use TestPyPI for testing:
python -m twine upload --repository testpypi dist/*
# Deprecate specific version
npm deprecate just-mcp@0.1.0 "Bug in binary download"
# Publish fix as patch version
npm version patch
npm publishPyPI does not allow deleting published versions. Options:
- Publish a new fixed version (recommended)
- Yank the release (makes it unavailable for new installs but keeps it for existing)
For issues with package distribution:
- GitHub Issues: https://github.com/promptexecution/just-mcp/issues
- Check npm package page: https://www.npmjs.com/package/just-mcp
- Check PyPI package page: https://pypi.org/project/just-mcp/
Consider automating in the future:
- Auto-publish to npm after GitHub release
- Auto-publish to PyPI after GitHub release
- Auto-sync version numbers across all package files
- Automated integration testing in CI/CD