Beta. MCP access is opt-in per organization 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 org.
Prerequisites
- An Appstack account, with MCP access enabled for your organization (beta, so ask an admin).
- A 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:- Go to Settings → Connectors → Add custom connector.
- Paste the server URL:
https://mcp.appstack.tech/mcp - Log in with your Appstack account when prompted.
- Pick the project you want to grant access to (auto-selected if you only have one eligible project).
- Go to Settings → Plugins → Add → Add a MCP server.
- Name it, set the type to Streamable HTTP, and paste the server URL:
https://mcp.appstack.tech/mcp - Save, then click Authenticate and log in with your Appstack account.
Connect via API key (Claude Code, scripts)
Each project has its own MCP key, generated from that project’s settings page in the Appstack dashboard (Project → Settings → MCP). The key only exposes that project’s data.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 theappstack-mcp skill
teaches it those conventions up front, so you get fewer wasted calls and no
made-up measure names.
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 organization. Ask an Appstack admin to turn it on. The OAuth consent screen doesn’t show the project I expected. Only projects in organizations with MCP access enabled appear in the picker, and only ones you’re a member of. A tool call returns an error instead of data. Callwhoami 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
429response includes aRetry-Afterheader. - OAuth access tokens are short-lived (~1 hour) and refresh automatically, so never copy-paste one.
- A project’s MCP key only exposes that project’s data (up to one iOS + one Android app), never the rest of your organization.
- Regenerating a project’s key immediately breaks any client still using the old one.
create_link/update_link/delete_linkactually change data, so review what Claude is about to do before confirming, same as you would for any tool with write access.