Skip to main content
Beta. MCP access is opt-in per user right now. If a project’s MCP key won’t generate, or the OAuth connect flow says “not enabled for your organization,” ask an Appstack admin to turn it on for your user.
Appstack’s MCP server lets Claude (or any MCP-compatible client) query your app’s attribution and analytics data directly, including installs, ad spend, revenue, and campaign performance, across every project and organization you have access to.

Prerequisites

  • An Appstack account, with MCP access enabled for your user (beta, so ask an admin).
  • At least one project in Appstack (bundles up to one iOS + one Android app) whose data you want to query.

Connect via OAuth (Claude Desktop, Claude.ai, ChatGPT desktop)

This is the self-serve, recommended path, with no key to copy or store. Claude Desktop / Claude.ai:
  1. Go to Settings → Connectors → Add custom connector.
  2. Paste the server URL: https://mcp.appstack.tech/mcp
  3. Log in with your Appstack account when prompted, and approve access.
ChatGPT desktop:
  1. Go to Settings → Plugins → Add → Add a MCP server.
  2. Name it, set the type to Streamable HTTP, and paste the server URL: https://mcp.appstack.tech/mcp
  3. Save, then click Authenticate and log in with your Appstack account.
Both discover everything else automatically (client registration, PKCE, token issuance), so there is nothing to configure manually. Access always reflects your current projects and organizations. If you join a new one later, it’s covered automatically, with no need to reconnect.

Connect via API key (Claude Code, scripts)

Generate a key from any project’s settings page in the Appstack dashboard (Project → Settings → MCP). The key isn’t limited to that one project. It works across every project and organization you currently have access to.
Or in Claude Desktop’s config file:
Regenerate the key any time from the same settings page. This immediately invalidates the old one.

Get better results with a skill

Claude can use these tools with no extra setup, but it has to guess the right call order and exact metric/dimension names on its own. Installing the appstack-mcp skill teaches it those conventions up front, so you get fewer wasted calls and no made-up measure names.
See the appstack-skills README for Codex and Cursor install instructions.

Available tools

Ask things like:
  • “What was our ROAS by media source last month?”
  • “Show me installs and revenue by country for the last 30 days.”
  • “What are the possible values for media_source?”
  • “Is our RevenueCat integration connected and active?”
  • “Create a standard link for this app with campaign name ‘summer-promo’.”

Troubleshooting

“MCP isn’t enabled for your organization yet.” MCP is in beta, opt-in per user. Ask an Appstack admin to turn it on for your user. A project I have access to isn’t showing up. Only projects you’re a member of are covered, and only if MCP access is enabled for your user. If you were just added to a project or organization, the next tool call already reflects it, so there’s no need to reconnect. A tool call returns an error instead of data. Call whoami first to confirm which app(s) are actually in scope for your connection, and list_metrics / list_dimension_values before guessing measure or dimension names. A made-up name fails rather than silently returning nothing.

Limits & notes

  • Requests are rate-limited per credential (120 req/60s by default). A 429 response includes a Retry-After header.
  • query_metrics date ranges are capped at 60 days inclusive. A wider range is rejected instead of being trimmed, so split longer periods into several queries.
  • A single query_metrics call can only use measures, dimensions, and filters from one view. Mixing views is rejected.
  • OAuth access tokens are short-lived (~1 hour) and refresh automatically, so never copy-paste one.
  • Your key or connection exposes every project and organization you currently have access to, kept up to date automatically as that access changes.
  • Regenerating your key immediately breaks any client still using the old one.
  • create_link/update_link/delete_link actually change data, so review what Claude is about to do before confirming, same as you would for any tool with write access.
Last modified on October 15, 2026