/ ディレクトリ / プレイグラウンド / aso-skill
● コミュニティ furkancingoz ⚡ 即起動

aso-skill

作者 furkancingoz · furkancingoz/aso-skill

Claude Codeから完結するApp Store最適化:メタデータ生成+競合分析+スクリーンショット作成+JWTによるApp Store Connectへの直接提出。

ASOライフサイクルを網羅する6つのコマンド:文字数バリデーション付きメタデータ生成、iTunes APIを活用した競合分析、AI スクリーンショット生成(Gemini MCP)、App Store Connect API経由の提出(JWT)、バージョン管理、プライバシーポリシーと利用規約の自動生成。iOSアプリ提出時のWeb画面操作を不要にします。

なぜ使うのか

主な機能

ライブデモ

実際の動作

aso-skill.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "aso-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/furkancingoz/aso-skill",
        "~/.claude/skills/aso-skill"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "aso-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/furkancingoz/aso-skill",
        "~/.claude/skills/aso-skill"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "aso-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/furkancingoz/aso-skill",
        "~/.claude/skills/aso-skill"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "aso-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/furkancingoz/aso-skill",
        "~/.claude/skills/aso-skill"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "aso-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/furkancingoz/aso-skill",
        "~/.claude/skills/aso-skill"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "aso-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/furkancingoz/aso-skill",
          "~/.claude/skills/aso-skill"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add aso-skill -- git clone https://github.com/furkancingoz/aso-skill ~/.claude/skills/aso-skill

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: aso-skill

既存のApp Storeリスティングを1セッションで最適化する

👤 インストール数が伸び悩んでいる個人iOS開発者 ⏱ ~60 min intermediate

使うタイミング: プロダクトページのコンバージョン率が横ばいで、データに基づいたリフレッシュを行いたいとき。

前提条件
  • App Store Connect APIキー(JWT) — App Store Connect -> Users and Access -> Integrations -> キーを作成し、.p8ファイルをダウンロード
  • スキルのインストール — git clone https://github.com/furkancingoz/aso-skill ~/.claude/skills/aso-skill
フロー
  1. 競合分析を実行
    Use aso-skill to pull the top 10 competitors for 'habit tracker' in the US store. Compare their subtitles and keywords.✓ コピーしました
    → 頻度加重キーワードクラスターを含む比較表
  2. 最適化されたメタデータを生成
    Now generate a new title, subtitle, keyword list, and promotional text for my app. Validate character limits.✓ コピーしました
    → 文字数制限内のフィールド一覧(推定インパクト順)
  3. ASC API経由で提出
    Push the new metadata to App Store Connect as a new version pending submission.✓ コピーしました
    → バージョンドラフトが作成され、手動レビューの準備完了

結果: データに裏付けられたストーリーで刷新されたリスティングが、ASCを手動操作することなく提出されます。

注意点
  • 100文字のキーワードフィールドを超えるキーワード詰め込み — スキルがバリデーションしますが、必ず再確認してください — 詰め込みすぎは関連性を損ないます
組み合わせ: github

新規iOSアプリをエンドツーエンドで提出する

👤 初めてアプリをリリースする個人開発者 ⏱ ~180 min advanced

使うタイミング: IPAの準備ができており、それ以外のすべてを自動化したいとき。

前提条件
  • App Store ConnectにIPAがアップロード済み — Xcodeまたは Transporter を使用
フロー
  1. メタデータ+法務ドキュメントを生成
    Generate metadata and auto-draft privacy policy + terms for a meditation app targeting EN/DE/FR.✓ コピーしました
    → ローカライズ済みメタデータ+ホスティングされた法務ドキュメントのURL
  2. スクリーンショットを生成
    Use aso-skill + Gemini MCP to generate 5 App Store screenshots per locale matching the app's visual identity.✓ コピーしました
    → 正しい解像度のPNGセット
  3. 審査に提出
    Attach the build, upload screenshots, submit for review with a phased 7-day rollout.✓ コピーしました
    → バージョンステータス: Waiting For Review

結果: ASCを手動で開くことなく、アプリが審査に提出されます。

注意点
  • スクリーンショットのテキストがストアガイドラインに違反 — スクリーンショットのテキストを最小限にし、セーフエリア内に収めるようスキルに指示してください

競合の変化に基づく四半期キーワード更新

👤 運用中アプリのグロースマーケター ⏱ ~30 min intermediate

使うタイミング: 四半期ごと、または競合がキーワード戦略を変更したとき。

フロー
  1. 前四半期とのキーワード差分を比較
    Compare this quarter's competitor keyword cluster against last quarter's. What's new?✓ コピーしました
    → 追加・削除されたキーワード
  2. 更新を提案
    Propose a keyword update — keep my wins, capture 2–3 new opportunities.✓ コピーしました
    → 修正された100文字キーワードフィールド

結果: 6か月前のリサーチではなく、最新の市場状況を反映したキーワード更新が反映されます。

組み合わせ

他のMCPと組み合わせて10倍の力を

本スキルの実行レイヤーの上に、もう一つのASOスキルのレポーティングレイヤーを活用する

After aso-skill submits, use claude-code-aso-skill reporting to summarize the changes.✓ コピーしました
aso-skill + github

メタデータとスクリーンショットをリポジトリにコミットしてバージョン管理する

Write metadata to fastlane/metadata and commit with the version tag.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
competitor_analysis search term, country リサーチフェーズ 0 (iTunes API free)
generate_metadata app profile, target keywords ドラフト作成時 0
generate_screenshots app identity, device sizes アセット準備時 Gemini MCPクォータ
generate_legal app profile, jurisdictions 提出前 0
asc_submit version, metadata, screenshots, build 最終提出時 ASC API呼び出し

コストと制限

運用コスト

APIクォータ
iTunes Search API: 無料、軽度のレート制限あり。App Store Connect: アカウントごとのクォータ制。
呼び出しあたりのトークン
スクリーンショット生成は大量消費、それ以外は中程度
金額
スキル自体は無料。Geminiの利用料は別途発生します
ヒント
競合データは四半期単位でローカルにキャッシュしてください — 毎時変わるものではありません

セキュリティ

権限、シークレット、影響範囲

最小スコープ: App Store Connect: App Manager on one app (prefer) over admin
認証情報の保管: JWTの.p8キーはローカルに保存し、環境変数でパスを参照してください。絶対にgitにコミットしないこと
データ送信先: iTunes API(パブリック)、Apple ASC API、スクリーンショット有効時はGemini MCP
絶対に付与しない: Account Holder role to the key used by the skill

トラブルシューティング

よくあるエラーと対処法

ASC 401

JWTの有効期限切れ(最大20分) — 再生成してください。issuer idとkey idが正しいか確認してください

確認: curl with the JWT against https://api.appstoreconnect.apple.com/v1/apps
Metadata field rejected for character limit

スキルのバリデーションがローカライズに対応していない可能性があります — ロケールごとに個別にバリデーションしてください

Screenshots wrong resolution

デバイスリストを明示的に指定してください。Appleの必須サイズは変更されることがあります

代替案

aso-skill 他との比較

代替案代わりに使う場面トレードオフ
claude-code-aso-skillエージェントベースのASOレポーティングフレームワークが必要なときApp Store Connectとの直接連携が少ない
Fastlane deliverすでにFastlaneパイプラインを運用しているときAIによるメタデータ下書き機能がない

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る