← Back to directory
H

Heimdall MCP Server

Community
One tool standing watch over your entire App Store Connect account
GitHub source repository ↗
★ 46 Stars Category · Dev Tools Popular
61FMRS · C

Heimdall generates all 875 tools from Apple's official OpenAPI spec, a coverage level rare among App Store Connect MCP servers, and uniquely adds StoreKit 2 support. Its profile system keeps token costs manageable, and confirm-before-write plus local Keychain key storage reflect a security-first design. Limitations: local stdio only, requires Node, and 2.x introduced breaking profile changes. Best for developers seriously managing App Store releases; not for those wanting an official or remotely hosted solution.

Reliability
8/20
Security and permissions
14/20
Maintenance
12/20
Documentation
14/20
Setup experience
13/20
Read the FMRS scoring method →

Heimdall is a locally-run (stdio) MCP server for the Apple App Store Connect API and the App Store Server API (StoreKit 2). Every tool is generated from Apple's official OpenAPI specification (v4.4.1, 966 paths, 982 operations), giving 875 tools across 13 profiles and 32 sub-profiles, narrowable further (e.g. monetization:subscription-pricing is 24-27 tools instead of ~200) to save context tokens. It also offers review triage and reply drafting where your own model writes the text — no second API key required. Writes confirm before executing; --read-only, destructive-action annotations and no telemetry are supported; the .p8 key lives in the macOS Keychain, never in plain-text config. Not affiliated with Apple; MIT licensed.

Tools

asc__search_tools
Search all tools, including ones not currently loaded, and report which profile a tool lives in

Setup

Run npx -y @erayendes/asc-mcp setup. The wizard asks for your API key once, stores it securely (in the macOS Keychain), and registers your chosen profiles with every MCP client on your machine — Claude, Codex, Cursor, Windsurf, VS Code. If an AI agent installs it, the agent adds profiles via register while you run setup yourself for the key. Optional environment variables: ASC_KEY_ID, ASC_ISSUER_ID, ASC_PRIVATE_KEY (secret), ASC_PRIVATE_KEY_PATH, ASC_BUNDLE_ID. Requires Node >= 20.19. Pass a profile as a positional argument (e.g. monetization or monetization:subscription-pricing) to narrow the tool surface.

claude_desktop_config.json
{"mcpServers":{"heimdall":{"command":"npx","args":["-y","@erayendes/asc-mcp","setup"]}}}

Fit and risk

Best for

  • iOS/macOS developers and release teams needing every App Store Connect endpoint
  • Anyone working with subscriptions, IAP, StoreKit 2 transactions and refunds
  • Users who want confirm-before-write safety and local key custody
  • Teams using multiple MCP clients (Claude, Codex, Cursor) wanting one-step registration

Not for

  • Users who won't install Node locally or prefer remote HTTP servers
  • Those expecting the server itself to generate marketing/reply text (your own model writes it)
  • Anyone seeking a Fastlane replacement for scripted CI pipelines (it's positioned as the interactive complement)
  • Users looking for an official Apple tool — this project is unaffiliated with Apple

Required permissions

  • Reads App Store Connect API credentials (Key ID, Issuer ID, .p8 private key)
  • Accesses the Apple App Store Connect and App Store Server APIs
  • StoreKit 2 transaction tools need the app's Bundle ID
  • Optional write access: writes confirm by default; ASC_CONFIRM_WRITES=0 disables confirmation and --read-only removes mutating tools entirely

Risks and side effects

  • A leaked .p8 key grants signing power over your App Store account at whatever role was granted; use Keychain storage, not plain-text config
  • Write-capable tools can change prices, submit for review or delete resources; a misread instruction could still execute after confirmation
  • 2.x is a breaking release; 1.x profile names in configs may have changed
  • The full tool surface exceeds 100k tokens of definitions if profiles aren't narrowed
  • No telemetry and local-only operation means you track version updates yourself

Troubleshooting

  1. Confirm setup ran and ASC_KEY_ID / ASC_ISSUER_ID / .p8 credentials are valid
  2. On macOS, check the key is in the Keychain; on CI or non-macOS use ASC_PRIVATE_KEY or ASC_PRIVATE_KEY_PATH
  3. If a tool is missing, use asc__search_tools to find its profile and register it
  4. After upgrading from 1.x with missing tools, check profile names against the changelog
  5. If writes are blocked or unconfirmed, check ASC_CONFIRM_WRITES and --read-only settings
  6. Verify Node version >= 20.19

Use cases

Summarise this week's 1-star reviews and draft replies
Find which builds are stuck in review
Raise a subscription's price in every territory
Manage TestFlight builds, versions and phased releases
Inspect subscriptions, in-app purchases, transactions, refunds and finance reports

Supported clients

Claude DesktopFull support
ClaudeFull support
CodexFull support
CursorFull support
WindsurfFull support
VS CodeFull support
AntigravityFull support