storebridge-mcp について
storebridge-mcpは、StoreBridge APIを介してApple App StoreとGoogle Playのデータを検索するリモートMCPサーバーです。アプリ検索、ストア情報、デベロッパーのアプリ一覧、推定ASO指標を扱います。
主な機能
- 01AppleとGoogle Playを横断したアプリ検索
- 02アプリ詳細、レビュー、類似アプリの取得
- 03Google Playの権限とデータセーフティの確認
- 04ランキング、カテゴリ、デベロッパー情報の取得
- 05キーワード案と推定アプリ順位の取得
活用シーン
- 01ストア間でアプリ掲載情報を比較
- 02評価やユーザーフィードバックを確認
- 03Google Playのアプリ開示情報を確認
- 04ストアランキングとASOキーワード指標を調査
MCP 対応
`/mcp`のStreamable HTTPを通じて、13個の読み取り専用MCPツールを提供します。ツールはStoreBridge APIに呼び出しを転送します。READMEによると、本番上流には現在プロキシシークレットの認証があり、標準設定では一連のアクセスが成立しない場合があります。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://storebridge-mcp.vercel.app/mcpclaude mcp add --transport http isaiahdupree-storebridge https://storebridge-mcp.vercel.app/mcp{"mcpServers":{"isaiahdupree-storebridge":{"type":"http","url":"https://storebridge-mcp.vercel.app/mcp"}}}Cursor で開く{"servers":{"isaiahdupree-storebridge":{"type":"http","url":"https://storebridge-mcp.vercel.app/mcp"}}}VS Code で開く{"mcpServers":{"isaiahdupree-storebridge":{"type":"http","url":"https://storebridge-mcp.vercel.app/mcp"}}}{"mcpServers":{"isaiahdupree-storebridge":{"serverUrl":"https://storebridge-mcp.vercel.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
13| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| lang | string | いいえ | 言語(Apple 形式は en_us、Google 形式は en)。省略時は国から判定します。 |
| term | string | はい | URL エンコードされた検索語。 |
| limit | integer | いいえ | 結果の最大数。Apple は最大 50 に制限され、Google は 1~250 を受け付けます。デフォルトは 50 です。 |
| price | enum | いいえ | 価格フィルター。Google のみ対象で、Apple では無視されます。デフォルトは all です。all | free | paid |
| store | enum | はい | 対象のストア。"both" は両方のエンジンに問い合わせて結果を統合します。apple | google | both |
| device | enum | いいえ | Apple のみ。software / iPadSoftware / macSoftware にマッピングされます。デフォルトは iphone です。iphone | ipad | mac |
| country | string | いいえ | ISO-3166 の 2 文字 storefront/region(小文字)。デフォルトは us です。 |
| fullDetail | boolean | いいえ | Google のみ対応。高コスト(結果ごとに完全な情報を取得)。デフォルトは false です。 |
詳細
storebridge-mcp
StoreBridge API 用のリモート MCP(Model Context Protocol) コネクターです。Apple App Store と Google Play のデータを統合した API で、検索、アプリ詳細、レビュー、類似アプリ、チャート、カテゴリ、デベロッパーのポートフォリオ、オートコンプリート、方向性のある ASO キーワード/ランキング機能を提供します。
稼働中: https://storebridge-mcp.vercel.app/mcp(Vercel プロジェクト storebridge-mcp、チーム isaiahduprees-projects) — 13 個のツールを提供し、実際の本番データで検証済みです。上流の StoreBridge デプロイは従量課金制(RapidAPI/Apify)のため、このコネクターは同じ Apify アクターのベアラートークン(STOREBRIDGE_APIFY_BEARER)で外向きの呼び出しを認証し、IP ごとのソフトなレート制限(STOREBRIDGE_MCP_RATE_LIMIT、デフォルトは 1 時間あたり 30 ツール呼び出し、メモリ内)を適用します。これにより、無料の MCP 層が有料の掲載を無制限に迂回する手段ではなく、見つけてもらうための窓口として機能します。詳しくは lib/ratelimit.js を参照してください。
このコネクターの概要と、独立したコネクターである理由
StoreBridge API はシンプルな REST API です。どの HTTP クライアントからでも直接呼び出せます。このリポジトリが存在するのは、MCP クライアント(Claude、ChatGPT、およびその他の MCP 対応エージェント)が任意の REST API を利用するのではなく、MCP ツールを利用するためです。 storebridge-mcp は次の機能を備えた薄いアダプター層です。
- StoreBridge の各エンドポイントを、LLM が認識して直接呼び出せる、名前、説明、zod 入力スキーマ、アノテーションを備えた、検出可能で型付けされた MCP ツールとして公開します。REST API の仕様を別途教える必要はありません。
- 単一の
/mcpエンドポイントで MCP の ストリーミング可能な HTTP トランスポートを使用するため、Claude、ChatGPT、その他の MCP クライアントに URL ひとつでコネクターとして登録できます。 - それ以外の機能はありません。独自のビジネスロジックはなく、すべてのツール呼び出しは StoreBridge への単純な
fetchであり、StoreBridge が返す JSON レスポンスはそのままツールの結果として返されます。
認証:なし(意図的な設計)
ユーザーがサインインした状態での個人用 Mac、ショップ、アカウントのデータを扱うため OAuth が必要な、この組織の他の MCP コネクター(NotesBridge、GapRadar、EtsyOps など)とは異なり、StoreBridge のデータにはユーザーごとの区分がありません。 公開されているアプリストアのメタデータ(掲載情報、レビュー、チャート、デベロッパーページ)だからです。呼び出し元ごとにアクセスを制限するものがないため、このコネクターには意図的に次の機能がありません。
- OAuth、ログイン、ベアラートークンなし
- Supabase/データベースなし
- 課金、プラン、使用量の計測なし
- デモアカウントと実アカウントの区別なし — すべての呼び出し元が同じ実際の最新データを取得します
このため、このコネクターは組織内の OAuth ベースのコネクターより大幅にシンプルです。api/mcp.js はリクエストごとにステートレスな McpServer を新しく作成し、認証チェックなしで提供します。
既知の注意点(下記参照): 本番の StoreBridge API デプロイ(
https://storebridge-api.vercel.app)は現在、/v1/*に RapidAPI プロキシシークレットによる保護を設けています(「上流の認証に関する注意点」を参照)。これは上流のデプロイ/収益化に関する事情であり、このコネクターに認証を追加する理由ではありません。ただし、このコネクターのデフォルト設定で本番トラフィックを最後まで処理できるようにするには、上流のベース URL を公開デプロイに向けるか、保護を緩和するか、サーバー側でプロキシシークレットを注入する必要があります。
ツール一覧
StoreBridge の各エンドポイントに対して、1 つのツールを用意しています(storebridge-api/openapi.yaml より)。
| ツール | StoreBridge エンドポイント | 説明 |
|---|---|---|
search_apps | GET /v1/search | Apple App Store、Google Play、または両方でアプリを検索します。 |
get_apps_batch | GET /v1/apps | バンドル ID で Apple アプリを特定するか、カンマ区切りの ID を指定して複数のアプリを一括取得します。 |
get_app | GET /v1/apps/{id} | アプリの詳細情報(説明、バージョン、評価の分布、スクリーンショット、サイズ、インストール数など)を取得します。 |
get_app_reviews | GET /v1/apps/{id}/reviews | アプリのレビューをページネーション付きで取得します。 |
get_similar_apps | GET /v1/apps/{id}/similar | 「この商品を買った人はこんな商品も買っています」や、関連アプリを取得します。 |
get_app_permissions | GET /v1/apps/{id}/permissions | Google Play で宣言されている権限を取得します(Google のみ)。 |
get_app_datasafety | GET /v1/apps/{id}/datasafety | Google Play の「データセーフティ」セクションを取得します(Google のみ)。 |
get_charts | GET /v1/charts | トップチャートのランキングを取得します(カテゴリ別の無料、有料、売上上位)。 |
get_categories | GET /v1/categories | ストアのカテゴリ/ジャンル一覧を取得します。 |
get_developer | GET /v1/developers/{id} | デベロッパーの記録と、そのデベロッパーが公開したアプリを取得します。 |
autocomplete_suggest | GET /v1/suggest | 入力途中のクエリに対するオートコンプリート候補を取得します。 |
get_aso_keywords | GET /v1/aso/keywords | キーワード候補と難易度の目安を取得します(ライブ検索に基づく推定値であり、パネルデータではありません)。 |
get_aso_rank | GET /v1/aso/rank | 最大 20 個のキーワードにおける、ある時点でのアプリのランキングを取得します(推定値)。 |
13 個のツールはすべて読み取り専用で、{ readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true } と注釈されています。いずれもデータを書き込まず、すべて外部で変化するライブのアプリストアデータを反映します。
(ビルド概要では例示的なツール名が約 9~10 個挙げられていましたが、StoreBridge の実際に確認済みの openapi.yaml の対象は GET エンドポイント 13 個です。そのため、このビルドでは切りのよい数に合わせて実在する 3 個を省くのではなく、13 個すべてに 1 対 1 で対応しています。)
storebridge-api のラッパー
各ツールハンドラーは実際の StoreBridge REST API に対して fetch(\${STOREBRIDGE_API_BASE_URL}${path}`, ...)` を実行し、解析した JSON を MCP ツール結果のコンテンツとして返します。
{ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }
上流の HTTP エラー(4xx/5xx)は捕捉され、リクエストをクラッシュさせるのではなく、asError ヘルパーを介して型付きの MCP エラー結果として通知されます。
STOREBRIDGE_API_BASE_URL(環境変数)で上流のベース URL を設定します。デフォルト値は https://storebridge-api.vercel.app です。
プロジェクト構成
api/mcp.js MCP endpoint (StreamableHTTPServerTransport, stateless, no auth)
api/health.js GET /api/health
lib/tools.js All 13 tool definitions (zod schemas + fetch-and-forward handlers)
local-server.js Plain-Node http server for local dev / smoke testing (not deployed)
test/smoke.mjs Real end-to-end smoke test (initialize, tools/list, tools/call)
vercel.json Routes /mcp -> api/mcp.js, /health -> api/health.js
このリポジトリには、意図的に .well-known や OAuth メタデータの対象がありません。この組織のほかのコネクターにある 401 と WWW-Authenticate: Bearer resource_metadata=... のやり取り、および /.well-known/oauth-protected-resource//.well-known/oauth-authorization-server エンドポイントは、OAuth ディスカバリーフローをサポートするためだけに存在します。認証なしの MCP ストリーミング可能 HTTP サーバーには、クライアントが検出したり認可したりする対象はなく、POST リクエストを受け付けるだけです。OAuth メタデータを完全に省略するのはここでは正しく、見落としではありません。
ローカル開発
npm install
npm run dev # starts local-server.js on http://localhost:3900
ローカルのエンドポイント:POST http://localhost:3900/mcp、GET http://localhost:3900/health。
本番環境の代わりに、セルフホスト可能/オープンな StoreBridge インスタンスを指定するには(本番環境で RapidAPI のガードが有効な間に便利です。下記を参照してください):
STOREBRIDGE_API_BASE_URL=http://localhost:8080 npm run dev
スモークテスト
npm run dev & # terminal 1
npm run smoke # terminal 2
test/smoke.mjs は実際の HTTP/JSON-RPC 経由で実行中のサーバーにアクセスし、以下を検証します。
GET /healthが{ ok: true, ... }を返すinitializeが成功し、serverInfo.name === "storebridge"を報告するtools/listが zod から生成された JSON スキーマとともに 13 個すべてのツールを返す{ term: "notes", store: "apple", limit: 3 }を指定したsearch_appsのtools/callが、モックではなく、ライブで取得した実際のアプリの検索結果を返す
上流の認証に関する注意事項(デプロイ前にお読みください)
この実装の作成中に、storebridge-api 自体の server.js / src/guard.js を確認しました。本番環境では、すべての /v1/* ルートが RapidAPI プロキシシークレット(rapidApiGuard)で保護されており、RAPIDAPI_PROXY_SECRET が未設定の場合(セルフホスト/開発モード)にのみ公開されます。つまり、現在のデプロイ環境では、有効な X-RapidAPI-Proxy-Secret ヘッダーがないと https://storebridge-api.vercel.app/v1/search?... は 403 forbidden を返します。データ自体は公開情報(アプリストアの掲載情報)であり、長期的な方針(組織の製品ラインによるもの)は完全に公開されたキー不要の API であるものの、現時点のライブ URL は実際には公開されていません。
この点によって、このコネクターのアーキテクチャが変わるわけではありません。保護すべき呼び出し元ごとの状態がないため、設計上、storebridge-mcp 自体は引き続き認証を一切備えていません。ただし、storebridge-mcp のデフォルトの STOREBRIDGE_API_BASE_URL(本番 URL)でエンドツーエンドの実トラフィックを処理するには、上流で次のいずれかを行う必要があります。
- このコネクターの接続先となる、公開設定(
RAPIDAPI_PROXY_SECRETなし)の StoreBridge インスタンスをデプロイする、または - RapidAPI を経由しない
/v1/*トラフィック用の区分について、ガードを緩和する、または - このコネクターからの送信リクエストに、サーバー側の RapidAPI プロキシシークレット/Apify ベアラートークンを付与する(この場合、
RAPIDAPI_PROXY_SECRETまたはAPIFY_BEARERをここの環境変数に追加し、lib/tools.jsのcallStoreBridgeでヘッダーとして転送する必要があります)。
このリポジトリのスモークテストでは、実際に稼働中のセルフホスト StoreBridge インスタンス(storebridge-api リポジトリで RAPIDAPI_PROXY_SECRET を設定せずに node server.js を実行。このモードではガードは明示的に無効です)に対して、実際の Apple App Store データを取得しながら、MCP プロトコルの接続とツール呼び出しの仕組みがエンドツーエンドで機能することを確認しています。正確なライブレスポンスについては、ビルドレポートのスモークテスト出力をご覧ください。
デプロイ
まだデプロイしていません(意図的に、まず検証を行うためです)。検証後、次のようにします。
cd /Users/isaiahdupree/Software/storebridge-mcp
npx vercel --yes --prod
デプロイ後、Claude/ChatGPT/任意の MCP クライアントに登録する MCP コネクター URL は次のとおりです。
https://<deployment-domain>/mcp
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。