Tool reference

Every MCP tool exposed by the Asomium server — auto-generated from the registry.

The Asomium MCP server exposes 35 tools. Each maps to one action you can also take in the Mac app; the MCP server is a thin adapter that exposes them over stdio to MCP-aware clients (Claude Code, Claude Desktop, Cursor, Windsurf).

See MCP overview for the architecture, Auth & local state for how credentials reach the server, and Connect ASC for the one-time App Store Connect setup.

Discovery & ASO

asomium_competitor_intel

Pull a competitor app’s public metadata + screenshots from the App Store. Uses Apple’s public iTunes Search / Lookup API — no App Store Connect credentials required and doesn’t touch your apps. Useful for inspiration, gap analysis, and tracking what other apps in your category are shipping. Pass either bundleId, appId (numeric App Store id), or a full App Store URL.

Example promptPull metadata + screenshots for net.ichi2.anki and compare to ThinkBud.

Parameters

  • countrystring, optional. Two-letter ISO storefront code (default ‘us’). The description, price and review counts you see depend on which storefront you query.
  • bundleIdstring, optional. Bundle id of the competitor, e.g. ‘net.ichi2.anki’.
  • appIdstring, optional. Numeric App Store id, e.g. ‘373493387’.
  • urlstring, optional. Full App Store URL — id is parsed out automatically.

asomium_discover_keywords

Sweep Apple’s App Store search autocomplete for one or more seed prefixes and return the popular completions real users see while typing. The autocomplete index is Apple’s own — no proprietary “search volume” estimate — so candidates that appear across multiple seed prefixes (probeCount > 1) and that surface at low bestRank (1 is the first suggestion shown) are the high-demand terms. Use to find keyword opportunities, refine your en-US keywords field, or scope a competitor-research push.

Example promptSweep autocomplete for the seeds ‘flash’, ‘study’, ‘revis’, ‘cram’ in the US storefront and rank the top 30 candidates.

Parameters

  • seedsarray, required. Prefix strings to sweep. Each prefix probes Apple’s suggest endpoint and returns up to 10 suggestions; you typically want 2-6 seeds related to your domain (e.g. [‘flash’,‘study’,‘revis’,‘quizl’]).
  • limitinteger, optional. Max number of candidates returned (default 30). Results are already sorted by composite score (probeCount DESC, bestRank ASC).
  • countrystring, optional. Two-letter storefront code. Default ‘us’.

asomium_keyword_rank

Live rank check: for the given app + keyword + country storefront, hit Apple’s public iTunes Search API and return where the app currently sits in the top 200 of Apple’s search results. One-shot, no history — for daily tracking + multi-day trend charts, set up keyword tracking inside the Asomium Mac app (Settings → ASO → Add Keyword). Returns rank null when the app isn’t in the top 200 for that term.

Example promptWhere does ThinkBud rank for ‘flashcards’ in the UK storefront right now?

Parameters

  • keywordstring, required. The search term to check rank for, e.g. ‘flashcards’. Required.
  • appstring, required. App name, bundle id, or numeric App Store id. Required.
  • countrystring, optional. Two-letter storefront code. Default ‘us’. Note: search is country-scoped, not locale-scoped — ‘us’ and ‘gb’ return different result sets even though both are English.

asomium_list_apps

List every app the configured App Store Connect API key can see. Use this first to discover what’s available before calling pull/push/expand on a specific app. Returns app id, name, bundle id, and SKU per row.

Example promptShow me every app this ASC key can see.

Parameters

No parameters.

Keyword tracking

asomium_list_tracked_keywords

List currently tracked keywords with their latest rank and snapshot count. Filterable by app / keyword / country. Set include_history: true to return the full per-entry snapshot list (can grow large after many refreshes).

Visualization tip: the history payload is chart-ready. In clients with React artifact support (Claude.ai, Claude Desktop), render directly as a multi-line recharts artifact (one line per keyword, x = ts, y = rank, remember rank is inverted — lower is better). In artifact-less clients (Claude Code, Cursor, Windsurf), pipe through asomium_render_chart for an SVG file.

Example promptShow all tracked keywords for ThinkBud with their full rank history.

Parameters

  • keywordstring, optional. Optional. Filter to one keyword.
  • include_historyboolean, optional. Include the full snapshot history per entry. Default false.
  • countrystring, optional. Optional. Filter to one storefront (2-letter code).
  • appstring, optional. Optional. Filter by app — name, bundle id, or numeric ASC id.

asomium_refresh_tracked_ranks

For every tracked keyword (optionally scoped to one app), hit Apple’s search API and append a fresh rank snapshot. The on-disk store is written ONCE at the end after all polls finish — partial-failure runs preserve whatever snapshots completed before the interruption.

Best run on a cadence (manual or via a scheduled task) to build up rank history.

Example promptRe-poll every tracked keyword and append today’s snapshot.

Parameters

  • appstring, optional. Optional. Refresh only the keywords for this app — name, bundle id, or numeric ASC id.

asomium_track_keyword

Add one or more keywords to MCP’s tracking store for an app + country, persisting in a JSON file under ~/Library/Application Support/ReleaseKit/. By default the tool also takes an initial rank snapshot — set snapshot: false to skip if you plan to refresh shortly anyway.

Tracking is MCP-side only for now. The Mac app’s SwiftData-backed keyword tracker is a separate store; a future version may unify them.

Idempotent — re-tracking the same (keyword, country) just appends another snapshot to the existing history rather than duplicating it.

Example promptTrack ‘flashcards’, ‘spaced repetition’, and ‘study app’ for ThinkBud in US and UK.

Parameters

  • snapshotboolean, optional. Take an initial rank snapshot. Default true.
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • keywordsarray, optional. Multiple keywords at once.
  • keywordstring, optional. Single keyword to track. Use keywords for multiple.
  • countrystring, optional. Two-letter storefront code. Default ‘us’. Ranks are country-scoped.

asomium_untrack_keyword

Stop tracking a (keyword, country) pair for an app. Removes the entry and discards its rank history — there’s no soft-archive.

Example promptStop tracking ‘cram’ for ThinkBud in the UK.

Parameters

  • keywordstring, required. Keyword to stop tracking. Required.
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • countrystring, optional. Two-letter storefront code. Default ‘us’.

Metadata

asomium_bulk_push_metadata

Apply the same field updates to one locale across multiple apps in one call. Useful for rolling out a uniform promo / whatsNew across a portfolio. Per-app failures don’t abort the run — each is collected and returned at the end so the caller can retry just the failures.

Example promptPush the same en-US whatsNew to ThinkBud, ApplyIQ, and Hushly in one go.

Parameters

  • appsarray, required. Apps to update — names, bundle ids, or numeric ASC ids. Required.
  • whatsNewstring, optional. What’s new in this version (≤4000 chars)
  • namestring, optional. App name (≤30 chars)
  • descriptionstring, optional. Full description (≤4000 chars)
  • promotionalTextstring, optional. Promotional text (≤170 chars)
  • subtitlestring, optional. App subtitle (≤30 chars)
  • keywordsstring, optional. Comma-separated keywords (≤100 chars)
  • localestring, required. ASC locale code, e.g. ‘en-US’. Required.

asomium_expand_english

Take the en-US version of selected metadata fields and copy them to en-AU, en-CA and en-GB. Creates the target localizations if they don’t already exist. Default fields are name, subtitle, description, keywords, promotional text.

Example promptCopy en-US name, subtitle, and promotional text to en-AU, en-CA, and en-GB.

Parameters

  • fieldsarray, optional. Optional. Subset of fields to copy. Defaults to all five.
  • appstring, required. App name or bundle ID. Required.

asomium_pull_metadata

Fetch the current App Store Connect metadata for an app — all locales, all editable fields, current version state. Read-only; never mutates ASC.

Example promptPull the current ASC metadata for ThinkBud, all locales.

Parameters

  • localesarray, optional. Optional. Subset of locales to fetch (e.g. [‘en-US’,‘de-DE’]). Defaults to all.
  • appstring, required. App name (case-insensitive) or bundle ID. Required.

asomium_push_metadata

Write edits back to ASC for one locale. Pass any subset of fields you want to update; omitted fields are not touched. Validates against ASC’s character limits before sending.

Example promptSet the en-US whatsNew for ThinkBud to ‘Smarter SRS, smoother podcasts.’

Parameters

  • whatsNewstring, optional. What’s new in this version (≤4000 chars)
  • promotionalTextstring, optional. Promotional text (≤170 chars)
  • namestring, optional. App name (≤30 chars)
  • subtitlestring, optional. App subtitle (≤30 chars)
  • descriptionstring, optional. Full description (≤4000 chars)
  • appstring, required. App name or bundle ID. Required.
  • keywordsstring, optional. Comma-separated keywords (≤100 chars)
  • localestring, required. ASC locale code, e.g. ‘en-US’ or ‘de-DE’. Required.

asomium_translate_field

Translate one App Store metadata field from a source locale into one or more target locales using the Anthropic API key configured in Asomium. Respects ASC character limits per field (30 for name/subtitle, 100 for keywords, 170 for promotional text, 4000 for description/whatsNew) — auto-retries with a “too long” hint and trims at word boundary if the model still overshoots. Returns translations as JSON for review by default; set apply: true to push directly to ASC.

Example promptTranslate the en-US whatsNew into de-DE, es-ES, fr-CA, it, and hr and push it.

Parameters

  • brand_voicestring, optional. Optional. Free-text guidance on tone (e.g. ‘playful, concise, second-person’).
  • appstring, required. App name or bundle ID. Required.
  • fieldstring (one of: name, subtitle, description, keywords, promotionalText, whatsNew), required. Which metadata field to translate.
  • source_localestring, optional. Source ASC locale, e.g. ‘en-US’. Default ‘en-US’.
  • target_localesarray, required. Target ASC locales, e.g. [‘de-DE’,‘fr-FR’]. Required.
  • protected_termsarray, optional. Optional. Terms to preserve verbatim (brand names, product names like ‘FlashCards’).
  • applyboolean, optional. If true, push translations to ASC immediately. Defaults to false — review JSON first.

asomium_validate_metadata

Dry-run validation of the editable AppStoreVersion + AppInfo localizations against ASC’s per-field rules. Per (locale, field), reports: · ERROR — exceeds Apple’s char limit, or required field is empty (name, description). · WARN — recommended field is empty (subtitle, keywords, whatsNew). No writes. Use before bulk push / translate to catch char-limit overruns that would otherwise leave a locale set half-updated.

Example promptValidate ThinkBud’s editable version metadata before I push — flag char-limit overruns.

Parameters

  • appstring, required. App name (case-insensitive) or bundle ID. Required.
  • localesarray, optional. Optional. Subset of locales to validate (e.g. [‘en-US’,‘de-DE’]). Defaults to all.

Snapshots & diff

asomium_diff_metadata

Compare a saved snapshot against the live ASC metadata (or against another snapshot, via against_snapshot). Returns per-(locale, field) changes plus locale add/remove deltas. Tracked fields: name, subtitle, description, keywords, promotionalText, whatsNew, supportUrl, marketingUrl.

Example promptDiff ThinkBud’s ‘pre-2.4.4’ snapshot against the live ASC state.

Parameters

  • against_snapshotstring, optional. Optional. Another snapshot name to diff against (the after side). Default: live ASC state.
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • snapshotstring, required. Snapshot name (the before side of the diff). Required.

asomium_list_metadata_snapshots

List all saved metadata snapshots for an app, newest first.

Example promptList every saved snapshot for ThinkBud.

Parameters

  • appstring, required. App name, bundle id, or numeric ASC app id. Required.

asomium_snapshot_metadata

Save the app’s current ASC metadata to a local JSON file under ~/Library/Application Support/ReleaseKit/..., named for easy retrieval. Default name is an ISO-8601 timestamp. The payload shape matches asomium_pull_metadata so snapshots can be diffed against each other or against live ASC.

Example promptTake a snapshot of ThinkBud’s current metadata named ‘pre-2.4.4’.

Parameters

  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • namestring, optional. Snapshot name (filename-safe). Defaults to ISO-8601 timestamp.

App info

asomium_update_app_categories

PATCH the editable AppInfo’s primary and/or secondary category. Category ids are Apple’s slug strings: BOOKS, BUSINESS, DEVELOPER_TOOLS, EDUCATION, ENTERTAINMENT, FINANCE, FOOD_AND_DRINK, GAMES, GRAPHICS_AND_DESIGN, HEALTH_AND_FITNESS, LIFESTYLE, MAGAZINES_AND_NEWSPAPERS, MEDICAL, MUSIC, NAVIGATION, NEWS, PHOTO_AND_VIDEO, PRODUCTIVITY, REFERENCE, SHOPPING, SOCIAL_NETWORKING, SPORTS, STICKERS, TRAVEL, UTILITIES, WEATHER.

Works only while AppInfo is in an editable state (PREPARE_FOR_SUBMISSION or a rejected flavour). Game subcategories not yet exposed.

Example promptSet ThinkBud’s primary category to EDUCATION and secondary to PRODUCTIVITY.

Parameters

  • primary_categorystring, optional. Apple category id (uppercase slug). Optional — omit to leave unchanged.
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • secondary_categorystring, optional. Apple category id (uppercase slug). Optional.

asomium_update_app_privacy

Set per-locale privacy fields on an AppInfoLocalization: privacy_url, optional privacy_choices_url, and optional privacy_policy_text (some apps need an in-app policy text when no URL is provided). The locale must already exist on the AppInfo — create it with push_metadata first if not.

Example promptSet ThinkBud’s en-US privacy URL to https://nativefirstapp.com/privacy.

Parameters

  • privacy_policy_textstring, optional. Optional. In-app privacy policy text for kids-category apps.
  • privacy_choices_urlstring, optional. Optional. URL to a privacy-choices page (data deletion / opt-out).
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • localestring, required. ASC locale code, e.g. ‘en-US’. Required.
  • privacy_urlstring, optional. URL to the privacy policy.

Reviews

asomium_respond_to_review

Post a developer response to a customer review. Apple caps the body at 5970 characters; validated client-side. Each review can have one response — posting a second time returns DUPLICATE, which the tool surfaces with a hint pointing the user to ASC web UI for edits (PATCH on response isn’t yet exposed).

Get review ids by first calling asomium_review_status — its recentReviews array now includes id for each review.

Example promptReply to review [reviewId] thanking them for the feedback and explaining we shipped the fix in 2.4.4.

Parameters

  • bodystring, required. Response text. Up to 5970 chars. Required.
  • review_idstring, required. Customer review id from asomium_review_status (or from the ASC web UI URL). Required.

asomium_review_status

Inspect an app’s current App Store Connect review status — especially useful for diagnosing a rejection. Returns the most recent version’s state (with the rejection type explained if applicable — DEVELOPER_REJECTED, METADATA_REJECTED, INVALID_BINARY, or REJECTED), a timeline of recent version states, the most recent customer reviews (which often reveal what triggered Apple’s reviewer), and a deep link to the Resolution Center where Apple writes the actual rejection message — that exact text is NOT exposed via the public ASC API, only via the web UI.

Visualization tip: recentReviews makes a great rating-distribution chart (bar of 1-5 stars counted) or a sentiment-over-time timeline. In artifact-capable clients (Claude.ai, Claude Desktop), render directly; in others pipe through asomium_render_chart.

Example promptWhat state is ThinkBud’s latest version in, and what are the last 20 customer reviews?

Parameters

  • reviewLimitinteger, optional. How many recent customer reviews to fetch. Default 10, max 50.
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.

Build & ship

asomium_build_and_ship

Run the App Store Connect ship pipeline: xcodebuild archive → exportArchive → altool upload. Per-app build config (Xcode project path, scheme, platform, configuration) is read from the JSON handoff file the Asomium Mac app writes whenever the user edits Settings → <app> → Build & Ship in the GUI. If the app has no saved build config the tool errors with a pointer to that screen.

Default: upload only — the build lands on Apple’s CDN and the tool returns in 2-5 minutes. Apple processes the build server-side (typically 5-15 min) before it can be attached and submitted.

Set submit: true to chain straight into submit-for-review after the upload completes — the tool polls ASC for processing to finish, declares export compliance, attaches the build to the editable AppStoreVersion, and flips submitted: true. Total wall time runs 10-35 min.

Runs synchronously. Long-lived MCP tool calls hold the connection open until completion; expect your AI client to show a spinner the whole time.

Example promptBuild and upload ThinkBud, then submit for review when the build is VALID.

Parameters

  • submitboolean, optional. If true, after upload poll ASC until the build is VALID, then declare export compliance, attach to the editable AppStoreVersion, and submit for review. Defaults to false (upload only).
  • poll_minutesinteger, optional. Only honoured with submit:true. Maximum minutes to wait for ASC to finish processing the build before submit. Clamped to [1, 90]. Default 30.
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.

asomium_create_version

Create a new AppStoreVersion on ASC for an app — the ”+ Version” step before any metadata edits or build submissions can happen for a new release. If a version with the same string already exists for the same platform, returns the existing one (idempotent). Defaults to iOS; pass platform explicitly for macOS / tvOS / visionOS apps.

Example promptCreate version 2.4.5 for ThinkBud on iOS.

Parameters

  • versionstring, required. Marketing version string, e.g. ‘2.4.4’. Must be greater than the current live version. Required.
  • platformstring (one of: IOS, MAC_OS, TV_OS, VISION_OS), optional. ASC platform code. Defaults to IOS.
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.

asomium_list_builds

List recent uploaded builds for an app, with their processing state and export-compliance status. Filter by platform and/or marketing version. Read-only.

Example promptShow me ThinkBud’s last 10 iOS builds and their processing states.

Parameters

  • platformstring (one of: IOS, MAC_OS, TV_OS, VISION_OS), optional. Optional. Restrict to one platform.
  • marketing_versionstring, optional. Optional. Restrict to builds matching a specific marketing version (e.g. ‘2.4.4’).
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • limitinteger, optional. Number of builds to return. Default 20. Capped at 200.

asomium_submit_for_review

Finish the post-upload pipeline for an app that already has an editable AppStoreVersion and an uploaded build. Mirrors the Submit-for-Review flow in the Asomium Mac app:

  1. Locate the editable AppStoreVersion for the requested platform.
  2. Poll /v1/builds until the newest build matching that platform + marketing version is VALID (or surface FAILED/INVALID terminal states).
  3. PATCH usesNonExemptEncryption: false on the build if compliance isn’t declared.
  4. Attach the build to the AppStoreVersion.
  5. Find or create a draft Review Submission for the app + platform.
  6. Attach the version as a submission item.
  7. Flip submitted: true — Apple takes over.

Use this after asomium_build_and_ship (without submit:true), or when a build was uploaded via the Asomium GUI or another machine and you want Claude to drive the final submit.

Runs synchronously. The poll loop dominates wall time — give it up to poll_minutes (default 30) for Apple to finish processing the build.

Example promptFinish the submit pipeline for ThinkBud — wait up to 30 min for the build to process if needed.

Parameters

  • platformstring (one of: IOS, MAC_OS, TV_OS, VISION_OS), optional. ASC platform code. Defaults to IOS.
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • poll_minutesinteger, optional. Maximum minutes to wait for ASC processing. Clamped to [1, 90]. Default 30.
  • wait_for_processingboolean, optional. If true, poll until the newest build for this platform+version reaches VALID. If false, fail fast when there’s no VALID build yet. Default true.

Release control

asomium_phased_release_control

Inspect or control an active phased rollout. Auto-discovers the version that has a phased-release resource attached on the requested platform, then applies the action:

· status → fetch current state + day · pause → PATCH state=PAUSED · resume → PATCH state=ACTIVE · release_to_all → PATCH state=COMPLETE · cancel → DELETE the phased resource

release_to_all ships the new version to all users early. cancel skips the staged rollout entirely (next App Store visit serves the new version to everyone).

Example promptPause the phased rollout for ThinkBud on iOS — we’re seeing a crash on day 2.

Parameters

  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • platformstring (one of: IOS, MAC_OS, TV_OS, VISION_OS), optional. ASC platform. Default IOS.
  • actionstring (one of: status, pause, resume, release_to_all, cancel), required. Action to perform. Required.

asomium_release_now

Trigger developer-driven release for the AppStoreVersion sitting in PENDING_DEVELOPER_RELEASE on the requested platform. Use after Apple approves a version that has releaseType: MANUAL. Errors with helpful state info if no version is waiting.

Example promptRelease ThinkBud’s approved iOS version to users now.

Parameters

  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • platformstring (one of: IOS, MAC_OS, TV_OS, VISION_OS), optional. ASC platform. Default IOS.

asomium_set_release_strategy

Configure how the editable AppStoreVersion is released once Apple approves it. PATCHes releaseType on the version and creates or deletes a phased-release resource so the on-ASC state matches the strategy you pick:

· manual → MANUAL, no phased rollout · automatic → AFTER_APPROVAL, no phased · phased → AFTER_APPROVAL + 7-day phased · scheduled → SCHEDULED + earliest_release_date

Operates on whichever version is currently editable for the requested platform.

Example promptSet ThinkBud’s release strategy to phased rollout on iOS.

Parameters

  • strategystring (one of: manual, automatic, phased, scheduled), required. Release strategy. Required.
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • earliest_release_datestring, optional. Required for strategy=scheduled. ISO 8601 timestamp, e.g. ‘2026-06-01T12:00:00Z’.
  • platformstring (one of: IOS, MAC_OS, TV_OS, VISION_OS), optional. ASC platform. Default IOS.

Assets

asomium_upload_screenshots

Upload screenshot image files to the editable AppStoreVersion across any number of locales / display types in one call. Each upload entry bundles a locale + display type (e.g. APP_IPHONE_67) + a list of absolute file paths. The tool delegates to the same ScreenshotPusher the Mac app uses — reservation, byte upload, commit, and per-set append/replace semantics behave identically.

Apple validates pixel dimensions per display_type after upload — wrong-size images fail at commit, not pre-flight. Display type codes are the same strings ASC uses internally (APP_IPHONE_67, APP_IPHONE_65, APP_IPAD_PRO_3GEN_129, APP_DESKTOP, APP_APPLE_VISION_PRO, etc.).

Example promptUpload screenshots/iphone67/.png to the en-US APP_IPHONE_67 set, replacing the existing screenshots.*

Parameters

  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • platformstring (one of: IOS, MAC_OS, TV_OS, VISION_OS), optional. ASC platform code. Default IOS.
  • uploadsarray, required. Required. Array of upload groups.
  • modestring (one of: append, replace_set), optional. append (default) leaves the existing screenshots in each touched set and adds new ones; replace_set deletes the existing set first.

Monetization

asomium_list_iaps

List the app’s in-app purchases via the inAppPurchasesV2 endpoint — one-time consumables, non-consumables, and non-renewing subscriptions. Auto-renewing subscriptions live under a separate resource family (subscriptionGroups → subscriptions) and are not listed here.

Example promptList every in-app purchase configured for ThinkBud.

Parameters

  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • limitinteger, optional. Max IAPs to return. Default 50, capped at 200.

asomium_list_in_app_events

List the app’s in-app events (IAEs) — Apple’s time-bounded App Store promotions. Returns each event’s badge, state, primary locale, deep-link URL, purchase requirement, and the event/publish time windows.

Example promptShow ThinkBud’s current and upcoming in-app events.

Parameters

  • limitinteger, optional. Max events to return. Default 50, capped at 50 server-side.
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.

Analytics

asomium_get_sales_report

Fetch an Apple Sales and Trends report — gzipped TSV body, decompressed and aggregated server-side. Returns total units sold and proceeds-by-currency (Apple reports each territory in its local currency, so per-currency breakdown is more useful than a fake combined total).

Vendor number is the developer team’s id, NOT the app id. Find it in App Store Connect → Payments and Financial Reports footer. Pass via vendor_number arg or set ASOMIUM_ASC_VENDOR_NUMBER in the environment Claude Code launches the MCP server with.

Availability: DAILY at T+1, WEEKLY on the Sunday after the reporting week, MONTHLY on the 5th of the following month. Default report_date is yesterday in Pacific Time (Apple’s reporting calendar).

Set include_rows: true to get the full parsed TSV back; default returns only totals

  • row count to keep responses small.

Visualization tip: the totals payload (units + proceedsByCurrency) and the per-row breakdown (with include_rows: true) are chart-ready. In Claude.ai / Desktop, render as a recharts artifact (bar per currency or pie per country). In artifact-less clients, pipe through asomium_render_chart.

Example promptPull yesterday’s SALES SUMMARY for vendor 1234567 and tell me total units + proceeds by currency.

Parameters

  • report_typestring (one of: SALES, PRE_ORDER, SUBSCRIPTION, SUBSCRIPTION_EVENT, SUBSCRIBER, SUBSCRIPTION_OFFER_CODE_REDEMPTION, NEWSSTAND), optional. Apple report type. Default SALES.
  • report_datestring, optional. YYYY-MM-DD. Default: yesterday in Pacific Time. For WEEKLY pass the Sunday end date; for MONTHLY pass YYYY-MM.
  • frequencystring (one of: DAILY, WEEKLY, MONTHLY, YEARLY), optional. Reporting cadence. Default DAILY.
  • vendor_numberstring, optional. Developer team vendor number. Falls back to ASOMIUM_ASC_VENDOR_NUMBER env var if omitted.
  • include_rowsboolean, optional. If true, include the full parsed TSV rows. Default false (totals + row count only).
  • report_subtypestring (one of: SUMMARY, DETAILED, OPT_IN), optional. Apple report sub-type. Default SUMMARY.

Visualization

asomium_dashboard

Composite “executive summary” for one app — fans out 4-6 ASC + local reads in parallel and returns a single payload sized for one dashboard render. Sections:

· app identity + current version state · recent builds + processing-state counts · tracked keywords with latest rank, 30-day delta, and last-60-snapshot series for sparklines · reviews: average rating, 1-5 star distribution histogram, last N reviews · phased rollout (if active on the current version) · daily sales totals (if vendor_number provided or ASOMIUM_ASC_VENDOR_NUMBER env set)

Designed for one-shot dashboard rendering: in Claude.ai / Claude Desktop, the LLM should generate a single React artifact with one card per section (recharts for the sparklines + distribution). In terminal clients, summarise in markdown sections.

Wall time ≈ slowest single ASC call (~500ms) thanks to parallel fan-out, not the sum of all reads.

Example promptPull the full health dashboard for ThinkBud on iOS — version state, builds, keyword ranks, reviews — and render it as one artifact.

Parameters

  • vendor_numberstring, optional. Optional. Adds yesterday’s SALES SUMMARY to the dashboard. Falls back to ASOMIUM_ASC_VENDOR_NUMBER env var.
  • build_limitinteger, optional. Max recent builds to include. Default 5, capped at 50.
  • platformstring (one of: IOS, MAC_OS, TV_OS, VISION_OS), optional. ASC platform. Default IOS.
  • appstring, required. App name, bundle id, or numeric ASC app id. Required.
  • review_limitinteger, optional. Max recent reviews to include. Default 10, capped at 50.

asomium_render_chart

Render a line or bar chart from a generic data spec and return both raw SVG and a markdown- image-with-data-URI string. Composes nicely with other tools: call list_tracked_keywords(include_history: true) or get_sales_report(include_rows: true), shape the result into series[].points[], then render. Multi-series charts get colour-coded legend automatically.

For clients that render markdown images (Claude Desktop, Claude.ai) embed the markdownImage field directly in a reply. For terminal clients, save svg to a .svg file and open it.

Example promptRefresh ThinkBud’s tracked keyword ranks, then chart the last 30 days as a multi-line graph.

Parameters

  • y_labelstring, optional. Y-axis label.
  • x_labelstring, optional. X-axis label.
  • heightinteger, optional. SVG height in pixels. Default 420.
  • typestring (one of: line, bar), optional. Chart type. Default ‘line’.
  • titlestring, optional. Chart title, shown at top.
  • seriesarray, required. One or more data series. Multi-series gets a legend automatically.
  • widthinteger, optional. SVG width in pixels. Default 800.

Account

asomium_usage_status

Show this month’s MCP usage counters — currently just translate_field calls (other tools don’t hit an LLM and aren’t tracked). If ASOMIUM_MONTHLY_QUOTA is set in the MCP server’s environment, returns remaining headroom too.

The counter auto-resets at the calendar month boundary; the on-disk file lives at ~/Library/Application Support/ReleaseKit/com.mariopek.releasekit/usage-counter.json.

Example promptHow many translate calls have I used this month?

Parameters

No parameters.


Every tool returns a structured JSON result an LLM can reason about, plus a human-readable summary field the model can paraphrase back to the user.

Last updated