{"name":"io.github.muhammetali/asc-mcp-server","slug":"muhammetali-asc-mcp-server","title":null,"description":"App Store Connect MCP Server for AI coding agents","url":"https://mcp.market/server/muhammetali-asc-mcp-server","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"ecommerce","tags":["ecommerce"],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":32,"last_push_at":"2026-09-08T14:02:44.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/muhammetali/asc-mcp-server","website":null,"version":"1.2.0","remotes":[],"packages":[{"registryType":"npm","identifier":"@muhammetali/asc-mcp-server","version":"1.2.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"App Store Connect API Key ID","isRequired":true,"format":"string","name":"APP_STORE_CONNECT_KEY_ID"},{"description":"App Store Connect Issuer ID","isRequired":true,"format":"string","name":"APP_STORE_CONNECT_ISSUER_ID"},{"description":"Absolute path to the App Store Connect .p8 private key file","isRequired":true,"format":"string","isSecret":true,"name":"APP_STORE_CONNECT_P8_PATH"}]}],"tools":[{"name":"asc_add_beta_tester","description":"Add a beta tester to a TestFlight group. Sends an invitation email automatically.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_add_build_to_beta_group","description":"Add a build to a TestFlight beta group for testing. Testers in the group will be notified.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_assign_build","description":"Assign a build to an App Store version. The build must be in VALID processing state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_clear_sandbox_history","description":"Clear purchase history for a sandbox tester. Useful for re-testing IAP flows.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_create_app_event","description":"Create a new in-app event (promotion, live event, challenge, etc.) for the App Store.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_create_beta_group","description":"Create a new TestFlight beta group (internal or external).","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_create_preview_set","description":"Create a new app preview (video) set for a device type.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_create_screenshot_set","description":"Create a new screenshot set for a specific device type (e.g., iPhone 6.7\", iPad Pro 12.9\").","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_create_version","description":"Create a new App Store version. After creating, set What's New, attach a build, and submit for review.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_delete_all_screenshots","description":"Delete ALL screenshots in a screenshot set. Use before re-uploading new screenshots.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_delete_app_preview","description":"Delete an app preview video.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_delete_beta_group","description":"Delete a TestFlight beta group.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_delete_screenshot","description":"Delete a single screenshot by ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_delete_version","description":"Delete a draft or rejected App Store version. Only works for versions in PREPARE_FOR_SUBMISSION, DEVELOPER_REJECTED, or REJECTED state.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_financial_report","description":"Download financial report for a region.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_get_age_rating","description":"Get the age rating declaration for an app. Shows all content rating fields, app features (lootBox, messaging, UGC), and overrides.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_get_analytics_report","description":"Check status and download a previously requested analytics report.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_get_app_info","description":"Get detailed app info including privacy policy URLs, age rating, localizations, and recent versions. Warns about missing privacy policies that cause rejections.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_get_app_pricing","description":"Get app pricing schedule and available territories (countries where the app is available).","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_get_beta_review_status","description":"Check the beta review status for a build (external TestFlight review).","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_get_build_details","description":"Get detailed info for a specific build including TestFlight What's New and encryption status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_get_build_diagnostics","description":"Get crash diagnostic signatures and logs for a build. Use to investigate crash issues after release.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_get_perf_metrics","description":"Get performance and power metrics for an app (battery, launch time, memory, hangs, disk, animation, termination).","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_get_rejection_reasons","description":"List recent rejected versions with rejection context and common rejection reasons.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_get_review_submission","description":"Get review submission status and details for a version. Shows demo account, reviewer notes, and rejection info.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_get_testflight_feedback","description":"Get user feedback and crash reports submitted by TestFlight beta testers. Very useful for debugging before release.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_get_version_localizations","description":"View all localizations for a version (What's New, descriptions, keywords). Warns about missing/empty fields.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_app_events","description":"List in-app events for an app (promotions, live events, challenges, etc.) with localizations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_apps","description":"List all apps in your App Store Connect account with bundle IDs and basic info","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_beta_groups","description":"List TestFlight beta groups (internal/external) with their settings.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_beta_testers","description":"List TestFlight beta testers. Filter by app, beta group, or email.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_builds","description":"List recent builds with processing state, TestFlight internal/external status. Shows which builds are ready for release.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_certificates","description":"List signing certificates with expiration dates. Warns about certificates expiring within 30 days.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_custom_product_pages","description":"List custom product pages for an app (alternate App Store listings for different audiences).","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_customer_reviews","description":"List App Store customer reviews with ratings, text, and your responses. Useful for monitoring user feedback.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_devices","description":"List all registered test devices.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_in_app_purchases","description":"List all in-app purchases for an app with their product IDs, types, and states.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_preview_sets","description":"List app preview (video) sets for a version localization.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_sandbox_testers","description":"List sandbox testers for in-app purchase testing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_screenshot_sets","description":"List screenshot sets and their screenshots for a version localization.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_subscriptions","description":"List subscription groups and their subscriptions for an app.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_list_versions","description":"List all App Store versions with their states (LIVE, DRAFT, IN_REVIEW, REJECTED, etc). Highlights rejected versions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_manage_availability","description":"Manage app territory availability. Actions: get (list territories), remove_from_sale (remove specific territories), restore (re-enable territories).","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_phased_release","description":"Manage phased (gradual) release for a version. Actions: create (enable 7-day rollout), pause, resume, complete (release to everyone).","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_register_device","description":"Register a new test device for development/ad-hoc provisioning.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_release_version","description":"Manually release a version that is approved and waiting for developer release (PENDING_DEVELOPER_RELEASE → READY_FOR_SALE).","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_remove_beta_tester","description":"Remove a beta tester from a TestFlight group.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_reorder_screenshots","description":"Reorder screenshots within a screenshot set. Provide screenshot IDs in desired order.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_request_analytics_report","description":"Request generation of an analytics report. Use asc_get_analytics_report to download once ready.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_resolve_version","description":"Find a version ID by version string (e.g., \"1.6.0\"). Useful when you have the version number but need the ID for other tools.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_respond_to_review","description":"Respond to a customer review on the App Store. Creates or updates your developer response.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_revoke_certificate","description":"Revoke a single signing certificate by its ASC certificate ID. Use when a Mac's keychain ACL is corrupted and the local private key is unusable — Apple's portal still holds the cert and Xcode refuses to create a new one until you revoke. CAUTION: revoking a Distribution cert in active use breaks new uploads.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_revoke_certificates_by_type","description":"Bulk-revoke ALL certificates of a given type. Distribution types are blocked at the helper level for safety. Default is DEVELOPMENT — the most common \"blow it all away and let Xcode rebuild\" recovery path when local keychain ACLs are broken.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_sales_report","description":"Download and parse App Store sales report. Shows units, revenue by product.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_set_encryption","description":"Set the export compliance (usesNonExemptEncryption) flag on a build. Required before submitting for review. Most apps should set this to false.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_set_testflight_whats_new","description":"Set What's New text for a TestFlight build (shown to testers)","write_action":false,"price_micros":0,"input_schema":null},{"name":"asc_submit_for_beta_review","description":"Submit a build for external TestFlight beta review. Required before external testers can access the build.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_submit_for_review","description":"Submit a version for App Review. Accepts either versionId directly OR appId+versionString to auto-resolve. Runs pre-flight checks before submitting.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_update_age_rating","description":"Update age rating declaration. Enum fields use NONE, INFREQUENT_OR_MILD, or FREQUENT_OR_INTENSE. Boolean fields for gambling, unrestrictedWebAccess, seventeenPlus.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_update_app_info_localization","description":"Update app-level localization (privacy policy URL, name, subtitle). Use this to fix missing privacy policies that cause App Store rejections.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_update_review_detail","description":"Update review details (demo account, contact info, notes to reviewer). Critical for avoiding rejections.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_update_version_localization","description":"Update a single locale's version metadata (What's New, description, keywords, promotional text, URLs)","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_update_version_string","description":"Change the version string of a draft/rejected version (e.g., 1.5.0 → 1.6.0). Only works for editable versions.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_update_whats_new","description":"Update What's New (release notes) for multiple locales at once. Pass a JSON object of locale -> text.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_upload_app_preview","description":"Upload an app preview video (MP4/MOV/M4V). Handles 3-step upload process.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_upload_review_attachment","description":"Upload an attachment (screenshot/video) for App Review. Useful when responding to rejections with evidence.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_upload_screenshot","description":"Upload a screenshot to a screenshot set. Handles the 3-step process: reserve, upload chunks, commit.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asc_withdraw_from_review","description":"Withdraw a version from App Review. Use when you need to cancel a pending review to make changes or create a new version.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-20T16:17:55.168Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T16:17:55.132Z","components":{"code":{"score":25,"max":25,"notes":["41 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 12 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":"@muhammetali/asc-mcp-server","version":"1.2.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":5,"publishedAt":"2026-09-03T15:26:05.025Z","repositoryUrl":"git+https://github.com/muhammetali/asc-mcp-server.git","weeklyDownloads":32}],"repo":{"found":true,"owner":"muhammetali","repo":"asc-mcp-server","archived":false,"pushedAt":"2026-09-08T14:02:44Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/8470884?v=4","ownerCreatedAt":"2014-08-17T12:10:44Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/8470884?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":32,"license":"MIT","lastPushAt":"2026-09-08T14:02:44.000Z","score":23}}}},"grade_history":[],"reviews":[]}