Codemagic MCP μλ²
Codemagic CI/CD REST APIλ₯Ό Claudeμμ νΈμΆ κ°λ₯ν λκ΅¬λ‘ λ ΈμΆνλ λ‘컬 Python MCP μλ²μ λλ€. μ±ν μ λκ° νμ μμ΄ Claude Codeλ Claude Desktopμμ λ°λ‘ λΉλλ₯Ό νΈλ¦¬κ±°νκ³ , μ±μ κ΄λ¦¬νκ³ , μν°ν©νΈλ₯Ό λ€μ΄λ‘λνκ³ , μΊμλ₯Ό μμ ν μ μμ΅λλ€.
π CodemagicMcp MCP server
π MCP Badge
π License: MIT
λꡬ
μ±
λꡬ | μ€λͺ |
| Codemagic κ³μ μ λͺ¨λ μ ν리μΌμ΄μ λμ΄ |
| νΉμ μ ν리μΌμ΄μ μ μΈλΆ μ 보 κ°μ Έμ€κΈ° |
| κ³΅κ° μ μ₯μλ₯Ό Codemagicμ μΆκ° |
| SSH ν€λ₯Ό μ¬μ©νμ¬ λΉκ³΅κ° μ μ₯μ μΆκ° |
| Codemagicμμ μ ν리μΌμ΄μ μμ |
λΉλ
λꡬ | μ€λͺ |
| λΉλ λμ΄ (μ±λ³ νν°λ§ κ°λ₯) |
| λ¨κ³ μ μμ½μ΄ ν¬ν¨λ λΉλ μΈλΆ μ 보 κ°μ Έμ€κΈ°; μ 체 λ¨κ³ λͺ©λ‘μ λ³΄λ €λ©΄ |
| μ ν리μΌμ΄μ μ λν μ λΉλ νΈλ¦¬κ±° |
| μ€ν μ€μΈ λΉλ μ·¨μ |
| λΉλμ λ¨κ³λ³ μν μμ½ κ°μ Έμ€κΈ° (μνλ³ νν°λ§ κ°λ₯) |
| νΉμ λΉλ λ¨κ³μ λν μμ λ‘κ·Έλ₯Ό μΈλΌμΈμΌλ‘ κ°μ Έμ€κ±°λ κ΄λ¦¬λλ μμ νμΌ μμ±/μ λ°μ΄νΈ |
| νΉμ λΉλ λ¨κ³μ λν΄ κ΄λ¦¬λλ λ‘컬 λ¨κ³ λ‘κ·Έ μν°ν©νΈκ° μ¬μ ν μ‘΄μ¬νλμ§ νμΈ |
| λΉλμμ μμ±λ λͺ¨λ μν°ν©νΈ λμ΄ |
μν°ν©νΈ
λꡬ | μ€λͺ |
| λΉλ μν°ν©νΈμ λ€μ΄λ‘λ URL κ°μ Έμ€κΈ° |
| μν°ν©νΈμ λν μκ° μ ν κ³΅κ° URL μμ± |
μΊμ
λꡬ | μ€λͺ |
| μ ν리μΌμ΄μ μ λͺ¨λ λΉλ μΊμ λμ΄ |
| νΉμ λΉλ μΊμ μμ |
| μ ν리μΌμ΄μ μ λͺ¨λ λΉλ μΊμ μμ |
νκ²½ λ³μ
λꡬ | μ€λͺ |
| μ ν리μΌμ΄μ μ λͺ¨λ νκ²½ λ³μ λμ΄ |
| μ ν리μΌμ΄μ μ νκ²½ λ³μ μΆκ° |
| κΈ°μ‘΄ νκ²½ λ³μ μ λ°μ΄νΈ |
| νκ²½ λ³μ μμ |
μΉν
λꡬ | μ€λͺ |
| μ ν리μΌμ΄μ μ λͺ¨λ μΉν λμ΄ |
| μ ν리μΌμ΄μ μ μΉν μΆκ° |
| μΉν μμ |
β οΈ μ΄ λꡬλ€μ νκ΄΄μ μΈ μμ μΌλ‘ νμλμ΄ μμΌλ©° μ€ν μ νμΈμ μμ²ν©λλ€.
Related MCP server: claudecode-mcp
λΉ λ₯Έ μμ
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 .ꡬμ±
Codemagic μ¬μ©μ μ€μ β ν΅ν© β 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λ μ ν μ¬νμ΄μ§λ§ μ£Όλ‘ νλμ μ±μΌλ‘ μμ
νλ κ²½μ° κΆμ₯λ©λλ€. μ€μ νλ©΄ λꡬμμ app_idκ° νμνκ³ μ§μ λμ§ μμμ λ AIκ° μλμΌλ‘ μ΄λ₯Ό μ¬μ©ν©λλ€. μ€μ λμ§ μμ κ²½μ° 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_<build_id>_<step_id>μν°ν©νΈκ° μμΌλ©΄ μλ²λ status="missing"κ³Ό μ΄μ not_generated_or_expiredλ₯Ό λ°νν©λλ€. μ΄λ νμΌμ΄ μμ±λμ§ μμκ±°λ λ§λ£λμ΄ μμ λμμμ μλ―Έν©λλ€.
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λ λ³κ²½ν νμκ° μμ΅λλ€
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AgiMaulana/CodemagicMcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
