MCP server for the Codemagic CI/CD API — 15 tools for apps, builds, artifacts, caches and teams
codemagic_mcp
MCP server for the Codemagic CI/CD API. Bun + TypeScript, stdio transport.
Tools
Apps
codemagic_get_all_applicationscodemagic_get_applicationcodemagic_add_applicationcodemagic_add_application_private
Builds
codemagic_start_buildcodemagic_get_buildscodemagic_get_build_statuscodemagic_cancel_build
Artifacts
codemagic_get_artifact(returns metadata + base64 preview; use the public URL tool for full downloads)codemagic_create_public_artifact_url
Caches
codemagic_get_app_cachescodemagic_delete_all_app_cachescodemagic_delete_app_cache
Teams
codemagic_invite_team_membercodemagic_delete_team_member
Configuration
Environment variables:
| Variable | Required | Default | Notes |
|---|---|---|---|
| CODEMAGIC_API_KEY | yes | — | From Teams settings → Personal Account → API |
| CODEMAGIC_BASE_URL | no | https://api.codemagic.io | Override for self-hosted/staging |
| CODEMAGIC_TIMEOUT_MS | no | 30000 | Per-request timeout |
| CODEMAGIC_MAX_RETRIES | no | 3 | Retries on 408/425/429/5xx and network errors (exponential backoff with jitter, honors Retry-After) |
Run
bun install
CODEMAGIC_API_KEY=... bun run start
Watch mode:
CODEMAGIC_API_KEY=... bun run dev
Inspect with the official MCP inspector:
CODEMAGIC_API_KEY=... bun run inspect
Claude Code / Claude Desktop config
One-line setup:
claude mcp add codemagic --scope user \
-e CODEMAGIC_API_KEY=<your_key> \
-- bunx codemagic_mcp
Or manually in claude_desktop_config.json:
{
"mcpServers": {
"codemagic": {
"command": "bunx",
"args": ["codemagic_mcp"],
"env": { "CODEMAGIC_API_KEY": "..." }
}
}
}
Security notes
- API key is read from env only.
- Outgoing requests send the key via
x-auth-token; it is never logged. - All tool output (text and structured) is run through a redactor that masks the key value and any object keys matching
authorization,x-auth-token,api[-_]?key,password,passphrase,ssh[-_]?key,secret, ortoken. - Errors are mapped to typed classes (
CodemagicAuthError,CodemagicNotFoundError,CodemagicValidationError,CodemagicRateLimitError,CodemagicServerError,CodemagicNetworkError) and surfaced as actionable messages — internal stack traces are not exposed to the client.
Layout
src/
index.ts stdio entrypoint
schemas.ts Zod input schemas
lib/
config.ts env loading + validation
client.ts fetch wrapper: timeouts, retries, status mapping
errors.ts typed error classes + user-facing formatter
redact.ts secret/string + key-pattern redaction
response.ts jsonResult / textResult / errorResult helpers
tools/
apps.ts builds.ts artifacts.ts caches.ts teams.ts