PluginBench
MCP Server
Active
MIT

Heimdall MCP Server

io.github.erayendes/asc-mcp

What is the Heimdall MCP server?

Every App Store Connect + StoreKit 2 endpoint. 883 tools in 13 profiles, narrow to 24.

How to install Heimdall

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • ASC_KEY_ID

    App Store Connect API Key ID. Normally written for you by `npx -y @erayendes/asc-mcp setup`.

  • ASC_ISSUER_ID

    App Store Connect Issuer ID (a UUID). Normally written for you by `setup`.

  • ASC_PRIVATE_KEY
    secret

    The .p8 private key as PEM text. Prefer `setup`, which stores it in the macOS Keychain instead of any config file; set this only where a Keychain is unavailable, such as CI.

  • ASC_PRIVATE_KEY_PATH

    Path to the .p8 file, as an alternative to pasting its contents. Off macOS this is what `setup` records.

  • ASC_BUNDLE_ID

    Bundle ID of one app. Only needed by the StoreKit 2 transaction tools on the monetization profile.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "asc-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@erayendes/asc-mcp",
        "profile"
      ],
      "env": {
        "ASC_KEY_ID": "<YOUR_ASC_KEY_ID>",
        "ASC_ISSUER_ID": "<YOUR_ASC_ISSUER_ID>",
        "ASC_PRIVATE_KEY": "<YOUR_ASC_PRIVATE_KEY>",
        "ASC_PRIVATE_KEY_PATH": "<YOUR_ASC_PRIVATE_KEY_PATH>",
        "ASC_BUNDLE_ID": "<YOUR_ASC_BUNDLE_ID>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "asc-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@erayendes/asc-mcp",
        "profile"
      ],
      "env": {
        "ASC_KEY_ID": "<YOUR_ASC_KEY_ID>",
        "ASC_ISSUER_ID": "<YOUR_ASC_ISSUER_ID>",
        "ASC_PRIVATE_KEY": "<YOUR_ASC_PRIVATE_KEY>",
        "ASC_PRIVATE_KEY_PATH": "<YOUR_ASC_PRIVATE_KEY_PATH>",
        "ASC_BUNDLE_ID": "<YOUR_ASC_BUNDLE_ID>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "asc-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@erayendes/asc-mcp",
        "profile"
      ],
      "env": {
        "ASC_KEY_ID": "<YOUR_ASC_KEY_ID>",
        "ASC_ISSUER_ID": "<YOUR_ASC_ISSUER_ID>",
        "ASC_PRIVATE_KEY": "<YOUR_ASC_PRIVATE_KEY>",
        "ASC_PRIVATE_KEY_PATH": "<YOUR_ASC_PRIVATE_KEY_PATH>",
        "ASC_BUNDLE_ID": "<YOUR_ASC_BUNDLE_ID>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "asc-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@erayendes/asc-mcp",
        "profile"
      ],
      "env": {
        "ASC_KEY_ID": "<YOUR_ASC_KEY_ID>",
        "ASC_ISSUER_ID": "<YOUR_ASC_ISSUER_ID>",
        "ASC_PRIVATE_KEY": "<YOUR_ASC_PRIVATE_KEY>",
        "ASC_PRIVATE_KEY_PATH": "<YOUR_ASC_PRIVATE_KEY_PATH>",
        "ASC_BUNDLE_ID": "<YOUR_ASC_BUNDLE_ID>"
      }
    }
  }
}
Claude Code
claude mcp add asc-mcp --env ASC_KEY_ID=<YOUR_ASC_KEY_ID> --env ASC_ISSUER_ID=<YOUR_ASC_ISSUER_ID> --env ASC_PRIVATE_KEY=<YOUR_ASC_PRIVATE_KEY> --env ASC_PRIVATE_KEY_PATH=<YOUR_ASC_PRIVATE_KEY_PATH> --env ASC_BUNDLE_ID=<YOUR_ASC_BUNDLE_ID> -- npx -y @erayendes/asc-mcp profile

Related MCP servers

Control a real Chrome browser to complete any task: fill forms, extract data, book flights.

110k
Python
MIT
View repository →

Real-time global intelligence: markets, conflicts, country risk, energy, and infrastructure monitoring via 39 MCP tools.

83k
TypeScript
AGPL-3.0
View repository →

Netdata

Active

Real-time infrastructure monitoring with per-second metrics, ML-powered anomaly detection, and zero-configuration setup.

80k
Go
GPL-3.0
View repository →

Trending hip-hop artist momentum scores across four cultural dimensions.

79k
TypeScript
MIT
View repository →

AI orchestration platform with 100+ agents, swarm coordination, and self-learning memory for enterprise development.

68k
TypeScript
MIT
View repository →

Web scraping with stealth HTTP, real browsers, and Cloudflare bypass capabilities.

67k
Python
BSD-3-Clause
View repository →