AppClimb について
AppClimbは、アプリ開発者やASO調査担当者向けのApp Storeキーワード調査ツールです。Appleの人気度データと週次履歴、根拠付きの難易度推定、評価、アプリ追跡を提供します。
主な機能
- 01Appleキーワード人気度と履歴
- 02根拠付き難易度推定
- 03キーワードの評価判定
- 04アプリ順位と掲載位置の追跡
- 05キーワード候補とCSV出力
活用シーン
- 01iOSアプリ向けキーワードの評価
- 02ストアフロント別の掲載位置追跡
- 03関連するApple検索語の発見
MCP 対応
AppClimbは`/mcp`にリモートMCPサーバーを提供し、エージェントからキーワード調査機能を利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://appclimb.app/mcpclaude mcp add --transport http app-appclimb https://appclimb.app/mcp{"mcpServers":{"app-appclimb":{"type":"http","url":"https://appclimb.app/mcp"}}}Cursor で開く{"servers":{"app-appclimb":{"type":"http","url":"https://appclimb.app/mcp"}}}VS Code で開く{"mcpServers":{"app-appclimb":{"type":"http","url":"https://appclimb.app/mcp"}}}{"mcpServers":{"app-appclimb":{"serverUrl":"https://appclimb.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
AppClimb — App Store キーワードエクスプローラー
AppClimb はフリーミアムの App Store キーワードツールです。次の疑問に答えます。 自分のアプリが実際に上位表示を狙えるキーワードはどれか?
任意のキーワードを検索すると、Apple 公式の Ads 人気度
(searchPopularity1to100、1~100)と Apple 独自の週間履歴、根拠を示す難易度の推定値、判定(狙う価値あり、ロングテールで勝てる、競争が激しい、競合に圧倒されている、需要が低い)を確認できます。キーワードエクスプローラーはゲストとして利用できます(1日あたり新規チェック8回)。無料アカウントを作成すると、1日あたり30回に増え、追跡アプリ1件と ASO アシスタント(1日5メッセージ)が利用可能になります。任意で利用できる Pro プラン(月額 $8、年額 $64)では制限が緩和され、Apple の履歴が52週間分になり、クラウド同期が追加されます。
人気度は Apple の相対スコアです。カテゴリ内で Apple が公開している上位500件に含まれない語句は「≤N · ロングテール」と表示されます。また、Apple に接続できない場合に限り、推定値であることを明記して表示します。難易度は常に推定値です。いずれも検索ボリュームではなく、履歴を捏造することもありません。詳しくは ADR 0005 をご覧ください。
製品の機能
- キーワードエクスプローラー(
/)— Apple の実際の App Store 検索語リストからのオートコンプリートを使った検索、「検索されている語句」パネル(上昇中、検索数最多、今月の新着、カテゴリ別)、人気度(データ元を明記)、Apple の12週間のトレンド、難易度、判定を表示するキーワードテーブル、判定理由、難易度の根拠、Apple の週間人気度グラフ、Apple 関連検索、上位10件のアプリを表示する詳細パネルを備えています。 - マイアプリトラッカー(
/、サイドバー)— 名前、App Store URL、または ID で iOS アプリを追加し、メタデータに基づくキーワード候補を取得できます。スコア、公開 iTunes 検索結果(上位200件)で確認した掲載順位、メモ、機会スコア、ステータスフィルター、CSV エクスポートを利用でき、アプリとストアフロントごとに実際の順位履歴をローカルに保存します。 - ストアフロント — 16か国に対応しています。
- ローカル履歴 — キーワードエクスプローラー:
appclimb:kw:v1:*にキーワードごとに1日1件の実際のスナップショットを保存します(2026年10月より前の記録には捏造されたベースラインが含まれていたため、読み込み時にそのデータポイントを破棄します)。マイアプリ:appclimb:tracker:v1に実際の順位・指標のスナップショットを保存します。 - アカウントと Pro(ADR 0004) — パスワード不要のサインイン(Google OAuth またはメールのマジックリンク)、Paddle による課金、プランに応じたクォータ、Pro クラウド同期、セルフサービスでのアカウント削除に対応しています。毎週のパージにより、
/privacyに記載された保持期間が適用されます(src/lib/retention.ts)。ゲスト検索は引き続き利用できます。トラッキングとアシスタントの利用には無料アカウントが必要です。アカウント関連の UI は、NEXT_PUBLIC_PRO_ENABLED=1の場合、またはGET /api/meがconfigured: trueを返す場合に表示されます。 - エージェントアクセス(ADR 0008) —
/mcpにリモート MCP サーバーを設置し、/connectでセットアップできます。server.jsonを使って公式 MCP Registry に登録済みです。Claude/ChatGPT ディレクトリのステータスと申請文は docs/mcp-directory-submissions.md にあります。これには、ディレクトリ審査担当者向けのパスワードサインイン(src/lib/review-login.ts。シークレットが設定されていない限り無効)も含まれます。 - マーケティングページ —
/app-store-keywords、/guides/keyword-research、/blog(および4件のノート)、/about、/pricing、/privacy、/terms、/refunds。
アーキテクチャ
Cloudflare Worker(OpenNext)としてデプロイされる単一の Next.js アプリです。ブラウザーは itunes.apple.com に直接問い合わせます(Apple は CORS * を許可しますが、Cloudflare Worker の IP アドレスはブロックします)。公式の人気度データは、Worker に保存された Apple の週次公開検索語句から取得します(創業者の認証情報を使う Apple Ads Platform API v1 を利用し、D1 にキャッシュされます。新しいストアフロントと週の組み合わせを初めて利用する際は、Apple への呼び出しが約 8 回、逐次的に発生します。また、.github/workflows/warm-apple-terms.yml が事前に読み込みます)。キーワード履歴は、デフォルトでは訪問者のブラウザーに保存されます。
収益化機能は、同じ Worker と D1 データベース(appclimb-db、ステージング用の appclimb-db-staging)で動作します。
src/app/api/auth/*— マジックリンクと Google サインイン、サインアウトsrc/app/api/me— プロフィール、プラン、上限src/app/api/sync— Pro のクラウド同期(tracker/explorerブロブ、LWW)src/app/api/billing/webhook— 署名付き Paddle イベント → D1 サブスクリプションsrc/app/api/billing/portal— Paddle サブスクリプション管理用 URLsrc/app/api/chat、src/app/api/popularity— プランに応じた利用枠src/app/api/terms/{suggest,related,trending}— Apple の公開検索語句 (D1 を使ったストアはsrc/lib/search-terms-store.tsにあります)migrations/— D1 スキーマ、src/lib— プラン/認証/課金/同期/利用枠のライブラリworker/、deploy/、compose.yml— 以前のアーキテクチャのロールバック用に凍結された成果物です。現在のバックエンドではありません。
ローカル開発
npm install
npm run dev
Keyword Explorer / My Apps は、環境変数なしで動作します(iTunes 推定値へのフォールバック)。
Apple の公式 Ads 人気度データを利用するには、サーバー専用の創業者認証情報が必要です。
# local — see .env.example
APPLE_ADS_CLIENT_ID=...
APPLE_ADS_TEAM_ID=...
APPLE_ADS_KEY_ID=...
APPLE_ADS_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
APPLE_ADS_ACCOUNT_ID=...
# production Worker secrets (never commit)
npx wrangler secret put APPLE_ADS_CLIENT_ID
npx wrangler secret put APPLE_ADS_TEAM_ID
npx wrangler secret put APPLE_ADS_KEY_ID
npx wrangler secret put APPLE_ADS_PRIVATE_KEY
npx wrangler secret put APPLE_ADS_ACCOUNT_ID
オプションの ASO Assistant(DeepSeek V4 Flash)を利用するには、サーバー専用のキーが必要です。
# local
echo 'DEEPSEEK_API_KEY=sk-...' >> .env.local
# production Worker secret (never commit the key)
npx wrangler secret put DEEPSEEK_API_KEY
このキーは POST /api/chat でのみ使用されます。ブラウザーに送信されることはありません。
収益化の設定(アカウント・Paddle・同期)
バックエンドは初期状態では無効になっており、創業者がこのチェックリストを完了するまで、各ルートは 503 を返し、アカウント UI は非表示になります。まず サンドボックスで設定し、その後、本番環境でも同じ手順を繰り返してください。
- データベース — 作成済みです:
appclimb-db(本番環境)とappclimb-db-staging。ローカル開発:npx wrangler d1 migrations apply appclimb-db --local。 - Paddle — paddle.com でアカウントを作成し、Products で 「AppClimb Pro」を作成して、価格を 2 種類設定します:Pro Monthly $8 と Pro Yearly $64。 価格 ID を控えてください。Sandbox → Developer tools → Authentication から、 API キー、クライアントサイドトークン、通知/webhook シークレットを取得します。
- Webhook — Paddle でサブスクリプションイベント
(
subscription.created/updated/paused/canceled)を登録し、送信先をhttps://appclimb.app/api/billing/webhookに設定します。 - Google OAuth — Google Cloud Console → APIs & Services → Credentials →
OAuth クライアント(Web)を作成し、認証済みのリダイレクト URI として
https://appclimb.app/api/auth/google/callbackを設定します。 - Resend — resend.com で API キーを取得し、送信ドメインとして
appclimb.appを検証します(表示された DNS レコードを追加してください)。 - サーバーシークレット(Worker 用。コミットしないでください):
npx wrangler secret put PADDLE_API_KEY npx wrangler secret put PADDLE_WEBHOOK_SECRET npx wrangler secret put RESEND_API_KEY npx wrangler secret put GOOGLE_CLIENT_ID npx wrangler secret put GOOGLE_CLIENT_SECRET npx wrangler secret put PRO_ENABLED # value: 1 — enables plan quotas - ビルド時の公開変数 — GitHub → リポジトリの Settings → Secrets and
variables → Actions → Variables:
NEXT_PUBLIC_PRO_ENABLED=1、NEXT_PUBLIC_PADDLE_CLIENT_TOKEN=<client token>、NEXT_PUBLIC_PADDLE_ENV=sandbox(その後production)、NEXT_PUBLIC_PADDLE_PRICE_PRO_MONTHLY=<price id>、NEXT_PUBLIC_PADDLE_PRICE_PRO_YEARLY=<price id>。 - ステージング —
npm run deploy:cloudflare:web:stagingでデプロイし、 本番環境への切り替え前に、staging環境にも同じシークレットを設定します (npx wrangler secret put ... --env staging)。
検証
npm run lint
npm run typecheck
npm test
npm run build
npm run build:cloudflare
npm run test:e2e
npm run check では、lint、型チェック、カバレッジ、および両方のビルドを実行します。
本番環境の設定
main へのプッシュで .github/workflows/cloudflare-deploy.yml が実行され、ビルド、D1 マイグレーションの適用、Web Worker のデプロイ、正規のホームページの確認、サイトマップの反映待ち、IndexNow への通知が行われます。デプロイはすぐに公開されるため、プッシュ前に npm run check と npm run test:e2e を実行してください。
本番環境の正規ホストは https://appclimb.app です。ステージング Worker は appclimb-web-staging です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。