CodemagicMcp について
CodemagicMcpはCodemagic CI/CD REST APIをClaude CodeとClaude Desktopに公開する、ローカル動作のPython製MCPサーバーです。アプリやビルド、アーティファクト、キャッシュ、変数、Webhookを管理できます。
主な機能
- 01Codemagicアプリの管理
- 02ビルドの開始と確認
- 03ビルドとステップログの取得
- 04アーティファクト一覧と共有URL作成
- 05キャッシュと変数の管理
- 06アプリWebhookの管理
活用シーン
- 01チャットからCodemagicビルドを開始
- 02ビルド状態とステップログの確認
- 03完了したビルドのアーティファクト取得
- 04アプリのキャッシュと設定の管理
MCP 対応
ローカル動作のPython製MCPサーバーとして、Codemagic REST APIの操作をClaude CodeやClaude DesktopなどのMCPクライアントにツールとして公開します。Codemagic APIキーで認証します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx CodemagicMcpCODEMAGIC_API_KEYシークレットYour Codemagic API key (found in User Settings → Integrations → Codemagic API)CODEMAGIC_DEFAULT_APP_IDDefault Codemagic app ID to use when not specified in tool callsCODEMAGIC_BASE_URLCodemagic API base URL (default: https://api.codemagic.io)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Codemagic MCP Server
Codemagic CI/CD REST API を Claude から呼び出せるツールとして公開する、ローカルの Python MCP サーバーです。チャットを離れることなく、Claude Code または Claude Desktop からビルドの実行、アプリの管理、アーティファクトのダウンロード、キャッシュのクリアを行えます。
ツール
アプリ
| ツール | 説明 |
|---|---|
list_apps | Codemagic アカウント内のすべてのアプリケーションを一覧表示します |
get_app | 特定のアプリケーションの詳細を取得します |
add_app | 公開リポジトリを Codemagic に追加します |
add_private_app | SSH キーを使用してプライベートリポジトリを追加します |
delete_app ⚠️ | Codemagic からアプリケーションを削除します |
ビルド
| ツール | 説明 |
|---|---|
list_builds | ビルドを一覧表示します。アプリで絞り込むこともできます |
get_build | ステップ数の概要を含むビルドの詳細を取得します。ステップの一覧全体を取得するには、include_steps=True を渡します |
trigger_build | アプリケーションの新しいビルドを実行します |
cancel_build ⚠️ | 実行中のビルドをキャンセルします |
get_build_logs | ビルドのステップごとのステータス概要を取得します(ステータスで絞り込み可能) |
get_step_logs | ログをインラインで取得するか、特定のビルドステップ用の管理対象一時ファイルを作成または更新します |
get_step_log_artifact | 特定のビルドステップ用の管理対象ローカルステップログアーティファクトがまだ存在するか確認します |
list_build_artifacts | ビルドによって生成されたすべてのアーティファクトを一覧表示します |
アーティファクト
| ツール | 説明 |
|---|---|
get_artifact_url | ビルドアーティファクトのダウンロード URL を取得します |
create_artifact_public_url | アーティファクトの有効期限付き公開 URL を作成します |
キャッシュ
| ツール | 説明 |
|---|---|
list_caches | アプリケーションのすべてのビルドキャッシュを一覧表示します |
delete_cache ⚠️ | 特定のビルドキャッシュを削除します |
delete_all_caches ⚠️ | アプリケーションのすべてのビルドキャッシュを削除します |
環境変数
| ツール | 説明 |
|---|---|
list_variables | アプリケーションのすべての環境変数を一覧表示します |
add_variable | アプリケーションに環境変数を追加します |
update_variable | 既存の環境変数を更新します |
delete_variable ⚠️ | 環境変数を削除します |
Webhook
| ツール | 説明 |
|---|---|
list_webhooks | アプリケーションのすべての Webhook を一覧表示します |
add_webhook | アプリケーションに Webhook を追加します |
delete_webhook ⚠️ | Webhook を削除します |
⚠️ これらのツールは破壊的操作としてマークされており、実行前に確認を求めます。
クイックスタート
Claude Code を最も手早く使い始める方法です。別途インストールする必要はありません。
# 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
以上です。CODEMAGIC_DEFAULT_APP_ID などのオプション設定については、Configuration を参照してください。
インストール
要件: Python 3.11+
オプション 1 — uvx(推奨、インストール不要)
uvx codemagic-mcp
オプション 2 — pip
pip install codemagic-mcp
オプション 3 — ソースから
git clone https://github.com/AgiMaulana/CodemagicMcp.git
cd CodemagicMcp
python3 -m venv .venv
.venv/bin/pip install -e .
設定
Codemagic User Settings → Integrations → Codemagic API から API トークンを取得してください。
設定は環境変数または .env ファイルで指定できます。
# .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
デフォルトのアプリ ID
CODEMAGIC_DEFAULT_APP_ID は省略可能ですが、主に 1 つのアプリを使用する場合は設定することをおすすめします。設定すると、app_id が必要なツールで指定されていない場合、AI は自動的にこの値を使用します。設定されていない場合、AI は次のように動作します。
list_appsを呼び出して、利用可能なアプリを確認します。- アプリが 1 つだけの場合は、自動的にそのアプリを使用します。
- 複数のアプリが見つかった場合は、一覧を表示して選択を求めます。
ステップログファイルの配信
get_step_logs は、2 つの配信モードに対応しています。
delivery="file"はデフォルトの設定で、管理対象のローカル一時ファイルにログを書き込み、artifact_id、file_path、bytes、line_count、expires_atなどのメタデータを返します。delivery="inline"は、ステップログのテキストをそのまま返します。
ローカルファイルモードは、ステップログが大きすぎてインラインで返すのが難しい場合に便利です。管理対象のログファイルは CODEMAGIC_LOG_TEMP_DIR に保存され、新しいログファイルが書き込まれるたびに、期限切れのファイルが可能な範囲で削除されます。デフォルトの保持期間は CODEMAGIC_LOG_TTL_SECONDS で制御され、初期値は 3600 秒です。
サーバーは起動時のクリーンアップも実行し、バックグラウンドで定期的にクリーンアップを行います。ループの間隔は CODEMAGIC_LOG_CLEANUP_INTERVAL_SECONDS で制御され、初期値は 300 秒です。さらに安全策として、管理対象の一時ディレクトリには CODEMAGIC_LOG_MAX_TOTAL_BYTES と CODEMAGIC_LOG_MAX_FILE_COUNT による上限が設定されており、いずれかの上限を超えると、古いファイルから削除されます。
get_step_log_artifact(build_id, step_id) は、Codemagic に再度問い合わせたり、ファイルの内容を返したりせずに、管理対象のアーティファクトがまだ存在するかどうかを確認します。アーティファクトのメタデータには、次の形式の決定論的な artifact_id が含まれます。
artifact_<build_id>_<step_id>
アーティファクトが見つからない場合、サーバーは理由 not_generated_or_expired とともに status="missing" を返します。これは、ファイルが一度も生成されていないか、期限切れになって削除されたことを意味します。
Claude Code に登録する
次のコマンドを実行して、サーバーを追加します。
claude mcp add codemagic -- codemagic-mcp
次に、MCP の環境設定で API キーを設定するか、Claude Code を起動する前にシェルでエクスポートします。
export CODEMAGIC_API_KEY=your-api-key-here
または、~/.claude.json に手動で追加します。
{
"mcpServers": {
"codemagic": {
"command": "codemagic-mcp",
"env": {
"CODEMAGIC_API_KEY": "your-api-key-here",
"CODEMAGIC_DEFAULT_APP_ID": "your-app-id-here"
}
}
}
}
uvx を使用する(事前インストール不要)
{
"mcpServers": {
"codemagic": {
"command": "uvx",
"args": ["codemagic-mcp"],
"env": {
"CODEMAGIC_API_KEY": "your-api-key-here",
"CODEMAGIC_DEFAULT_APP_ID": "your-app-id-here"
}
}
}
}
Claude Code を再起動すると、ツールが /tools に表示されます。
Claude Desktop に登録する
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %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"
}
}
}
}
変更を反映するには、Claude Desktop を再起動します。
プロジェクト構成
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
新しいツールの追加
client.pyにメソッドを追加します- 該当する
tools/*.pyファイルにツール関数を追加します - これだけです。
server.pyを変更する必要はありません
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。