Codemagic MCP服务器

一个本地Python MCP服务器,它公开 Codemagic CI/CD REST API 作为Claude的可调用工具。触发器构建、管理应用程序、下载工件和清除缓存——所有这些都可以在不离开聊天室的情况下从Claude Code或Claude Desktop完成。

 ](https://lobehub.com/mcp/agimaulana-codemagicmcp) 
工具
应用
| 工具 | 说明 |
|---|---|
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 ⚠️ | 删除环境变量 |
网络钩子
| 工具 | 说明 |
|---|---|
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.
______________________________________________________________________
安装
要求: 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 .配置
从获取您的API令牌 Codemagic用户设置→ 集成→ Codemagic 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 是可选的,但如果你主要使用一个应用程序,建议使用。设置后,只要工具需要,AI就会自动使用它 app_id 没有具体说明。如果没有设置,AI将:
- 呼叫
list_apps以发现可用的应用程序。 - 如果只有一个应用程序存在,则自动使用该应用程序。
- 展示列表,并要求您选择是否找到多个应用程序。
步骤日志文件传递
get_step_logs 支持两种交付模式:
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__如果工件丢失,服务器将返回 status="missing" 有道理 not_generated_or_expired,这意味着该文件要么从未生成,要么已过期并被删除。
使用克劳德代码注册
运行以下命令以添加服务器:
claude mcp add codemagic -- codemagic-mcp然后在MCP env配置中设置API密钥,或者在启动Claude Code之前将其导出到您的shell中:
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永远不需要改变
