AppClimb
app.appclimbPublished by appclimb.appOfficial publisherv1.0.0Updated Nov 3, 2026
App Store keyword research: Apple popularity, difficulty with evidence, verdicts and app rankings.
Overview
AppClimb's hosted MCP server (appclimb.app), published by appclimb.app; OAuth sign-in required; Streamable HTTP.
No AI overview yet: these facts come from the registry entry and the server itself.
- Publisher
- appclimb.app
- Endpoint
- appclimb.app
- Documentation
- appclimb.app
- Last checked
Installation
In SourceWeft
- Open AppClimb in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/app.appclimb%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"appclimb": {
"type": "http",
"url": "https://appclimb.app/mcp"
}
}
}README
AppClimb — App Store keyword explorer
AppClimb is a freemium App Store keyword tool that answers one question: which keywords can my app actually rank for?
Search any keyword and get Apple's official Ads popularity
(searchPopularity1to100, 1–100) with Apple's own weekly history, a
difficulty estimate that shows its evidence, and a verdict (Worth targeting,
Long-tail win, Competitive, Dominated, Low demand). Keyword Explorer works as a
guest (8 new checks/day). A free account raises that to 30/day and unlocks 1 tracked app and the ASO
assistant (5 messages/day). The optional Pro plan ($8/month, $64/year) lifts
the limits, adds 52 weeks of Apple history, and cloud sync.
Popularity is Apple's relative score, or "≤N · Long tail" for terms below Apple's published top 500 in their category, or (only if Apple is unreachable) a labeled estimate. Difficulty is always an estimate. Nothing is search volume, and no history is invented. See ADR 0005.
Product surface
- Keyword Explorer (
/) — search with autocomplete from Apple's list of real App Store searches; a "What people search" panel (rising, most searched, new this month, per category); a keyword table with popularity (source-labeled), 12-week Apple trend, difficulty, and verdict; a detail panel with the verdict reason, difficulty evidence, Apple's weekly popularity chart, related Apple searches, and the top 10 apps. - My Apps tracker (
/, sidebar) — add an iOS app by name, App Store URL, or ID; get metadata-based keyword suggestions; track scores, observed position in public iTunes results (first 200), notes, opportunity score, status filters, CSV export, and real rank history locally per app + storefront. - Storefronts — 16 supported countries.
- Local history — Keyword Explorer: one real snapshot per keyword per day
in
appclimb:kw:v1:*(records from before Oct 2026 had an invented baseline; those points are dropped on load). My Apps: real position/metrics snapshots inappclimb:tracker:v1. - Accounts & Pro (ADR 0004) — passwordless sign-in (Google OAuth or email
magic link), Paddle billing, plan-aware quotas, and Pro cloud sync. Guest
search stays open. Tracking and the assistant require a free account. The
account chrome appears when
NEXT_PUBLIC_PRO_ENABLED=1or whenGET /api/mereportsconfigured: true. - Agent access (ADR 0008) — remote MCP server at
/mcp, setup on/connect. Listed in the official MCP Registry fromserver.json; Claude/ChatGPT directory status and submission texts are in docs/mcp-directory-submissions.md. - Marketing pages —
/app-store-keywords,/guides/keyword-research,/blog(+ 4 notes),/about,/pricing,/privacy,/terms,/refunds.
Architecture
A single Next.js app deployed as a Cloudflare Worker (OpenNext). The browser
queries itunes.apple.com directly (Apple allows CORS * but blocks
Cloudflare Worker IPs). Official popularity comes from the Worker's store of
Apple's weekly published search terms (Apple Ads Platform API v1 with founder
credentials, cached in D1; first use of a new storefront-week costs ~8
sequential Apple calls, and .github/workflows/warm-apple-terms.yml preloads
them). Keyword history lives in the visitor's browser by default.
Monetization runs on the same Worker plus a D1 database (appclimb-db,
staging appclimb-db-staging):
src/app/api/auth/*— magic-link + Google sign-in, sign-outsrc/app/api/me— profile, plan, limitssrc/app/api/sync— Pro cloud sync (tracker/explorerblobs, LWW)src/app/api/billing/webhook— signed Paddle events → D1 subscriptionssrc/app/api/billing/portal— Paddle subscription management URLssrc/app/api/chat,src/app/api/popularity— plan-aware quotassrc/app/api/terms/{suggest,related,trending}— Apple's published search terms (D1-backed store insrc/lib/search-terms-store.ts)migrations/— D1 schema;src/lib— plan/auth/billing/sync/quota libsworker/,deploy/,compose.yml— frozen rollback artifacts from earlier architectures; never the current backend
Local development
Keyword Explorer / My Apps work without env vars (iTunes estimate fallback).
Official Apple Ads popularity needs server-only founder credentials:
Optional ASO Assistant (DeepSeek V4 Flash) needs a server-only key:
The key is used only by POST /api/chat. It is never shipped to the browser.
Monetization setup (accounts · Paddle · sync)
The backend ships inert: routes degrade to 503 and the account UI is hidden until the founder completes this checklist. Do it in sandbox first, then repeat for production.
- Databases — already created:
appclimb-db(production) andappclimb-db-staging. Local dev:npx wrangler d1 migrations apply appclimb-db --local. - Paddle — create an account at paddle.com, then under Products create “AppClimb Pro” with two prices: Pro Monthly $8 and Pro Yearly $64. Note their price IDs. In Sandbox → Developer tools → Authentication grab the API key, client-side token, and a notification/webhook secret.
- Webhook — in Paddle, subscribe to subscription events
(
subscription.created/updated/paused/canceled) pointing athttps://appclimb.app/api/billing/webhook. - Google OAuth — Google Cloud Console → APIs & Services → Credentials →
OAuth client (Web) with authorized redirect URI
https://appclimb.app/api/auth/google/callback. - Resend — resend.com → API key, verify
appclimb.appas a sending domain (add the DNS records it shows). - Server secrets (Worker, never committed):
- Public build-time vars — GitHub → repo Settings → Secrets and
variables → Actions → Variables:
NEXT_PUBLIC_PRO_ENABLED=1,NEXT_PUBLIC_PADDLE_CLIENT_TOKEN=<client token>,NEXT_PUBLIC_PADDLE_ENV=sandbox(thenproduction),NEXT_PUBLIC_PADDLE_PRICE_PRO_MONTHLY=<price id>,NEXT_PUBLIC_PADDLE_PRICE_PRO_YEARLY=<price id>. - Staging — deploy with
npm run deploy:cloudflare:web:stagingand set the same secrets for thestagingenvironment (npx wrangler secret put ... --env staging) before the production flip.
Verification
npm run check runs lint, typecheck, coverage, and both builds.
Production configuration
Pushes to main run .github/workflows/cloudflare-deploy.yml, which builds,
applies D1 migrations, deploys the web Worker, verifies the canonical homepage,
waits for the sitemap, and notifies IndexNow. Deploys go live immediately — run
npm run check and npm run test:e2e before pushing.
The canonical production host is https://appclimb.app; the staging Worker is
appclimb-web-staging.
Source: README.md at commit 3cff0a3
Tools
0Version history
1- v1.0.0LatestNov 3, 2026
Score
75% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.
