mcpField
A
appindex

appindex

ローカル
github.com/CloudCorpRecordsビジネス・マーケティング01 週間前に更新

appindex について

appindexは、ホスト型のAppNicheサービスにつなぐローカルブリッジです。エージェント向けにApp StoreとGoogle Playのライブデータを提供し、検索、指標履歴、掲載変更、キーワード評価、レビュー取得を転送します。カタログはローカルに保持しません。

主な機能

  1. 01両ストアのアプリ検索
  2. 02アプリ詳細と指標履歴の取得
  3. 03掲載変更タイムラインの表示
  4. 04キーワード難易度と機会の評価
  5. 05レビューと対応国の取得

活用シーン

  1. 01カテゴリ、評価、ダウンロード数でアプリを絞り込む
  2. 02指標やストア掲載内容の変更を追跡する
  3. 03キーワードの競合度を比較する
  4. 04レビューと感情トピックを確認する

MCP 対応

MCP サーバーとして、ホスト型AppNiche MCP サーバーのツール一覧をMCPクライアントに公開し、呼び出しを上流へ転送します。結果は変更せず返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-appindex": {
"command": "npx",
"args": [
"-y",
"@reneturcios/appindex"
]
}
}
}
起動コマンドnpx -y @reneturcios/appindex

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/appindex0.1.0
ocighcr.io/cloudcorprecords/appindex:0.1.0

ツール

8

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
gamesanyいいえtrue:両ストアのゲームのみ。App Store の「Games」カテゴリと Google Play のすべてのゲームカテゴリが対象です。'game_genres' で絞り込めます。
limitintegerいいえ返すアプリの数(1~100)。省略時は、アシスタントのサインイン接続では20、APIキー使用時は50です。返されるアプリごとに1クレジットを消費するため、必要なページサイズを指定してください。残高が少ない場合、ページサイズは残高に合わせて縮小されます。
storeanyいいえ結果を1つのストアに限定します:“apple”(App Store)または“google”(Google Play)。省略すると両方を検索します。
offsetintegerいいえ結果を返す前にスキップするアプリの数。ページネーションに使用します。
searchanyいいえアプリのタイトルとデベロッパー名を対象とするフリーテキスト検索。例:“calorie tracker”。
sort_byenumいいえ並べ替えに使う列:“downloads”(デフォルト)、“revenue”、“growth”、“reviews”、“rating”、“title”、“released”または“updated”。downloads | revenue | growth | reviews | rating | title | released | updated
categoryanyいいえ絞り込みに使うストアカテゴリ名。例:“Health & Fitness”、“Productivity”、“Games”。複数を含めるには“categories”を使用します。
languageanyいいえアプリの掲載情報がサポートする単一のアプリ言語コード。例:“en”、“de”、“pt-BR”。
sort_direnumいいえ並べ替えの方向:“desc”(デフォルト、降順)または“asc”。asc | desc
languagesanyいいえ含めるアプリの言語コード。例:['en', 'es']。
search_inanyいいえ「search」で一致させるフィールド:「title」、「developer」、または「all」(デフォルト)。「developer」を指定すると、パブリッシャーのアプリ一覧を取得できます。
categoriesanyいいえ含める複数のカテゴリ名。例:['Health & Fitness', 'Lifestyle']。「category」より優先されます。
max_ratinganyいいえ含める最高平均星評価(0~5)。既存の競合の評価が低いものを探す際に使用します。
min_ratinganyいいえ含める最低平均星評価(0~5)。例:4。
game_genresanyいいえ指定したジャンルのゲーム。両ストアで同じ名称が使われます。例:['Puzzle', 'Role Playing', 'Strategy'](ほかに Action、Adventure、Arcade、Board、Card、Casino、Casual、Educational、Family、Music、Racing、Simulation、Sports、Trivia、Word)。'games' が暗黙的に指定されます。
max_revenueanyいいえ推定月間収益の上限(USD)。例:50000 は月額 $50K を表します。
max_reviewsanyいいえ累計レビュー数の上限。例:1000 を指定すると、市場を確立した巨大アプリを除外できます。
min_revenueanyいいえ推定月間収益の下限(USD)。例:10000 は月額 $10K を表します。
min_reviewsanyいいえ累計レビュー数の下限。例:1000。
price_modelanyいいえ収益化モデル:「Free」、「Freemium」、または「Paid」。入力時は大文字と小文字を区別しません。
growth_metricanyいいえ成長フィルターで測定する指標。現在は「reviews」のみです。
growth_periodanyいいえ成長を測定する期間:「7d」、「14d」、「30d」、「60d」、または「90d」。両方のストアが対象です。Google Play アプリは数週間ごとに測定されるため、14~90 日間の成長率は各アプリの直近の過去の測定値から按分して算出され、「7d」よりはるかに多くの Play アプリを対象にします。
max_downloadsanyいいえ推定月間ダウンロード数の上限。
min_downloadsanyいいえ推定月間ダウンロード数の下限。例:10000。
not_languagesanyいいえローカライズ不足フィルター:指定した言語コードのいずれにもローカライズされていないアプリのみを返します。例:['it'] を指定すると、イタリア語にローカライズされていないアプリを検索します。App Store のデータのみが対象です。languages=['en'] と組み合わせると、対象市場の言語に未対応の英語アプリを絞り込めます。
updated_afteranyいいえ最終更新日がこの日付以降のアプリのみ。形式は「YYYY-MM-DD」です。
min_growth_pctanyいいえ「growth_period」期間内の絶対成長率の下限。例:20 は少なくとも ±20% を表します。
released_afteranyいいえリリース日がこの日付以降のアプリのみ。形式は「YYYY-MM-DD」です。
updated_beforeanyいいえ最終更新日がこの日付以前のアプリのみ。形式は「YYYY-MM-DD」です。
released_beforeanyいいえリリース日がこの日付以前のアプリのみ。形式は「YYYY-MM-DD」です。
growth_directionanyいいえ「growth_period」内に成長('up')または減少('down')しているアプリのみを対象にします。
max_days_since_updateanyいいえこの日数以内に更新されたアプリのみを対象にします。例:30 は積極的にメンテナンスされているアプリを示します。
max_days_since_releaseanyいいえこの日数以内に初めてリリースされたアプリのみを対象にします。例: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 を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。