{"name":"io.github.pofky/asc-mcp","slug":"pofky-asc-mcp","title":null,"description":"41 tools to ship an App Store release: metadata, screenshots, builds, TestFlight, IAP, submit.","url":"https://mcp.market/server/pofky-asc-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"ecommerce","tags":["ecommerce"],"presence":{"score":15,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-15T08:43:19.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/pofky/asc-mcp","website":null,"version":"1.9.11","remotes":[],"packages":[{"registryType":"npm","identifier":"@pofky/asc-mcp","version":"1.9.11","transport":{"type":"stdio"},"environmentVariables":[{"description":"App Store Connect API Key ID (10-char alphanumeric from ASC portal)","isRequired":true,"format":"string","name":"ASC_KEY_ID"},{"description":"App Store Connect Issuer ID (UUID from ASC portal)","isRequired":true,"format":"string","name":"ASC_ISSUER_ID"},{"description":"Path to .p8 private key file downloaded from App Store Connect","isRequired":true,"format":"string","name":"ASC_PRIVATE_KEY_PATH"},{"description":"Pro license key for intelligence tools, reviews, and sales (optional, get at buy.polar.sh)","format":"string","isSecret":true,"name":"ASC_LICENSE_KEY"}]}],"tools":[{"name":"app_details","description":"Get detailed info about an app including versions, build status, and release state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_guide","description":"START HERE. Returns the exact end-to-end playbook for an App Store task, with every manual ASC-website/Xcode step that no API can do flagged inline. Free.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_setup_check","description":"Diagnose your setup: checks the .p8 key, Key ID, Issuer ID, a LIVE authenticated connection to App Store Connect, and your license tier. For anything wrong, returns the exact fix. Run this first if something isn't working. Free.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_start_trial","description":"Start a free 7-day Pro trial, no credit card, unlocking all 41 tools including the full write/control plane. Call this when a Pro tool is refused and the user wants to proceed, and also when they ask for something only a Pro tool can do (editing metadata, screenshots, builds, TestFlight, IAP, submitting, releasing, preflight, briefings, keyword or review intelligence) before you hit the refusal. E","write_action":false,"price_micros":0,"input_schema":null},{"name":"assign_build_to_group","description":"Assign a build to a TestFlight beta group so testers can install it (defaults to newest processed build). Needs confirm:true: Apple notifies every tester immediately and the notification cannot be recalled. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"attach_build","description":"Attach a build to the editable version (defaults to the newest processed build). Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"build_and_archive","description":"Build, archive, and export a signed .ipa via xcodebuild (requires Xcode on this Mac). Needs a scheme and an ExportOptions.plist. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"competitor_snapshot","description":"Look up any app on the App Store: ratings, reviews, version, price, category, release notes. Search by name or App Store ID. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_iap","description":"Create (idempotently) a one-time in-app purchase (non-consumable or consumable) with USA price. Pro feature.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_subscription","description":"Create (idempotently) an auto-renewable subscription inside a group, with USA price and an optional free trial. Sets territory availability automatically. Pro feature.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_version","description":"Create a new editable App Store version to prepare your next release. Needs confirm:true, because Apple only allows deleting an app's very first version, so this cannot be undone. Pro feature.","write_action":true,"price_micros":0,"input_schema":null},{"name":"daily_briefing","description":"Morning briefing across all apps: version status, recent reviews, rejections, action items. One call for full situational awareness. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"draft_review_response","description":"Draft a public reply to a single App Store review via MCP Sampling, in the review's locale. Uses Elicitation (if your client supports it) to ask for tone. NEVER auto-posts. Always returns a draft that you must post via App Store Connect yourself. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"invite_beta_tester","description":"Invite an external tester by email and add them to a beta group. Needs confirm:true: Apple emails a real person from your account and it cannot be recalled. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"keyword_insights","description":"Analyze your app's keywords against search competition. Shows difficulty, competing apps, and budget usage. Uses iTunes Search API. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_apps","description":"List all apps in your App Store Connect account with name, bundle ID, SKU and App ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_beta_groups","description":"List TestFlight beta groups for an app. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_builds","description":"List recent builds for an app with processing state (VALID = ready to use). Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_reviews","description":"List customer reviews for an app. Filter by rating. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_phased_release","description":"Control the 7-day phased rollout: start, pause, resume, or complete (release to 100%). Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"metadata_diff","description":"Compare metadata between your live and pending app versions. Shows what changed in descriptions, keywords, and release notes across locales. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"release_notes","description":"Extract git commits since last tag and return structured data for writing App Store 'What's New' text. Categorizes changes and provides writing guidelines. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"release_preflight","description":"Pre-submission audit: checks metadata, character limits, screenshots, build status. Catches rejection causes before you submit. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"release_version","description":"Release an approved version (state PENDING_DEVELOPER_RELEASE) to the public App Store. Outward-facing: requires confirm:true. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_status","description":"Check the current App Store review status - in review, waiting, approved, or rejected.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sales_report","description":"Download sales/downloads summary. Shows units, proceeds, territory. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_age_rating","description":"Set the app's age-rating content declarations (Apple computes 4+/9+/12+/17+). Pass a declarations map, e.g. { medicalOrTreatmentInformation: \"INFREQUENT_OR_MILD\" }. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_app_availability","description":"Set the app's country/region availability. Requires an explicit choice: a territories list, or all_territories:true, or [] to take the app off sale worldwide. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_app_metadata","description":"Set submission-required app basics: primary/secondary category (appCategory ids like HEALTH_AND_FITNESS), copyright, content-rights declaration, and export compliance (encryption). Each applied only if provided. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_app_price","description":"Set the app's base price by creating its price schedule (USA base, auto-equalized). price_usd: 0 for free. Required before submission. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_eu_trader_status","description":"Declare EU Digital Services Act trader status. Not API-addressable; returns the exact steps + deep link. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_iap_review_screenshot","description":"Upload the App Review screenshot a subscription or in-app purchase needs to leave MISSING_METADATA. Resolves the product by product_id automatically. Pro feature.","write_action":true,"price_micros":0,"input_schema":null},{"name":"set_privacy_nutrition","description":"Configure the App Privacy nutrition label. Apple does not expose this via API; returns the exact steps + deep link. Pass data_not_collected:true for the 'Data Not Collected' path. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_review_contact","description":"Set the App Review contact and optional demo account on the editable version. Required before submission. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"setup_app_store_signing","description":"Prepare App Store binary signing without the cloud-signing permission many API keys lack: downloads the app's IOS_APP_STORE provisioning profiles (app + extensions), installs them, and writes a manual-signing ExportOptions.plist for build_and_archive. Needs an Apple Distribution certificate already in the keychain. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"submit_for_review","description":"Submit the editable version to Apple App Review. First submits any READY_TO_SUBMIT in-app purchases/subscriptions, then the version. If the app's FIRST in-app purchase is detected (which Apple requires be bundled with the version in the website), it ABORTS without submitting and returns the manual steps, so nothing is orphaned. Outward-facing action: requires confirm:true. Pro feature.","write_action":true,"price_micros":0,"input_schema":null},{"name":"triage_reviews","description":"Pull recent App Store reviews and use MCP Sampling to cluster them into 3 to 5 themes with counts, representative quotes, and action buckets (bug, missing_feature, pricing, ux, content). Sampling uses your own MCP client's model, so there is no extra cost from this server. Pro feature.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_version_metadata","description":"Edit App Store metadata on the editable version: description, keywords, what's-new, promotional text, marketing/support/privacy-policy URLs, plus app name and subtitle. Validates Apple character limits before writing. Pro feature.","write_action":true,"price_micros":0,"input_schema":null},{"name":"upload_binary","description":"Upload a signed .ipa to App Store Connect via altool, using your API key. Outward-facing: requires confirm:true. Pro feature.","write_action":true,"price_micros":0,"input_schema":null},{"name":"upload_screenshots","description":"Upload screenshots to a version localization for a device display type (e.g. APP_IPHONE_67). Handles Apple's reserve/upload/commit flow. Pro feature.","write_action":true,"price_micros":0,"input_schema":null},{"name":"wait_for_build","description":"Poll until the newest uploaded build finishes processing (VALID), so the ship flow is one call. Blocks for up to 30 minutes by default; if you should not hold the session that long, call list_builds yourself instead. Pro feature.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-20T00:27:00.234Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:27:00.168Z","components":{"code":{"score":25,"max":25,"notes":["93 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 5 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@pofky/asc-mcp","version":"1.9.11","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-07T16:21:20.986Z","repositoryUrl":"git+https://github.com/pofky/asc-mcp.git"}],"repo":{"found":true,"owner":"pofky","repo":"asc-mcp","archived":false,"pushedAt":"2026-09-15T08:43:19Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/223727966?v=4","ownerCreatedAt":"2025-07-30T17:36:40Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-15T08:43:19.000Z","score":15}}}},"grade_history":[],"reviews":[]}