Skip to main content

Codemagic CI/CD MCP Server — manage builds, apps, artifacts, and caches from your AI

Project description

Codemagic MCP Server

MCP Registry

A local Python MCP server that exposes the Codemagic CI/CD REST API as Claude-callable tools. Trigger builds, manage apps, download artifacts, and clear caches — all from Claude Code or Claude Desktop without leaving the chat.

Codemagic MCP server

CodemagicMcp MCP server MCP Badge License: MIT

Tools

Apps

Tool Description
list_apps List all applications in your Codemagic account
get_app Get details of a specific application
add_app Add a public repository to Codemagic
add_private_app Add a private repository using an SSH key
delete_app ⚠️ Delete an application from Codemagic

Builds

Tool Description
list_builds List builds, optionally filtered by app
get_build Get build details with step count summary; pass include_steps=True for full step list
trigger_build Trigger a new build for an application
cancel_build ⚠️ Cancel a running build
get_build_logs Get a step-by-step status summary of a build (filterable by status)
get_step_logs Get raw logs inline or create/update a managed temp file for a specific build step
get_step_log_artifact Check whether a managed local step-log artifact still exists for a specific build step
list_build_artifacts List all artifacts produced by a build

Artifacts

Tool Description
get_artifact_url Get the download URL for a build artifact
create_artifact_public_url Create a time-limited public URL for an artifact

Caches

Tool Description
list_caches List all build caches for an application
delete_cache ⚠️ Delete a specific build cache
delete_all_caches ⚠️ Delete all build caches for an application

Environment Variables

Tool Description
list_variables List all environment variables for an application
add_variable Add an environment variable to an application
update_variable Update an existing environment variable
delete_variable ⚠️ Delete an environment variable

Webhooks

Tool Description
list_webhooks List all webhooks for an application
add_webhook Add a webhook to an application
delete_webhook ⚠️ Delete a webhook

⚠️ These tools are marked as destructive and will prompt for confirmation before executing.

Quick Start

The fastest way to get running with Claude Code — no separate install step needed:

# 1. Add the server (uses uvx to run it on-demand)
claude mcp add codemagic -e CODEMAGIC_API_KEY=your-api-key-here -- uvx codemagic-mcp

# 2. Restart Claude Code — tools will appear in /tools

That's it. See Configuration for optional settings like CODEMAGIC_DEFAULT_APP_ID.


Installation

Requirements: Python 3.11+

Option 1 — uvx (recommended, no install needed)

uvx codemagic-mcp

Option 2 — pip

pip install codemagic-mcp

Option 3 — from source

git clone https://github.com/AgiMaulana/CodemagicMcp.git
cd CodemagicMcp
python3 -m venv .venv
.venv/bin/pip install -e .

Configuration

Get your API token from Codemagic User Settings → Integrations → Codemagic API.

You can provide settings as environment variables or via a .env file:

# .env
CODEMAGIC_API_KEY=your-api-key-here

# Optional: set a default app so you don't have to specify it every time
CODEMAGIC_DEFAULT_APP_ID=your-app-id-here

# Optional: customize managed temp log storage for get_step_logs(..., delivery="file")
CODEMAGIC_LOG_TEMP_DIR=/tmp/codemagic-mcp
CODEMAGIC_LOG_TTL_SECONDS=3600
CODEMAGIC_LOG_CLEANUP_INTERVAL_SECONDS=300
CODEMAGIC_LOG_MAX_TOTAL_BYTES=524288000
CODEMAGIC_LOG_MAX_FILE_COUNT=200

Default App ID

CODEMAGIC_DEFAULT_APP_ID is optional but recommended if you work primarily with one app. When set, the AI will use it automatically whenever a tool requires an app_id and none was specified. If it is not set, the AI will:

  1. Call list_apps to discover available apps.
  2. Use the app automatically if only one exists.
  3. Present the list and ask you to choose if multiple apps are found.

Step Log File Delivery

get_step_logs supports two delivery modes:

  • delivery="file" is the default and writes the log to a managed local temp file, returning metadata such as artifact_id, file_path, bytes, line_count, and expires_at.
  • delivery="inline" returns the raw step log text directly.

The local file mode is useful when a step log is too large to comfortably return inline. Managed log files are stored under CODEMAGIC_LOG_TEMP_DIR and expired files are cleaned up opportunistically whenever a new log file is written. The default retention window is controlled by CODEMAGIC_LOG_TTL_SECONDS and defaults to 3600 seconds.

The server also runs a startup cleanup pass and a periodic background cleanup loop. The loop interval is controlled by CODEMAGIC_LOG_CLEANUP_INTERVAL_SECONDS and defaults to 300 seconds. As an additional safety backstop, the managed temp directory is capped by CODEMAGIC_LOG_MAX_TOTAL_BYTES and CODEMAGIC_LOG_MAX_FILE_COUNT; when either cap is exceeded, the oldest files are evicted first.

get_step_log_artifact(build_id, step_id) checks whether that managed artifact still exists without calling Codemagic again or returning the file contents. The artifact metadata includes a deterministic artifact_id in this format:

artifact_<build_id>_<step_id>

If the artifact is missing, the server returns status="missing" with reason not_generated_or_expired, which means the file was either never generated or it expired and was deleted.

Register with Claude Code

Run the following command to add the server:

claude mcp add codemagic -- codemagic-mcp

Then set your API key in the MCP env config, or export it in your shell before starting Claude Code:

export CODEMAGIC_API_KEY=your-api-key-here

Alternatively, add it manually to ~/.claude.json:

{
  "mcpServers": {
    "codemagic": {
      "command": "codemagic-mcp",
      "env": {
        "CODEMAGIC_API_KEY": "your-api-key-here",
        "CODEMAGIC_DEFAULT_APP_ID": "your-app-id-here"
      }
    }
  }
}

Using uvx (no prior installation needed)

{
  "mcpServers": {
    "codemagic": {
      "command": "uvx",
      "args": ["codemagic-mcp"],
      "env": {
        "CODEMAGIC_API_KEY": "your-api-key-here",
        "CODEMAGIC_DEFAULT_APP_ID": "your-app-id-here"
      }
    }
  }
}

Restart Claude Code — the tools will appear in /tools.

Register with Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "codemagic": {
      "command": "codemagic-mcp",
      "env": {
        "CODEMAGIC_API_KEY": "your-api-key-here",
        "CODEMAGIC_DEFAULT_APP_ID": "your-app-id-here"
      }
    }
  }
}

Restart Claude Desktop to pick up the changes.

Project Structure

codemagic_mcp/
├── config.py        # pydantic-settings config (validates API key at startup)
├── client.py        # httpx async client, one method per endpoint
├── server.py        # FastMCP instance
└── tools/
    ├── apps.py
    ├── builds.py
    ├── artifacts.py
    ├── caches.py
    ├── variables.py
    └── webhooks.py

Adding New Tools

  1. Add a method to client.py
  2. Add the tool function to the relevant tools/*.py file
  3. That's it — server.py never needs to change

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codemagicmcp-0.7.1.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

codemagicmcp-0.7.1-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file codemagicmcp-0.7.1.tar.gz.

File metadata

  • Download URL: codemagicmcp-0.7.1.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for codemagicmcp-0.7.1.tar.gz
Algorithm Hash digest
SHA256 1e77f137e5735da5bc0b06f40f92d86f6fb095e679d7c67b06f6f92d93b9954a
MD5 ba5af6c94f4f0d9cf484ad71986ed148
BLAKE2b-256 9550de88b4eecb455e126ab7399c694a43edebe876ca0ae62f82810a1c047e33

See more details on using hashes here.

Provenance

The following attestation bundles were made for codemagicmcp-0.7.1.tar.gz:

Publisher: publish-pypi.yml on AgiMaulana/CodemagicMcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file codemagicmcp-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: codemagicmcp-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for codemagicmcp-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a12848812c32442db1e80098bb0efe35792973cf64c218f8cb7d23628142fa44
MD5 f02f78007f7cf441bdef451900a01c3f
BLAKE2b-256 afdabef2a8e5a147de74e5ea7e2050c5a510bdc85b32be75609d4af33abda73d

See more details on using hashes here.

Provenance

The following attestation bundles were made for codemagicmcp-0.7.1-py3-none-any.whl:

Publisher: publish-pypi.yml on AgiMaulana/CodemagicMcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page