For indie app developers

Forvibe's App Store Connect MCP server

An App Store Connect MCP server is a Model Context Protocol endpoint that gives an AI agent direct, structured access to a project's App Store Connect and Google Play data: its ASO tracking, screenshots, store listings, reviews, and store-submission tools, through typed function calls instead of a web console.

No credit cardFree tier with 200 AI creditsCancel anytime

111
tools across 12 groups
5
resources for live project context
4
prompts that chain multiple tool calls
The short answer

Forvibe runs one at https://forvibe.app/mcp. Connect with a personal API key and a client gets 111 tools across 12 groups (projects; ASO keywords and optimization; competitors, charts, and app research; ASO history and alerts; screenshots; Screenshot Studio sets; store listings; reviews; review simulation; Custom Product Pages; In-App Events; and subscriptions, in-app purchases, and pricing), 5 resources for pulling a project's current state straight into context, and 4 prompts that chain several of those tool calls into one workflow. Publishing listing changes live is a separate, explicit call from staging them, and pushing a Custom Product Page or In-App Event lands in App Store Connect as a draft, never submitted for review on its own. Forvibe's own ASO Agent works on the same project data from inside the product; this server is for bringing an agent of your own.

The symptoms of managing an app through copy and paste instead of an API

An agent that has read a project's App Store Connect or Google Play data once has no way to check it again later in the same conversation, so every follow-up question about the current keyword field, rating, or price gets answered from memory instead of from what the console actually shows right now.

A metadata change, a new tracked keyword, or a reply to a review that an agent proposes still has to be typed into App Store Connect or Google Play Console by a person, so acting on a good suggestion is a separate task from getting one.

Nothing tells an agent whether a Custom Product Page reached App Store Connect or a listing actually published, short of a person opening the dashboard and reporting back what happened.

What MCP is, and what an agent can and cannot do through it

Model Context Protocol gives an AI agent typed, direct access to a project's App Store Connect and Google Play data: through Forvibe's server, that means 111 tools, 5 resources, and 4 prompts, reachable over one authenticated endpoint.

Tools, resources, prompts
A server can expose tools that execute actions, resources that expose read-only context, and prompts that template multi-step workflows.
Only way to write
Forvibe's 111 tools are the only way to change anything through the server; there's no generic call to an arbitrary endpoint.
Resources are live snapshots
Five resources expose a project's record, listings, reviews, and ASO snapshot directly, four addressed by project ID and one by simulation ID.
Prompts chain tool calls
Forvibe's 4 prompts, an ASO audit, a submission checklist, a review summary, and keyword research, are canned steps the client still has to run.
Consent before every call
Hosts must get a user's explicit consent before invoking any tool, since a call is arbitrary code execution on the server it fronts.
Read the full explanation

Model Context Protocol is an open protocol for connecting an AI application to external tools and data over a standard client-server interface. A host application, the chat client, IDE, or agent runtime, holds a client, and that client talks to one or more independent servers over JSON-RPC. The specification splits what a server can offer into three kinds of primitive: tools, defined as 'functions for the AI model to execute'; resources, 'context and data, for the user or the AI model to use'; and prompts, 'templated messages and workflows for users.' A server chooses which of these to expose, and a client only ever sees what gets registered, nothing else on the backend is reachable through it. On safety, the specification is direct: hosts must obtain a user's explicit consent before invoking any tool, and descriptions of tool behavior such as annotations 'should be considered untrusted, unless obtained from a trusted server,' since a tool call is arbitrary code execution on whatever the server fronts. Forvibe's server registers all three primitives. Its 111 tools are the only way to change anything; there is no generic way to call an arbitrary App Store Connect or Google Play endpoint through it. Its 5 resources are addressable snapshots: four live under forvibe://project/{projectId}, the project record itself, its listings, its recent reviews, and its ASO snapshot, and one is addressed separately by simulation ID. Its 4 prompts, an ASO audit, a submission checklist, a review summary, and a keyword research session, are canned multi-step instructions that tell a connected model which tools to call in what order for a common task; the prompt text itself doesn't execute anything, the client still has to run each step. verifyMcpAuth resolves the organization bound to the API key or OAuth token once, at the start of the request, and createMcpServer(auth) is built fresh from that each time: the same auth object, organization included, is what every tool, resource, and prompt handler for that request receives.

Tool groups and what each covers

GroupToolsWhat it covers
Projects5List, fetch, create, and update Forvibe projects, and check whether a subdomain or mail prefix is free.
ASO keywords and optimization8Track and untrack keywords, read ranking history and a rankings overview, refresh popularity and difficulty, and read the current optimization analysis and suggestions.
Competitors, charts, and app research7List, add, and remove tracked competitors, read top charts and their categories, search either store, and fetch any app's live listing.
ASO history and alerts9Visibility and app-stat trends, App Store analytics by day, territory, or source, competitor listing timelines and rank trajectories, the alert feed and its settings, and sync status.
Screenshots7Read and delete a project's screenshots, browse design templates, and read older Screenshot Studio sessions and localization jobs.
Screenshot Studio sets32Plan, edit, render, translate, and reorder screenshot sets, edit App Store header and search images, push a set to the editable App Store version, and propose custom product pages and send them to App Store Connect as drafts. Painting a new set's artwork still starts in the dashboard.
Store listings7Read and patch per-locale listing fields, publish staged changes live, read version history, and AI-translate a listing into new locales.
Reviews3Read user reviews and rating-distribution stats. There is no tool that posts or drafts a developer response.
Review simulation4Read past App Store rejection-risk reports and run a new metadata-only one. A codebase-aware scan still needs the dashboard, the CLI, or the macOS app.
Custom Product Pages2List and delete App Store Custom Product Pages, including pages from the older generator. New pages are made from a Screenshot Studio set. App Store only.
In-App Events9Edit, localize, push, and delete App Store In-App Events, read push status, and generate event ideas. App Store only.
Subscriptions, in-app purchases, and pricing18Create, sync, localize, and update subscriptions and one-time purchases, and draft, apply, cancel, or roll back per-territory price changes.

Connecting a client to the server

  1. Create an API key

    Open /console/api-keys and create a key: pick the wildcard scope for full access, or scope it to just the tool groups an agent needs. The key, prefixed fvk_live_, is shown once, so copy it before closing the dialog.

  2. Point the client at https://forvibe.app/mcp

    Set the client's MCP server URL to https://forvibe.app/mcp and send the API key as a Bearer token in the Authorization header; there's no separate stdio bridge to install. A missing or invalid header gets a 401 back.

  3. Make a first call

    Call list_projects to get a project's public ID, the prj_ prefixed form every other project-scoped tool expects, or read the forvibe://project/{projectId} resource directly once that ID is known. From there most tools follow the same shape: a project_id plus whatever the specific call needs.

Questions, answered

Any client that speaks the streamable HTTP MCP transport with Bearer authentication. Forvibe's own API keys page names the ones people actually connect: Claude Code, Cursor, Claude Desktop, and Gemini. Browser-based clients send an Origin header that the server checks against an allowlist as a DNS-rebinding defense; CLI-style clients that send no Origin header pass through without that check.

No. None of the 111 tools submits a build or an app version for review. Publishing a store listing through publish_listings pushes metadata live to App Store Connect or Google Play; it does not submit an app version for review, and it only runs when a call explicitly asks for it. Custom Product Pages and In-App Events land in App Store Connect as a draft, which still needs a separate, manual submission. The one exception is push_app_store_creatives, which can send a Screenshot Studio set's App Store header and search images to App Review on their own when the call asks for it.

Pushing an In-App Event, and editing a finished Screenshot Studio set, start a background job and return a pending or processing status immediately. An agent has to call the matching get_in_app_event_status or get_screenshot_campaign_status tool and check again until status reads completed, rather than expecting a finished result in the same response. push_cpp_variant sends as many of a custom product page's languages as fit in one call and returns the rest, to send in another call. Every other write, including AI ones like localize_listing and simulate_metadata_only, runs inline and returns its result directly; it just takes longer.

Not as a tool. The review tools are read-only: list reviews, fetch one, and pull rating-distribution stats. Forvibe's own analyze-recent-reviews prompt asks a connected model to draft reply text itself from the reviews it just pulled, but there is no tool that saves or posts a developer response back to the store. Inside the product, Forvibe's ASO Agent drafts and posts review replies on both stores itself; that runs on its own schedule, not through this server.

Check the tool's own inputSchema, not the group it's filed under. A store-scoped tool has a store_type parameter there, visible in the tools/list response before you ever call it. list_listings, list_tracked_keywords, get_top_charts, and list_reviews are four that do. get_review, get_keyword_ranking_history, get_listing_version, and untrack_keyword are four that don't. Custom Product Pages, In-App Events, and review simulation are the one part of this surface with a clean rule: all 15 of those tools are App Store only, with no store_type parameter on any of them.

Ready to put this into practice?

Start free. When you're ready to grow, Forvibe's ASO Agent takes the ongoing App Store work off your hands.