Skip to main content
Glama

release-doc-mcp

MCP server that:

  1. Given a repo name, finds the image tag + version from the latest successful GitHub Actions workflow run.

  2. Creates a Confluence page documenting that version, image tag, and a link to the workflow run.

How version/image tag extraction works

The GitHub client fetches the latest successful run of a workflow (optionally filtered by workflow file and branch), then scans each job's logs for lines matching two regexes (defaults below), returning the first job where both match:

  • Version: Version:\s*(\S+)

  • Image tag: Image tag:\s*(\S+)

These defaults match workflows that print lines like Image tag: myapp:1.2.3 and Version: 1.2.3 to the job log (e.g. via echo or $GITHUB_STEP_SUMMARY plus a plain echo). If your workflow logs a different format, override RELEASE_VERSION_REGEX / RELEASE_IMAGE_TAG_REGEX in your environment.

Related MCP server: Confluence MCP Server

Setup

python -m venv .venv
./.venv/Scripts/pip install -e ".[dev]"   # Windows
# source .venv/bin/activate && pip install -e ".[dev]"  # macOS/Linux
cp .env.example .env

Fill in .env:

  • GITHUB_TOKEN — a PAT with actions:read on the target repos.

  • CONFLUENCE_BASE_URL — e.g. https://your-domain.atlassian.net/wiki.

  • CONFLUENCE_EMAIL / CONFLUENCE_API_TOKEN — Confluence Cloud API token auth.

  • CONFLUENCE_SPACE_KEY — default space for created pages.

  • CONFLUENCE_PARENT_PAGE_ID — optional parent page to nest pages under.

Running the server

./.venv/Scripts/release-doc-mcp   # Windows
# .venv/bin/release-doc-mcp       # macOS/Linux

It speaks MCP over stdio. To use it from Claude Code / Claude Desktop, add it as an MCP server, e.g. in Claude Code:

claude mcp add release-doc -- /full/path/to/.venv/Scripts/release-doc-mcp.exe

(Configure GITHUB_TOKEN/CONFLUENCE_* in your shell/user environment, or as env entries in the MCP server config, so they're available to the process.)

Tools

  • get_image_version(repo, workflow_file="", branch="") — returns version, image tag, and workflow run info for a repo.

  • create_confluence_release_page(repo, version, image_tag, workflow_run_url, workflow_name="", job_name="", space_key="", parent_page_id="") — creates a Confluence page for an already-known version/tag.

  • document_release(repo, workflow_file="", branch="", space_key="", parent_page_id="") — does both steps in one call.

Tests

./.venv/Scripts/python -m pytest

Related MCP Connectors

Related MCP Servers