Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

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

README.md

Codemagic MCP Server

![MCP Registry](https://registry.modelcontextprotocol.io/servers/io.github.AgiMaulana/CodemagicMcp)

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](https://glama.ai/mcp/servers/AgiMaulana/CodemagicMcp)

![CodemagicMcp MCP server](https://glama.ai/mcp/servers/AgiMaulana/CodemagicMcp) ![MCP Badge](https://lobehub.com/mcp/agimaulana-codemagicmcp) ![License: MIT](LICENSE)

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

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Developer Tools servers.