Skip to content
Conduit

mcp server

open-aso

Open-source, local-first App Store Optimization workspace: keywords, rankings, competitors, App Store Connect, Apple Ads, PostHog & MCP

amintt2/open-asocommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 26, 2026

Open ASO

Open-source App Store Optimization workspace — self-host it or run it as a multi-tenant SaaS. Research keywords, track rankings, watch competitors, edit your App Store listing, localize prices, run Apple Ads and connect your analytics — with Google sign-in, isolated workspaces and team invites.

Built with Next.js 16, React 19, Tailwind 4, Postgres and Better Auth. UI kit derived from the MIT-licensed Kargul sales-crm starter.

Features

AreaWhat you get
KeywordsTracked keywords per app and storefront with popularity, difficulty, targeting label, position + change, 30-day sparkline, estimated downloads, top-5 downloads/MRR, notes, likes, filters, CSV export, detail sheet with trend chart and version markers, top-apps sheet, background refresh
SuggestionsKeyword ideas from App Store search hints, top-ranking titles, competitors and recombinations (optional Claude-powered ideas), scored and one-click trackable; metadata insights for title/subtitle
Country opportunitiesScan one keyword across 66 storefronts, opportunity score, your rank, top competitor, world map
Explore & competitorsSearch any app, profile with estimates, screenshots, ranking keywords, country presence map, similar apps; competitor tracking and keyword-by-keyword comparison
ReviewsMulti-storefront reviews, rating distribution, themes, optional AI summary
App Store pageApp Store Connect metadata editor (name, subtitle, keywords, promo text, description, what's new) with keyword coverage, diff-before-save, locales, localization grid, US multi-locale keyword buckets, screenshots
Price localizationSubscriptions & IAPs: purchasing-power or equalized pricing snapped to Apple price points, scheduled changes
Apple AdsOAuth setup, dashboard, campaigns / ad groups / keywords / negatives, bid & budget edits with diffs, campaign creation, cannibalization fix, playbook-driven recommendations
AnalyticsSelf-hosted install attribution (AdServices), RevenueCat & Superwall webhooks, overview, sources, geography, retention, keyword ROAS; PostHog product analytics
MCP server50 tools over Streamable HTTP with OAuth 2.1 sign-in (or a per-workspace static token) for Claude, Claude Code, Codex, Cursor and VS Code — read-only by default, guarded dry-run writes, plus a Claude Code / Codex plugin with ASO skills

Popularity comes from Apple's own Search Ads popularity (Apple Ads Platform API) when a workspace or platform Apple Ads key is configured, and is otherwise estimated from App Store search suggestions; difficulty, download and revenue numbers are modeled estimates from public App Store data. Rankings come from the public iTunes Search API and can differ slightly from what a given device shows.

Connect your AI assistant

The MCP server lives at https://aso.french-web.com/api/mcp (or <your APP_URL>/api/mcp when self-hosting). Clients sign in with OAuth: a browser page opens, you pick the workspace and approve. A workspace admin first enables the server (and, optionally, write tools) in MCP Server; connected clients are listed there and can be disconnected.

  • Claude Desktop / claude.ai: click Add to Claude on the dashboard or the MCP Server page — claude.ai opens the Add custom connector dialog with the name and URL pre-filled (Claude shows an "external link" notice; click Continue, then sign in). Manually: Settings → Connectors → Add custom connector, paste the URL.
  • Claude Code plugin (tools + slash commands such as /open-aso:keywords, /open-aso:audit, /open-aso:apple-ads + ASO skills):
    /plugin marketplace add amintt2/open-aso
    /plugin install open-aso@open-aso
    
    Then run /mcp and sign in. Without the plugin: claude mcp add --transport http open-aso https://aso.french-web.com/api/mcp.
  • Codex: codex plugin marketplace add amintt2/open-aso then codex plugin add open-aso@open-aso, or just the server: codex mcp add open-aso --url https://aso.french-web.com/api/mcp (then codex mcp login open-aso if it doesn't prompt).
  • Cursor: use Add to Cursor on the MCP Server page, or add { "mcpServers": { "open-aso": { "url": "https://aso.french-web.com/api/mcp" } } } to ~/.cursor/mcp.json.
  • Clients without OAuth: generate a static token under MCP Server → Advanced and send Authorization: Bearer <token>.

The plugins in plugins/open-aso point at the hosted instance; self-hosters use the URL-based commands above with their own domain.

Getting started (local)

npm install
docker run -d --name open-aso-pg -e POSTGRES_USER=open_aso -e POSTGRES_PASSWORD=open_aso -e POSTGRES_DB=open_aso -p 5433:5432 postgres:17-alpine
cp .env.example .env.local
npm run dev

Fill .env.local (see .env.example). Set OPEN_ASO_DEV_LOGIN=1 locally to get an e-mail sign-in without Google. Migrations run automatically on start.

Environment

VariablePurpose
DATABASE_URLPostgres connection string
BETTER_AUTH_URL / BETTER_AUTH_SECRETPublic URL of the app and auth secret
OPEN_ASO_ENCRYPTION_KEYEncrypts workspace credentials at rest (AES-256-GCM)
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRETGoogle sign-in
OPEN_ASO_ADMIN_EMAILSComma-separated platform admins (unlimited plan, /admin)
OPEN_ASO_SIGNUPSopen (default), invite or closed
OPEN_ASO_DISABLE_SCHEDULER=1Disable the background keyword refresh

Deploying (Coolify / Docker Compose)

docker-compose.yaml runs the app and Postgres 17 with a persistent volume. On Coolify, create a Docker Compose resource from this repo and set APP_URL (e.g. https://aso.example.com), GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET and OPEN_ASO_ADMIN_EMAILS; Postgres credentials, the auth secret and the encryption key are generated by Coolify. Add ${APP_URL}/api/auth/callback/google as an authorized redirect URI in Google Cloud.

Import a legacy single-user SQLite database into a workspace with npx tsx --tsconfig tsconfig.json scripts/import-sqlite.ts --file .data/open-aso.sqlite --email you@example.com.

License

MIT. Not affiliated with Apple or with any commercial ASO product.

↑↓ navigate openesc close