This document explains how to publish new versions of the CodeAlive MCP server.
To publish a new version:
-
Update version in
pyproject.toml:version = "0.3.0" # Change this number
-
Commit and push:
git add pyproject.toml git commit -m "Bump version to 0.3.0" git push -
Done! The rest happens automatically.
When you push a version change to main, the GitHub Action:
- ✅ Tests - Runs pytest with coverage
- 🏗️ Builds - Creates Docker image for multiple platforms
- 🏷️ Tags - Creates git tag
v0.3.0automatically - 📦 Publishes - Pushes to:
- GitHub Container Registry (
ghcr.io/codealive-ai/codealive-mcp) - MCP Registry (
io.github.codealive-ai/codealive-mcp)
- GitHub Container Registry (
- 📝 Releases - Creates GitHub release with usage examples
Users can access your MCP server in two ways:
{
"name": "io.github.codealive-ai/codealive-mcp",
"transport": {
"type": "stdio",
"command": "docker",
"args": [
"run", "--rm", "-i", "-e", "CODEALIVE_API_KEY",
"ghcr.io/codealive-ai/codealive-mcp:v0.3.0"
]
},
"env": {
"CODEALIVE_API_KEY": "your-api-key-here"
}
}Replace
v0.3.0with the version being published.
{
"name": "io.github.codealive-ai/codealive-mcp",
"transport": {
"type": "http",
"url": "https://mcp.codealive.ai/api"
},
"headers": {
"Authorization": "Bearer your-api-key-here"
}
}.github/workflows/main.yml # Single workflow handles everything
server.json # MCP Registry configuration (hybrid)
pyproject.toml # Python package config (version source)
Dockerfile # Container with MCP validation label
- Hybrid deployment with both Docker and remote options
- Auto-synced version from pyproject.toml
- Validation ensures proper structure
- Version control - change here to trigger releases
- Dependencies and Python package metadata
- Smart publishing - only when version changes
- Multi-platform Docker builds (amd64 + arm64)
- OIDC authentication for MCP Registry
Test locally before pushing:
# Validate server.json structure
python -c "
import json
with open('server.json') as f:
data = json.load(f)
print('✓ Valid JSON')
print(f'Name: {data[\"name\"]}')
print(f'Version: {data[\"version\"]}')
"
# Run tests
python -m pytest src/tests/ -v
# Build Docker image locally
docker build -t codealive-mcp-test .- GitHub Actions: Check workflow runs
- Releases: View at https://github.com/CodeAlive-AI/codealive-mcp/releases
- Docker Images: Check https://github.com/CodeAlive-AI/codealive-mcp/pkgs/container/codealive-mcp
- MCP Registry: Server appears as
io.github.codealive-ai/codealive-mcp
Workflow didn't trigger publishing?
- Check if version in
pyproject.tomlactually changed - Ensure push was to
mainbranch - Look for existing git tag with same version
MCP Registry publishing failed?
- Verify
server.jsonstructure is valid - Check GitHub OIDC permissions are enabled
- Ensure namespace
io.github.codealive-aiis correct
Docker build failed?
- Test locally:
docker build . - Check platform compatibility (we build for amd64 + arm64)
- Verify base image and dependencies are available