appindex について
appindexは、ホスト型のAppNicheサービスにつなぐローカルブリッジです。エージェント向けにApp StoreとGoogle Playのライブデータを提供し、検索、指標履歴、掲載変更、キーワード評価、レビュー取得を転送します。カタログはローカルに保持しません。
主な機能
- 01両ストアのアプリ検索
- 02アプリ詳細と指標履歴の取得
- 03掲載変更タイムラインの表示
- 04キーワード難易度と機会の評価
- 05レビューと対応国の取得
活用シーン
- 01カテゴリ、評価、ダウンロード数でアプリを絞り込む
- 02指標やストア掲載内容の変更を追跡する
- 03キーワードの競合度を比較する
- 04レビューと感情トピックを確認する
MCP 対応
MCP サーバーとして、ホスト型AppNiche MCP サーバーのツール一覧をMCPクライアントに公開し、呼び出しを上流へ転送します。結果は変更せず返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| games | any | いいえ | true:両ストアのゲームのみ。App Store の「Games」カテゴリと Google Play のすべてのゲームカテゴリが対象です。'game_genres' で絞り込めます。 |
| limit | integer | いいえ | 返すアプリの数(1~100)。省略時は、アシスタントのサインイン接続では20、APIキー使用時は50です。返されるアプリごとに1クレジットを消費するため、必要なページサイズを指定してください。残高が少ない場合、ページサイズは残高に合わせて縮小されます。 |
| store | any | いいえ | 結果を1つのストアに限定します:“apple”(App Store)または“google”(Google Play)。省略すると両方を検索します。 |
| offset | integer | いいえ | 結果を返す前にスキップするアプリの数。ページネーションに使用します。 |
| search | any | いいえ | アプリのタイトルとデベロッパー名を対象とするフリーテキスト検索。例:“calorie tracker”。 |
| sort_by | enum | いいえ | 並べ替えに使う列:“downloads”(デフォルト)、“revenue”、“growth”、“reviews”、“rating”、“title”、“released”または“updated”。downloads | revenue | growth | reviews | rating | title | released | updated |
| category | any | いいえ | 絞り込みに使うストアカテゴリ名。例:“Health & Fitness”、“Productivity”、“Games”。複数を含めるには“categories”を使用します。 |
| language | any | いいえ | アプリの掲載情報がサポートする単一のアプリ言語コード。例:“en”、“de”、“pt-BR”。 |
| sort_dir | enum | いいえ | 並べ替えの方向:“desc”(デフォルト、降順)または“asc”。asc | desc |
| languages | any | いいえ | 含めるアプリの言語コード。例:['en', 'es']。 |
| search_in | any | いいえ | 「search」で一致させるフィールド:「title」、「developer」、または「all」(デフォルト)。「developer」を指定すると、パブリッシャーのアプリ一覧を取得できます。 |
| categories | any | いいえ | 含める複数のカテゴリ名。例:['Health & Fitness', 'Lifestyle']。「category」より優先されます。 |
| max_rating | any | いいえ | 含める最高平均星評価(0~5)。既存の競合の評価が低いものを探す際に使用します。 |
| min_rating | any | いいえ | 含める最低平均星評価(0~5)。例:4。 |
| game_genres | any | いいえ | 指定したジャンルのゲーム。両ストアで同じ名称が使われます。例:['Puzzle', 'Role Playing', 'Strategy'](ほかに Action、Adventure、Arcade、Board、Card、Casino、Casual、Educational、Family、Music、Racing、Simulation、Sports、Trivia、Word)。'games' が暗黙的に指定されます。 |
| max_revenue | any | いいえ | 推定月間収益の上限(USD)。例:50000 は月額 $50K を表します。 |
| max_reviews | any | いいえ | 累計レビュー数の上限。例:1000 を指定すると、市場を確立した巨大アプリを除外できます。 |
| min_revenue | any | いいえ | 推定月間収益の下限(USD)。例:10000 は月額 $10K を表します。 |
| min_reviews | any | いいえ | 累計レビュー数の下限。例:1000。 |
| price_model | any | いいえ | 収益化モデル:「Free」、「Freemium」、または「Paid」。入力時は大文字と小文字を区別しません。 |
| growth_metric | any | いいえ | 成長フィルターで測定する指標。現在は「reviews」のみです。 |
| growth_period | any | いいえ | 成長を測定する期間:「7d」、「14d」、「30d」、「60d」、または「90d」。両方のストアが対象です。Google Play アプリは数週間ごとに測定されるため、14~90 日間の成長率は各アプリの直近の過去の測定値から按分して算出され、「7d」よりはるかに多くの Play アプリを対象にします。 |
| max_downloads | any | いいえ | 推定月間ダウンロード数の上限。 |
| min_downloads | any | いいえ | 推定月間ダウンロード数の下限。例:10000。 |
| not_languages | any | いいえ | ローカライズ不足フィルター:指定した言語コードのいずれにもローカライズされていないアプリのみを返します。例:['it'] を指定すると、イタリア語にローカライズされていないアプリを検索します。App Store のデータのみが対象です。languages=['en'] と組み合わせると、対象市場の言語に未対応の英語アプリを絞り込めます。 |
| updated_after | any | いいえ | 最終更新日がこの日付以降のアプリのみ。形式は「YYYY-MM-DD」です。 |
| min_growth_pct | any | いいえ | 「growth_period」期間内の絶対成長率の下限。例:20 は少なくとも ±20% を表します。 |
| released_after | any | いいえ | リリース日がこの日付以降のアプリのみ。形式は「YYYY-MM-DD」です。 |
| updated_before | any | いいえ | 最終更新日がこの日付以前のアプリのみ。形式は「YYYY-MM-DD」です。 |
| released_before | any | いいえ | リリース日がこの日付以前のアプリのみ。形式は「YYYY-MM-DD」です。 |
| growth_direction | any | いいえ | 「growth_period」内に成長('up')または減少('down')しているアプリのみを対象にします。 |
| max_days_since_update | any | いいえ | この日数以内に更新されたアプリのみを対象にします。例:30 は積極的にメンテナンスされているアプリを示します。 |
| max_days_since_release | any | いいえ | この日数以内に初めてリリースされたアプリのみを対象にします。例:90 は最近リリースされたアプリを示します。 |
詳細
appindex
appindex は、ライブの App Store と Google Play のデータを公開するホスト型 AppNiche MCP サーバーへの、小規模なローカルブリッジです。25 を超えるフィルターを使って両ストアを検索し、アプリの全レコードを取得し、過去の指標や掲載情報の変更履歴を確認し、キーワードの難易度と機会を評価し、アプリレビューを読み、対応する国コードを一覧表示できます。カタログのローカルコピーを用意する必要はなく、すべてエージェントから利用できます。
このブリッジはアプリデータを一切保持しません。ライブエンドポイントから取得した上流サーバーのツール一覧をそのままローカルで提供し、各ツール呼び出しを上流へ転送して、結果を変更せずに返します。一部のツールの説明には、呼び出しごとのクレジット消費量が記載されています。このクレジットは、呼び出し元が以前から保有している AppNiche アカウントに対して、上流サービスによって請求されます。ここにはクレジットの購入、アカウントの作成、キーの発行を行うツールはなく、ブリッジがそれらを追加することもありません。
ツール
search_apps— ストア、カテゴリ、ゲームとゲームジャンル、言語(ローカライズの不足を調べるnot_languagesフィルターを含む)、価格モデル、評価、レビュー数、ダウンロード数と収益の推定値、リリースとアップデートの新しさ、レビュー増加の傾向に関するフィルターを使って、App Store と Google Play のアプリを検索します。任意の列で並べ替えられます。 すべてのフィルターは省略可能です。get_app_detail— アプリの全レコードを返します。 必須:app_id("apple:284882215"や"google:com.spotify.music"のような正規 ID、Apple のトラック ID のみ、Android のパッケージ名、またはストアの URL)。get_app_historicals— 1 つのアプリの過去の指標データを返します。最大 90 日分は日次、それ以降は週次です。必須:store_id。任意:store、days。get_app_timeline— 1 つのアプリの掲載情報の変更履歴を新しい順に返します。バージョン、アイコンとスクリーンショットのデザイン変更、価格とビジネスモデルの変更、改名、カテゴリの移動、説明文の書き換えなどを日ごとにまとめて表示します。必須:store_id。任意:store、days、before。get_keyword_difficulty— App Store または Google Play で、1 つのキーワードの難易度と機会を評価します。必須:keyword。任意:store、country、language。batch_keyword_difficulty— 1 回の呼び出しで最大 10 個のキーワードを評価します。必須:keywords。 任意:store、country、language。get_app_reviews— アプリのレビューを読み取ります。任意のアプリのストア上の最新レビューを取得するにはapp_idを指定します。省略すると、感情、トピック、改善点が付加されたワークスペースの追跡対象アプリを読み取ります。 すべての引数は省略可能です。get_supported_countries— 対応する国コードを返します。引数は不要です。
設定
APPNICHE_MCP_URL(任意)— 上流エンドポイントを上書きします。既定値はhttps://api.getappniche.com/mcpです。(上書き用フックは、この再構築版独自のものであることを明記しています。)GETAPPNICHE_API_KEY(任意)— 設定すると、すべての上流リクエストに、呼び出し元自身の AppNiche キーを使用したAuthorization: Bearer <key>ヘッダーが付加されます。このキーは、呼び出し元の AppNiche ダッシュボード設定で作成されたものです。設定されていない場合、キーのヘッダーは送信されません。(ヘッダー名と環境変数名は、オリジナルのレジストリ記録に基づいています。Bearer スキームとこの環境変数の転送は、再構築版であることを明記しています。オリジナルのインターフェイスは、キーを使用しない状態で取得されました。)
転送の仕組み
最初のツール呼び出し時に、クライアントは上流とストリーミング可能な
HTTP セッションを開きます。まず JSON-RPC
initialize リクエスト(protocolVersion 2025-03-26、
clientInfo name appindex)を送り、次に
notifications/initialized 通知を送り、その後、呼び出し元の引数を
変更せずに含めた tools/call リクエストを送ります。上流が
Mcp-Session-Id ヘッダーを付けて initialize に応答すると、
その値はセッションの以降のすべてのリクエストに引き継がれ、
プロセスが終了するまで再利用されます。応答はプレーンな JSON、
またはサーバー送信イベントとして届くことがあり、どちらも読み取ります。
上流からの成功結果は、上流が設定した isError フラグも含め、
そのまま返されます。JSON-RPC エラー、2xx 以外のステータス、
読み取り不能な応答、または完了できないリクエストといった失敗は、
テキストが appindex error: で始まる isError 結果として返されます
(この表記は、この再構築版独自のラベル付き再現です)。
CLI
各ツールは、JSON 引数文字列を受け取るサブコマンドとしても実行できます。
npx @reneturcios/appindex search_apps '{"search":"calorie tracker","store":"apple","limit":10}'
npx @reneturcios/appindex get_app_detail '{"app_id":"apple:284882215"}'
npx @reneturcios/appindex get_keyword_difficulty '{"keyword":"habit tracker"}'
npx @reneturcios/appindex get_supported_countries
npx @reneturcios/appindex --version
終了コード:成功時は 0、isError 結果の場合は 1、使用方法に誤りがある場合は 2 です。
MCP サーバー
npx -y @reneturcios/appindex mcp
MCP クライアントの設定:
{
"mcpServers": {
"appindex": {
"command": "npx",
"args": ["-y", "@reneturcios/appindex", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/appindex
docker run --rm ghcr.io/cloudcorprecords/appindex --version
コンテナーのデフォルトコマンドは mcp です。そのため、最初の形式では stdio MCP サーバーが起動し、それ以外の引数は通常どおり CLI に渡されます。
開発
npm install
npm run build
npm test
npm run dev
テストスイートはすべてスタブ化された JSON-RPC 上流を相手に実行され、実際のネットワーク呼び出しは行いません。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。