Skip to content

MCP servers › io.github.devinwang › app-store-connect-mcp

MCP server · registry snapshot 2026-10-23 · last tested 2026-10-23

io.github.devinwang/app-store-connect-mcp

MCP server for Apple's App Store Connect API: 1316 tools generated from the official OpenAPI spec. — the publisher's description

9 of 9 record checks metRead-only · tools listed 2026-10-23Topic: developer-tools · AI-classifiedversion 0.5.0TypeScriptMITstandard input/output1,316 tools

Summary

io.github.devinwang/app-store-connect-mcp is a local MCP server listed in the official MCP registry at version 0.5.0. On 2026-10-23 ProtocolProbe started its published package in an isolated sandbox in read-only mode and read its inventory: 1,316 tools, 0 resources and 0 prompts.

Record checks

9 of 9 record checks met

  • met: Registry entry is active and says how to run it
  • met: Source repository link opens
  • met: Repository is not archived
  • met: Code pushed to the repository in the 90 days before our check
  • met: Repository publishes a security policy (SECURITY.md)
  • met: Package names its licence with a standard (SPDX) identifier
  • met: The version the registry lists can be installed and is not withdrawn
  • met: npm package carries build provenance (attestation)
  • met: No known critical or high advisory in the package or its dependencies
  • #1,531 of 15,112 packages by monthly downloads, tied with 1 other
  • Not ranked by stars: 3 stars (ranked from 10)
  • #271 of 1,074 packages meeting all 9 record checks, by downloads

From public records, not a safety rating. Each check with its reason · Is it safe to install?

Key facts

Runs
local package
Transport
standard input/output
Package
npm · listed version current
License
MIT
Dependencies
no known high or critical advisories
Repository
public
Tools
1,316
Described as changing data
483 of 1,316 toolsAI-classified
Mainly works on
files and code on the machine it runs on; accounts and data in outside web servicesAI-classified
Topic
developer-toolsAI-classified
Last tested
2026-10-23

Add to your client

Worth knowing before you connect it

  • 483 tools are described as changing something (accounts_add, accounts_remove, accounts_switch, …): our AI model's reading of the descriptions, not something we tested. We did not call them.
  • Its package is signed and carries a build record naming its source.

Each line comes from a section below, with its source and date.

How fresh this is

Live-tested
yes, a real session (not a text-only review)
Last tested
2026-10-23
Mode
read-only (no tool calls)
Latest version
0.5.0, published 2026-10-21 (registry, as of the 2026-10-23 snapshot)
First listed version
2026-10-21 (earliest version still in the registry; older removed versions would be earlier)
Registry data
snapshot 2026-10-23
Package and repository
checked 2026-10-23
Engine
mcp-runtime-engine@0.1.0 · sdk@1.32.0

Changes since the last refresh

New in the registry: not in the list of 2026-10-04, listed on 2026-10-23 with version 0.5.0 (published 2026-10-21).

Source: the official MCP Registry list on 2026-10-04 and on 2026-10-23.

What it is

What does this server offer?

Observed inventory
1,316tools
0resources
0prompts

What it mainly works on, as our AI model read its tool descriptions: files and code on the machine it runs on; accounts and data in outside web services.

483 of 1,316 tools are described as changing something (creating, editing, deleting, sending or running).

  • accounts_liston 3 other serversreads or searches

    “List every App Store Connect account registered locally.”

    Takes no inputs.

  • accounts_currenton 1 other serverreads or searches

    “Show which account is currently active.”

    Takes no inputs.

  • accounts_addon 1 other servercreates or changes datadescribed as changing data

    “Register a new App Store Connect account.”

    6 inputs, 4 required
    • namestringrequired“Short identifier used to switch accounts (e.g.”
    • keyIdstringrequired“The Key ID from App Store Connect → Users and Access → Integrations (e.g.”
    • issuerIdstringrequired“The Issuer ID shown on the same page — a single UUID per developer team.”
    • keyFilestringrequired“Absolute path to the `.p8` private key file you downloaded from App Store Connect.”
    • descriptionstring
    • scopearray
  • accounts_removeon 1 other serverdeletesdescribed as changing data

    “Remove an account from the local registry.”

    1 input, 1 required
    • namestringrequired
  • accounts_switchon 1 other servercreates or changes datadescribed as changing data

    “Make an existing registered account the active one.”

    1 input, 1 required
    • namestringrequired
  • accounts_updateon 1 other servercreates or changes datadescribed as changing data

    “Change one or more fields of an existing account.”

    6 inputs, 1 required
    • namestringrequired
    • keyIdstring
    • issuerIdstring
    • keyFilestring
    • descriptionstring
    • scopearray
  • auth_statuson 36 other serversreads or searches

    “Verify that the active account can acquire an App Store Connect JWT.”

    Takes no inputs.

  • auth_revoke_cachecreates or changes datadescribed as changing data

    “Drop the in-memory JWT cache so the next API call re-signs.”

    Takes no inputs.

  • accessibility_declarations_create_instancecreates or changes datadescribed as changing data

    “POST /v1/accessibilityDeclarations (POST /v1/accessibilityDeclarations) Body shape: see OpenAPI components.schemas.AccessibilityDeclarationCreateRequest for the full JSON:API envelope.”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • accessibility_declarations_get_instancereads or searches

    “GET /v1/accessibilityDeclarations/{id} (GET /v1/accessibilityDeclarations/{id})”

    2 inputs, 1 required
    • fields_accessibilityDeclarationsarray or string“the fields to include for returned resources of type accessibilityDeclarations”
    • idstringrequired“the id of the requested resource”
  • accessibility_declarations_update_instancecreates or changes datadescribed as changing data

    “PATCH /v1/accessibilityDeclarations/{id} (PATCH /v1/accessibilityDeclarations/{id}) Body shape: see OpenAPI components.schemas.AccessibilityDeclarationUpdateRequest for the full JSON:API envelope.”

    2 inputs, 2 required
    • idstringrequired“the id of the requested resource”
    • bodyobjectrequired“JSON body.”
  • accessibility_declarations_delete_instancedeletesdescribed as changing data

    “DELETE /v1/accessibilityDeclarations/{id} (DELETE /v1/accessibilityDeclarations/{id})”

    1 input, 1 required
    • idstringrequired“the id of the requested resource”
Show 88 more tools
  • actors_get_collectionreads or searches

    “GET /v1/actors (GET /v1/actors)”

    3 inputs
    • filter_idarray or string“filter by id(s)”
    • fields_actorsarray or string“the fields to include for returned resources of type actors”
    • limitinteger“maximum resources per page”
  • actors_get_instancereads or searches

    “GET /v1/actors/{id} (GET /v1/actors/{id})”

    2 inputs, 1 required
    • fields_actorsarray or string“the fields to include for returned resources of type actors”
    • idstringrequired“the id of the requested resource”
  • age_rating_declarations_update_instancecreates or changes datadescribed as changing data

    “PATCH /v1/ageRatingDeclarations/{id} (PATCH /v1/ageRatingDeclarations/{id}) Body shape: see OpenAPI components.schemas.AgeRatingDeclarationUpdateRequest for the full JSON:API envelope.”

    2 inputs, 2 required
    • idstringrequired“the id of the requested resource”
    • bodyobjectrequired“JSON body.”
  • alternative_distribution_domains_get_collectionreads or searches

    “GET /v1/alternativeDistributionDomains (GET /v1/alternativeDistributionDomains)”

    2 inputs
    • fields_alternativeDistributionDomainsarray or string“the fields to include for returned resources of type alternativeDistributionDomains”
    • limitinteger“maximum resources per page”
  • alternative_distribution_domains_create_instancecreates or changes datadescribed as changing data

    “POST /v1/alternativeDistributionDomains (POST /v1/alternativeDistributionDomains) Body shape: see OpenAPI components.schemas.AlternativeDistributionDomainCreateRequest for the full JSON:API envelope.”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • alternative_distribution_domains_get_instancereads or searches

    “GET /v1/alternativeDistributionDomains/{id} (GET /v1/alternativeDistributionDomains/{id})”

    2 inputs, 1 required
    • fields_alternativeDistributionDomainsarray or string“the fields to include for returned resources of type alternativeDistributionDomains”
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_domains_delete_instancedeletesdescribed as changing data

    “DELETE /v1/alternativeDistributionDomains/{id} (DELETE /v1/alternativeDistributionDomains/{id})”

    1 input, 1 required
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_keys_get_collectionreads or searches

    “GET /v1/alternativeDistributionKeys (GET /v1/alternativeDistributionKeys)”

    3 inputs
    • exists_appboolean“filter by existence or non-existence of related 'app'”
    • fields_alternativeDistributionKeysarray or string“the fields to include for returned resources of type alternativeDistributionKeys”
    • limitinteger“maximum resources per page”
  • alternative_distribution_keys_create_instancecreates or changes datadescribed as changing data

    “POST /v1/alternativeDistributionKeys (POST /v1/alternativeDistributionKeys) Body shape: see OpenAPI components.schemas.AlternativeDistributionKeyCreateRequest for the full JSON:API envelope.”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • alternative_distribution_keys_get_instancereads or searches

    “GET /v1/alternativeDistributionKeys/{id} (GET /v1/alternativeDistributionKeys/{id})”

    2 inputs, 1 required
    • fields_alternativeDistributionKeysarray or string“the fields to include for returned resources of type alternativeDistributionKeys”
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_keys_delete_instancedeletesdescribed as changing data

    “DELETE /v1/alternativeDistributionKeys/{id} (DELETE /v1/alternativeDistributionKeys/{id})”

    1 input, 1 required
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_package_deltas_get_instancereads or searches

    “GET /v1/alternativeDistributionPackageDeltas/{id} (GET /v1/alternativeDistributionPackageDeltas/{id})”

    2 inputs, 1 required
    • fields_alternativeDistributionPackageDeltasarray or string“the fields to include for returned resources of type alternativeDistributionPackageDeltas”
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_package_variants_get_instancereads or searches

    “GET /v1/alternativeDistributionPackageVariants/{id} (GET /v1/alternativeDistributionPackageVariants/{id})”

    2 inputs, 1 required
    • fields_alternativeDistributionPackageVariantsarray or string“the fields to include for returned resources of type alternativeDistributionPackageVariants”
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_package_versions_get_instancereads or searches

    “GET /v1/alternativeDistributionPackageVersions/{id} (GET /v1/alternativeDistributionPackageVersions/{id})”

    8 inputs, 1 required
    • fields_alternativeDistributionPackageVersionsarray or string“the fields to include for returned resources of type alternativeDistributionPackageVersions”
    • fields_alternativeDistributionPackageVariantsarray or string“the fields to include for returned resources of type alternativeDistributionPackageVariants”
    • fields_alternativeDistributionPackageDeltasarray or string“the fields to include for returned resources of type alternativeDistributionPackageDeltas”
    • fields_alternativeDistributionPackagesarray or string“the fields to include for returned resources of type alternativeDistributionPackages”
    • includearray or string“comma-separated list of relationships to include”
    • limit_deltasinteger“maximum number of related deltas returned (when they are included)”
    • limit_variantsinteger“maximum number of related variants returned (when they are included)”
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_package_versions_deltas_get_to_many_relationshipreads or searches

    “GET /v1/alternativeDistributionPackageVersions/{id}/relationships/deltas (GET /v1/alternativeDistributionPackageVersions/{id}/relationships/deltas)”

    2 inputs, 1 required
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_package_versions_deltas_get_to_many_relatedreads or searches

    “GET /v1/alternativeDistributionPackageVersions/{id}/deltas (GET /v1/alternativeDistributionPackageVersions/{id}/deltas)”

    3 inputs, 1 required
    • fields_alternativeDistributionPackageDeltasarray or string“the fields to include for returned resources of type alternativeDistributionPackageDeltas”
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_package_versions_variants_get_to_many_relationshipreads or searches

    “GET /v1/alternativeDistributionPackageVersions/{id}/relationships/variants (GET /v1/alternativeDistributionPackageVersions/{id}/relationships/variants)”

    2 inputs, 1 required
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_package_versions_variants_get_to_many_relatedreads or searches

    “GET /v1/alternativeDistributionPackageVersions/{id}/variants (GET /v1/alternativeDistributionPackageVersions/{id}/variants)”

    3 inputs, 1 required
    • fields_alternativeDistributionPackageVariantsarray or string“the fields to include for returned resources of type alternativeDistributionPackageVariants”
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_packages_create_instancecreates or changes datadescribed as changing data

    “POST /v1/alternativeDistributionPackages (POST /v1/alternativeDistributionPackages) Body shape: see OpenAPI components.schemas.AlternativeDistributionPackageCreateRequest for the full JSON:API envelo…”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • alternative_distribution_packages_get_instancereads or searches

    “GET /v1/alternativeDistributionPackages/{id} (GET /v1/alternativeDistributionPackages/{id})”

    5 inputs, 1 required
    • fields_alternativeDistributionPackagesarray or string“the fields to include for returned resources of type alternativeDistributionPackages”
    • fields_alternativeDistributionPackageVersionsarray or string“the fields to include for returned resources of type alternativeDistributionPackageVersions”
    • includearray or string“comma-separated list of relationships to include”
    • limit_versionsinteger“maximum number of related versions returned (when they are included)”
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_packages_versions_get_to_many_relationshipreads or searches

    “GET /v1/alternativeDistributionPackages/{id}/relationships/versions (GET /v1/alternativeDistributionPackages/{id}/relationships/versions)”

    2 inputs, 1 required
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • alternative_distribution_packages_versions_get_to_many_relatedreads or searches

    “GET /v1/alternativeDistributionPackages/{id}/versions (GET /v1/alternativeDistributionPackages/{id}/versions)”

    10 inputs, 1 required
    • filter_statearray or string“filter by attribute 'state'”
    • fields_alternativeDistributionPackageVersionsarray or string“the fields to include for returned resources of type alternativeDistributionPackageVersions”
    • fields_alternativeDistributionPackageVariantsarray or string“the fields to include for returned resources of type alternativeDistributionPackageVariants”
    • fields_alternativeDistributionPackageDeltasarray or string“the fields to include for returned resources of type alternativeDistributionPackageDeltas”
    • fields_alternativeDistributionPackagesarray or string“the fields to include for returned resources of type alternativeDistributionPackages”
    • limitinteger“maximum resources per page”
    • includearray or string“comma-separated list of relationships to include”
    • limit_variantsinteger“maximum number of related variants returned (when they are included)”
    • limit_deltasinteger“maximum number of related deltas returned (when they are included)”
    • idstringrequired“the id of the requested resource”
  • analytics_report_instances_get_instancereads or searches

    “GET /v1/analyticsReportInstances/{id} (GET /v1/analyticsReportInstances/{id})”

    2 inputs, 1 required
    • fields_analyticsReportInstancesarray or string“the fields to include for returned resources of type analyticsReportInstances”
    • idstringrequired“the id of the requested resource”
  • analytics_report_instances_segments_get_to_many_relationshipreads or searches

    “GET /v1/analyticsReportInstances/{id}/relationships/segments (GET /v1/analyticsReportInstances/{id}/relationships/segments)”

    2 inputs, 1 required
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • analytics_report_instances_segments_get_to_many_relatedreads or searches

    “GET /v1/analyticsReportInstances/{id}/segments (GET /v1/analyticsReportInstances/{id}/segments)”

    3 inputs, 1 required
    • fields_analyticsReportSegmentsarray or string“the fields to include for returned resources of type analyticsReportSegments”
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • analytics_report_requests_create_instancecreates or changes datadescribed as changing data

    “POST /v1/analyticsReportRequests (POST /v1/analyticsReportRequests) Body shape: see OpenAPI components.schemas.AnalyticsReportRequestCreateRequest for the full JSON:API envelope.”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • analytics_report_requests_get_instancereads or searches

    “GET /v1/analyticsReportRequests/{id} (GET /v1/analyticsReportRequests/{id})”

    5 inputs, 1 required
    • fields_analyticsReportRequestsarray or string“the fields to include for returned resources of type analyticsReportRequests”
    • fields_analyticsReportsarray or string“the fields to include for returned resources of type analyticsReports”
    • includearray or string“comma-separated list of relationships to include”
    • limit_reportsinteger“maximum number of related reports returned (when they are included)”
    • idstringrequired“the id of the requested resource”
  • analytics_report_requests_delete_instancedeletesdescribed as changing data

    “DELETE /v1/analyticsReportRequests/{id} (DELETE /v1/analyticsReportRequests/{id})”

    1 input, 1 required
    • idstringrequired“the id of the requested resource”
  • analytics_report_requests_reports_get_to_many_relationshipreads or searches

    “GET /v1/analyticsReportRequests/{id}/relationships/reports (GET /v1/analyticsReportRequests/{id}/relationships/reports)”

    2 inputs, 1 required
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • analytics_report_requests_reports_get_to_many_relatedreads or searches

    “GET /v1/analyticsReportRequests/{id}/reports (GET /v1/analyticsReportRequests/{id}/reports)”

    5 inputs, 1 required
    • filter_namearray or string“filter by attribute 'name'”
    • filter_categoryarray or string“filter by attribute 'category'”
    • fields_analyticsReportsarray or string“the fields to include for returned resources of type analyticsReports”
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • analytics_report_segments_get_instancereads or searches

    “GET /v1/analyticsReportSegments/{id} (GET /v1/analyticsReportSegments/{id})”

    2 inputs, 1 required
    • fields_analyticsReportSegmentsarray or string“the fields to include for returned resources of type analyticsReportSegments”
    • idstringrequired“the id of the requested resource”
  • analytics_reports_get_instancereads or searches

    “GET /v1/analyticsReports/{id} (GET /v1/analyticsReports/{id})”

    2 inputs, 1 required
    • fields_analyticsReportsarray or string“the fields to include for returned resources of type analyticsReports”
    • idstringrequired“the id of the requested resource”
  • analytics_reports_instances_get_to_many_relationshipreads or searches

    “GET /v1/analyticsReports/{id}/relationships/instances (GET /v1/analyticsReports/{id}/relationships/instances)”

    2 inputs, 1 required
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • analytics_reports_instances_get_to_many_relatedreads or searches

    “GET /v1/analyticsReports/{id}/instances (GET /v1/analyticsReports/{id}/instances)”

    5 inputs, 1 required
    • filter_granularityarray or string“filter by attribute 'granularity'”
    • filter_processingDatearray or string“filter by attribute 'processingDate'”
    • fields_analyticsReportInstancesarray or string“the fields to include for returned resources of type analyticsReportInstances”
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • android_to_ios_app_mapping_details_create_instancecreates or changes datadescribed as changing data

    “POST /v1/androidToIosAppMappingDetails (POST /v1/androidToIosAppMappingDetails) Body shape: see OpenAPI components.schemas.AndroidToIosAppMappingDetailCreateRequest for the full JSON:API envelope.”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • android_to_ios_app_mapping_details_get_instancereads or searches

    “GET /v1/androidToIosAppMappingDetails/{id} (GET /v1/androidToIosAppMappingDetails/{id})”

    2 inputs, 1 required
    • fields_androidToIosAppMappingDetailsarray or string“the fields to include for returned resources of type androidToIosAppMappingDetails”
    • idstringrequired“the id of the requested resource”
  • android_to_ios_app_mapping_details_update_instancecreates or changes datadescribed as changing data

    “PATCH /v1/androidToIosAppMappingDetails/{id} (PATCH /v1/androidToIosAppMappingDetails/{id}) Body shape: see OpenAPI components.schemas.AndroidToIosAppMappingDetailUpdateRequest for the full JSON:API …”

    2 inputs, 2 required
    • idstringrequired“the id of the requested resource”
    • bodyobjectrequired“JSON body.”
  • android_to_ios_app_mapping_details_delete_instancedeletesdescribed as changing data

    “DELETE /v1/androidToIosAppMappingDetails/{id} (DELETE /v1/androidToIosAppMappingDetails/{id})”

    1 input, 1 required
    • idstringrequired“the id of the requested resource”
  • app_asset_libraries_get_instancereads or searches

    “GET /v1/appAssetLibraries/{id} (GET /v1/appAssetLibraries/{id})”

    2 inputs, 1 required
    • fields_appAssetLibrariesarray or string“the fields to include for returned resources of type appAssetLibraries”
    • idstringrequired“the id of the requested resource”
  • app_asset_libraries_images_get_to_many_relationshipreads or searches

    “GET /v1/appAssetLibraries/{id}/relationships/images (GET /v1/appAssetLibraries/{id}/relationships/images)”

    2 inputs, 1 required
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • app_asset_libraries_images_get_to_many_relatedreads or searches

    “GET /v1/appAssetLibraries/{id}/images (GET /v1/appAssetLibraries/{id}/images)”

    12 inputs, 1 required
    • filter_categoryarray or string“filter by attribute 'category'”
    • filter_statearray or string“filter by attribute 'state'”
    • filter_referenceNamearray or string“filter by attribute 'referenceName'”
    • filter_specIdarray or string“filter by attribute 'specId'”
    • filter_idarray or string“filter by id(s)”
    • sortarray or string“comma-separated list of sort expressions; resources will be sorted as specified”
    • fields_appAssetLibraryImagesarray or string“the fields to include for returned resources of type appAssetLibraryImages”
    • fields_appAssetLibraryPlacementsarray or string“the fields to include for returned resources of type appAssetLibraryPlacements”
    • limitinteger“maximum resources per page”
    • includearray or string“comma-separated list of relationships to include”
    • limit_placementsinteger“maximum number of related placements returned (when they are included)”
    • idstringrequired“the id of the requested resource”
  • app_asset_libraries_videos_get_to_many_relationshipreads or searches

    “GET /v1/appAssetLibraries/{id}/relationships/videos (GET /v1/appAssetLibraries/{id}/relationships/videos)”

    2 inputs, 1 required
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • app_asset_libraries_videos_get_to_many_relatedreads or searches

    “GET /v1/appAssetLibraries/{id}/videos (GET /v1/appAssetLibraries/{id}/videos)”

    12 inputs, 1 required
    • filter_categoryarray or string“filter by attribute 'category'”
    • filter_statearray or string“filter by attribute 'state'”
    • filter_referenceNamearray or string“filter by attribute 'referenceName'”
    • filter_specIdarray or string“filter by attribute 'specId'”
    • filter_idarray or string“filter by id(s)”
    • sortarray or string“comma-separated list of sort expressions; resources will be sorted as specified”
    • fields_appAssetLibraryVideosarray or string“the fields to include for returned resources of type appAssetLibraryVideos”
    • fields_appAssetLibraryPlacementsarray or string“the fields to include for returned resources of type appAssetLibraryPlacements”
    • limitinteger“maximum resources per page”
    • includearray or string“comma-separated list of relationships to include”
    • limit_placementsinteger“maximum number of related placements returned (when they are included)”
    • idstringrequired“the id of the requested resource”
  • app_asset_library_images_create_instancecreates or changes datadescribed as changing data

    “POST /v1/appAssetLibraryImages (POST /v1/appAssetLibraryImages) Body shape: see OpenAPI components.schemas.AppAssetLibraryImageCreateRequest for the full JSON:API envelope.”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • app_asset_library_images_get_instancereads or searches

    “GET /v1/appAssetLibraryImages/{id} (GET /v1/appAssetLibraryImages/{id})”

    5 inputs, 1 required
    • fields_appAssetLibraryImagesarray or string“the fields to include for returned resources of type appAssetLibraryImages”
    • fields_appAssetLibraryPlacementsarray or string“the fields to include for returned resources of type appAssetLibraryPlacements”
    • includearray or string“comma-separated list of relationships to include”
    • limit_placementsinteger“maximum number of related placements returned (when they are included)”
    • idstringrequired“the id of the requested resource”
  • app_asset_library_images_update_instancecreates or changes datadescribed as changing data

    “PATCH /v1/appAssetLibraryImages/{id} (PATCH /v1/appAssetLibraryImages/{id}) Body shape: see OpenAPI components.schemas.AppAssetLibraryImageUpdateRequest for the full JSON:API envelope.”

    2 inputs, 2 required
    • idstringrequired“the id of the requested resource”
    • bodyobjectrequired“JSON body.”
  • app_asset_library_images_delete_instancedeletesdescribed as changing data

    “DELETE /v1/appAssetLibraryImages/{id} (DELETE /v1/appAssetLibraryImages/{id})”

    1 input, 1 required
    • idstringrequired“the id of the requested resource”
  • app_asset_library_images_placements_get_to_many_relationshipreads or searches

    “GET /v1/appAssetLibraryImages/{id}/relationships/placements (GET /v1/appAssetLibraryImages/{id}/relationships/placements)”

    2 inputs, 1 required
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • app_asset_library_images_placements_get_to_many_relatedreads or searches

    “GET /v1/appAssetLibraryImages/{id}/placements (GET /v1/appAssetLibraryImages/{id}/placements)”

    20 inputs, 1 required
    • filter_placementTypearray or string“filter by attribute 'placementType'”
    • filter_placementGrouparray or string“filter by attribute 'placementGroup'”
    • filter_statearray or string“filter by attribute 'state'”
    • filter_videoarray or string“filter by id(s) of related 'video'”
    • filter_appEventLocalizationarray or string“filter by id(s) of related 'appEventLocalization'”
    • filter_appStoreVersionLocalizationarray or string“filter by id(s) of related 'appStoreVersionLocalization'”
    • filter_appCustomProductPageLocalizationarray or string“filter by id(s) of related 'appCustomProductPageLocalization'”
    • filter_appStoreVersionExperimentTreatmentLocalizationarray or string“filter by id(s) of related 'appStoreVersionExperimentTreatmentLocalization'”
    • filter_idarray or string“filter by id(s)”
    • sortarray or string“comma-separated list of sort expressions; resources will be sorted as specified”
    • fields_appAssetLibraryPlacementsarray or string“the fields to include for returned resources of type appAssetLibraryPlacements”
    • fields_appAssetLibraryImagesarray or string“the fields to include for returned resources of type appAssetLibraryImages”
    • fields_appAssetLibraryVideosarray or string“the fields to include for returned resources of type appAssetLibraryVideos”
    • fields_appEventLocalizationsarray or string“the fields to include for returned resources of type appEventLocalizations”
    • fields_appStoreVersionLocalizationsarray or string“the fields to include for returned resources of type appStoreVersionLocalizations”
    • fields_appCustomProductPageLocalizationsarray or string“the fields to include for returned resources of type appCustomProductPageLocalizations”
    • fields_appStoreVersionExperimentTreatmentLocalizationsarray or string“the fields to include for returned resources of type appStoreVersionExperimentTreatmentLocalizations”
    • limitinteger“maximum resources per page”
    • includearray or string“comma-separated list of relationships to include”
    • idstringrequired“the id of the requested resource”
  • app_asset_library_placement_ordering_requests_create_instancecreates or changes datadescribed as changing data

    “POST /v1/appAssetLibraryPlacementOrderingRequests (POST /v1/appAssetLibraryPlacementOrderingRequests) Body shape: see OpenAPI components.schemas.AppAssetLibraryPlacementOrderingRequestCreateRequest f…”

    5 inputs, 1 required
    • fields_appAssetLibraryPlacementsarray or string“the fields to include for returned resources of type appAssetLibraryPlacements”
    • includearray or string“comma-separated list of relationships to include”
    • limit_orderedPlacementsinteger“maximum number of related orderedPlacements returned (when they are included)”
    • fields_appAssetLibraryPlacementOrderingRequestsarray or string“the fields to include for returned resources of type appAssetLibraryPlacementOrderingRequests”
    • bodyobjectrequired“JSON body.”
  • app_asset_library_placements_create_instancecreates or changes datadescribed as changing data

    “POST /v1/appAssetLibraryPlacements (POST /v1/appAssetLibraryPlacements) Body shape: see OpenAPI components.schemas.AppAssetLibraryPlacementCreateRequest for the full JSON:API envelope.”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • app_asset_library_placements_get_instancereads or searches

    “GET /v1/appAssetLibraryPlacements/{id} (GET /v1/appAssetLibraryPlacements/{id})”

    9 inputs, 1 required
    • fields_appAssetLibraryPlacementsarray or string“the fields to include for returned resources of type appAssetLibraryPlacements”
    • fields_appAssetLibraryImagesarray or string“the fields to include for returned resources of type appAssetLibraryImages”
    • fields_appAssetLibraryVideosarray or string“the fields to include for returned resources of type appAssetLibraryVideos”
    • fields_appEventLocalizationsarray or string“the fields to include for returned resources of type appEventLocalizations”
    • fields_appStoreVersionLocalizationsarray or string“the fields to include for returned resources of type appStoreVersionLocalizations”
    • fields_appCustomProductPageLocalizationsarray or string“the fields to include for returned resources of type appCustomProductPageLocalizations”
    • fields_appStoreVersionExperimentTreatmentLocalizationsarray or string“the fields to include for returned resources of type appStoreVersionExperimentTreatmentLocalizations”
    • includearray or string“comma-separated list of relationships to include”
    • idstringrequired“the id of the requested resource”
  • app_asset_library_placements_delete_instancedeletesdescribed as changing data

    “DELETE /v1/appAssetLibraryPlacements/{id} (DELETE /v1/appAssetLibraryPlacements/{id})”

    1 input, 1 required
    • idstringrequired“the id of the requested resource”
  • app_asset_library_ref_data_get_collectionreads or searches

    “GET /v1/appAssetLibraryRefData (GET /v1/appAssetLibraryRefData)”

    5 inputs
    • filter_placementTypesarray or string“filter by attribute 'placementTypes'”
    • filter_placementProfileGroupsarray or string“filter by attribute 'placementProfileGroups'”
    • filter_featuresarray or string“filter by attribute 'features'”
    • filter_specsarray or string“filter by specs”
    • fields_appAssetLibraryRefDataarray or string“the fields to include for returned resources of type appAssetLibraryRefData”
  • app_asset_library_ref_data_get_instancereads or searches

    “GET /v1/appAssetLibraryRefData/{id} (GET /v1/appAssetLibraryRefData/{id})”

    2 inputs, 1 required
    • fields_appAssetLibraryRefDataarray or string“the fields to include for returned resources of type appAssetLibraryRefData”
    • idstringrequired“the id of the requested resource”
  • app_asset_library_videos_create_instancecreates or changes datadescribed as changing data

    “POST /v1/appAssetLibraryVideos (POST /v1/appAssetLibraryVideos) Body shape: see OpenAPI components.schemas.AppAssetLibraryVideoCreateRequest for the full JSON:API envelope.”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • app_asset_library_videos_get_instancereads or searches

    “GET /v1/appAssetLibraryVideos/{id} (GET /v1/appAssetLibraryVideos/{id})”

    5 inputs, 1 required
    • fields_appAssetLibraryVideosarray or string“the fields to include for returned resources of type appAssetLibraryVideos”
    • fields_appAssetLibraryPlacementsarray or string“the fields to include for returned resources of type appAssetLibraryPlacements”
    • includearray or string“comma-separated list of relationships to include”
    • limit_placementsinteger“maximum number of related placements returned (when they are included)”
    • idstringrequired“the id of the requested resource”
  • app_asset_library_videos_update_instancecreates or changes datadescribed as changing data

    “PATCH /v1/appAssetLibraryVideos/{id} (PATCH /v1/appAssetLibraryVideos/{id}) Body shape: see OpenAPI components.schemas.AppAssetLibraryVideoUpdateRequest for the full JSON:API envelope.”

    2 inputs, 2 required
    • idstringrequired“the id of the requested resource”
    • bodyobjectrequired“JSON body.”
  • app_asset_library_videos_delete_instancedeletesdescribed as changing data

    “DELETE /v1/appAssetLibraryVideos/{id} (DELETE /v1/appAssetLibraryVideos/{id})”

    1 input, 1 required
    • idstringrequired“the id of the requested resource”
  • app_asset_library_videos_placements_get_to_many_relationshipreads or searches

    “GET /v1/appAssetLibraryVideos/{id}/relationships/placements (GET /v1/appAssetLibraryVideos/{id}/relationships/placements)”

    2 inputs, 1 required
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • app_asset_library_videos_placements_get_to_many_relatedreads or searches

    “GET /v1/appAssetLibraryVideos/{id}/placements (GET /v1/appAssetLibraryVideos/{id}/placements)”

    20 inputs, 1 required
    • filter_placementTypearray or string“filter by attribute 'placementType'”
    • filter_placementGrouparray or string“filter by attribute 'placementGroup'”
    • filter_statearray or string“filter by attribute 'state'”
    • filter_imagearray or string“filter by id(s) of related 'image'”
    • filter_appEventLocalizationarray or string“filter by id(s) of related 'appEventLocalization'”
    • filter_appStoreVersionLocalizationarray or string“filter by id(s) of related 'appStoreVersionLocalization'”
    • filter_appCustomProductPageLocalizationarray or string“filter by id(s) of related 'appCustomProductPageLocalization'”
    • filter_appStoreVersionExperimentTreatmentLocalizationarray or string“filter by id(s) of related 'appStoreVersionExperimentTreatmentLocalization'”
    • filter_idarray or string“filter by id(s)”
    • sortarray or string“comma-separated list of sort expressions; resources will be sorted as specified”
    • fields_appAssetLibraryPlacementsarray or string“the fields to include for returned resources of type appAssetLibraryPlacements”
    • fields_appAssetLibraryImagesarray or string“the fields to include for returned resources of type appAssetLibraryImages”
    • fields_appAssetLibraryVideosarray or string“the fields to include for returned resources of type appAssetLibraryVideos”
    • fields_appEventLocalizationsarray or string“the fields to include for returned resources of type appEventLocalizations”
    • fields_appStoreVersionLocalizationsarray or string“the fields to include for returned resources of type appStoreVersionLocalizations”
    • fields_appCustomProductPageLocalizationsarray or string“the fields to include for returned resources of type appCustomProductPageLocalizations”
    • fields_appStoreVersionExperimentTreatmentLocalizationsarray or string“the fields to include for returned resources of type appStoreVersionExperimentTreatmentLocalizations”
    • limitinteger“maximum resources per page”
    • includearray or string“comma-separated list of relationships to include”
    • idstringrequired“the id of the requested resource”
  • app_availabilities_v2_create_instancecreates or changes datadescribed as changing data

    “POST /v2/appAvailabilities (POST /v2/appAvailabilities) Body shape: see OpenAPI components.schemas.AppAvailabilityV2CreateRequest for the full JSON:API envelope.”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • app_availabilities_v2_get_instancereads or searches

    “GET /v2/appAvailabilities/{id} (GET /v2/appAvailabilities/{id})”

    5 inputs, 1 required
    • fields_appAvailabilitiesarray or string“the fields to include for returned resources of type appAvailabilities”
    • fields_territoryAvailabilitiesarray or string“the fields to include for returned resources of type territoryAvailabilities”
    • includearray or string“comma-separated list of relationships to include”
    • limit_territoryAvailabilitiesinteger“maximum number of related territoryAvailabilities returned (when they are included)”
    • idstringrequired“the id of the requested resource”
  • app_availabilities_v2_territory_availabilities_get_to_many_relationshipreads or searches

    “GET /v2/appAvailabilities/{id}/relationships/territoryAvailabilities (GET /v2/appAvailabilities/{id}/relationships/territoryAvailabilities)”

    2 inputs, 1 required
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • app_availabilities_v2_territory_availabilities_get_to_many_relatedreads or searches

    “GET /v2/appAvailabilities/{id}/territoryAvailabilities (GET /v2/appAvailabilities/{id}/territoryAvailabilities)”

    5 inputs, 1 required
    • fields_territoryAvailabilitiesarray or string“the fields to include for returned resources of type territoryAvailabilities”
    • fields_territoriesarray or string“the fields to include for returned resources of type territories”
    • limitinteger“maximum resources per page”
    • includearray or string“comma-separated list of relationships to include”
    • idstringrequired“the id of the requested resource”
  • app_categories_get_collectionreads or searches

    “GET /v1/appCategories (GET /v1/appCategories)”

    6 inputs
    • filter_platformsarray or string“filter by attribute 'platforms'”
    • exists_parentboolean“filter by existence or non-existence of related 'parent'”
    • fields_appCategoriesarray or string“the fields to include for returned resources of type appCategories”
    • limitinteger“maximum resources per page”
    • includearray or string“comma-separated list of relationships to include”
    • limit_subcategoriesinteger“maximum number of related subcategories returned (when they are included)”
  • app_categories_get_instancereads or searches

    “GET /v1/appCategories/{id} (GET /v1/appCategories/{id})”

    4 inputs, 1 required
    • fields_appCategoriesarray or string“the fields to include for returned resources of type appCategories”
    • includearray or string“comma-separated list of relationships to include”
    • limit_subcategoriesinteger“maximum number of related subcategories returned (when they are included)”
    • idstringrequired“the id of the requested resource”
  • app_categories_parent_get_to_one_relationshipreads or searches

    “GET /v1/appCategories/{id}/relationships/parent (GET /v1/appCategories/{id}/relationships/parent)”

    1 input, 1 required
    • idstringrequired“the id of the requested resource”
  • app_categories_parent_get_to_one_relatedreads or searches

    “GET /v1/appCategories/{id}/parent (GET /v1/appCategories/{id}/parent)”

    2 inputs, 1 required
    • fields_appCategoriesarray or string“the fields to include for returned resources of type appCategories”
    • idstringrequired“the id of the requested resource”
  • app_categories_subcategories_get_to_many_relationshipreads or searches

    “GET /v1/appCategories/{id}/relationships/subcategories (GET /v1/appCategories/{id}/relationships/subcategories)”

    2 inputs, 1 required
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • app_categories_subcategories_get_to_many_relatedreads or searches

    “GET /v1/appCategories/{id}/subcategories (GET /v1/appCategories/{id}/subcategories)”

    3 inputs, 1 required
    • fields_appCategoriesarray or string“the fields to include for returned resources of type appCategories”
    • limitinteger“maximum resources per page”
    • idstringrequired“the id of the requested resource”
  • app_clip_advanced_experience_images_create_instancecreates or changes datadescribed as changing data

    “POST /v1/appClipAdvancedExperienceImages (POST /v1/appClipAdvancedExperienceImages) Body shape: see OpenAPI components.schemas.AppClipAdvancedExperienceImageCreateRequest for the full JSON:API envelo…”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • app_clip_advanced_experience_images_get_instancereads or searches

    “GET /v1/appClipAdvancedExperienceImages/{id} (GET /v1/appClipAdvancedExperienceImages/{id})”

    2 inputs, 1 required
    • fields_appClipAdvancedExperienceImagesarray or string“the fields to include for returned resources of type appClipAdvancedExperienceImages”
    • idstringrequired“the id of the requested resource”
  • app_clip_advanced_experience_images_update_instancecreates or changes datadescribed as changing data

    “PATCH /v1/appClipAdvancedExperienceImages/{id} (PATCH /v1/appClipAdvancedExperienceImages/{id}) Body shape: see OpenAPI components.schemas.AppClipAdvancedExperienceImageUpdateRequest for the full JSO…”

    2 inputs, 2 required
    • idstringrequired“the id of the requested resource”
    • bodyobjectrequired“JSON body.”
  • app_clip_advanced_experiences_create_instancecreates or changes datadescribed as changing data

    “POST /v1/appClipAdvancedExperiences (POST /v1/appClipAdvancedExperiences) Body shape: see OpenAPI components.schemas.AppClipAdvancedExperienceCreateRequest for the full JSON:API envelope.”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • app_clip_advanced_experiences_get_instancereads or searches

    “GET /v1/appClipAdvancedExperiences/{id} (GET /v1/appClipAdvancedExperiences/{id})”

    7 inputs, 1 required
    • fields_appClipAdvancedExperiencesarray or string“the fields to include for returned resources of type appClipAdvancedExperiences”
    • fields_appClipsarray or string“the fields to include for returned resources of type appClips”
    • fields_appClipAdvancedExperienceImagesarray or string“the fields to include for returned resources of type appClipAdvancedExperienceImages”
    • fields_appClipAdvancedExperienceLocalizationsarray or string“the fields to include for returned resources of type appClipAdvancedExperienceLocalizations”
    • includearray or string“comma-separated list of relationships to include”
    • limit_localizationsinteger“maximum number of related localizations returned (when they are included)”
    • idstringrequired“the id of the requested resource”
  • app_clip_advanced_experiences_update_instancecreates or changes datadescribed as changing data

    “PATCH /v1/appClipAdvancedExperiences/{id} (PATCH /v1/appClipAdvancedExperiences/{id}) Body shape: see OpenAPI components.schemas.AppClipAdvancedExperienceUpdateRequest for the full JSON:API envelope.”

    2 inputs, 2 required
    • idstringrequired“the id of the requested resource”
    • bodyobjectrequired“JSON body.”
  • app_clip_app_store_review_details_create_instancecreates or changes datadescribed as changing data

    “POST /v1/appClipAppStoreReviewDetails (POST /v1/appClipAppStoreReviewDetails) Body shape: see OpenAPI components.schemas.AppClipAppStoreReviewDetailCreateRequest for the full JSON:API envelope.”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • app_clip_app_store_review_details_get_instancereads or searches

    “GET /v1/appClipAppStoreReviewDetails/{id} (GET /v1/appClipAppStoreReviewDetails/{id})”

    4 inputs, 1 required
    • fields_appClipAppStoreReviewDetailsarray or string“the fields to include for returned resources of type appClipAppStoreReviewDetails”
    • fields_appClipDefaultExperiencesarray or string“the fields to include for returned resources of type appClipDefaultExperiences”
    • includearray or string“comma-separated list of relationships to include”
    • idstringrequired“the id of the requested resource”
  • app_clip_app_store_review_details_update_instancecreates or changes datadescribed as changing data

    “PATCH /v1/appClipAppStoreReviewDetails/{id} (PATCH /v1/appClipAppStoreReviewDetails/{id}) Body shape: see OpenAPI components.schemas.AppClipAppStoreReviewDetailUpdateRequest for the full JSON:API env…”

    2 inputs, 2 required
    • idstringrequired“the id of the requested resource”
    • bodyobjectrequired“JSON body.”
  • app_clip_default_experience_localizations_create_instancecreates or changes datadescribed as changing data

    “POST /v1/appClipDefaultExperienceLocalizations (POST /v1/appClipDefaultExperienceLocalizations) Body shape: see OpenAPI components.schemas.AppClipDefaultExperienceLocalizationCreateRequest for the fu…”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • app_clip_default_experience_localizations_get_instancereads or searches

    “GET /v1/appClipDefaultExperienceLocalizations/{id} (GET /v1/appClipDefaultExperienceLocalizations/{id})”

    5 inputs, 1 required
    • fields_appClipDefaultExperienceLocalizationsarray or string“the fields to include for returned resources of type appClipDefaultExperienceLocalizations”
    • fields_appClipDefaultExperiencesarray or string“the fields to include for returned resources of type appClipDefaultExperiences”
    • fields_appClipHeaderImagesarray or string“the fields to include for returned resources of type appClipHeaderImages”
    • includearray or string“comma-separated list of relationships to include”
    • idstringrequired“the id of the requested resource”
  • app_clip_default_experience_localizations_update_instancecreates or changes datadescribed as changing data

    “PATCH /v1/appClipDefaultExperienceLocalizations/{id} (PATCH /v1/appClipDefaultExperienceLocalizations/{id}) Body shape: see OpenAPI components.schemas.AppClipDefaultExperienceLocalizationUpdateReques…”

    2 inputs, 2 required
    • idstringrequired“the id of the requested resource”
    • bodyobjectrequired“JSON body.”
  • app_clip_default_experience_localizations_delete_instancedeletesdescribed as changing data

    “DELETE /v1/appClipDefaultExperienceLocalizations/{id} (DELETE /v1/appClipDefaultExperienceLocalizations/{id})”

    1 input, 1 required
    • idstringrequired“the id of the requested resource”
  • app_clip_default_experience_localizations_app_clip_header_image_get_to_one_rela…reads or searches

    “GET /v1/appClipDefaultExperienceLocalizations/{id}/relationships/appClipHeaderImage (GET /v1/appClipDefaultExperienceLocalizations/{id}/relationships/appClipHeaderImage)”

    1 input, 1 required
    • idstringrequired“the id of the requested resource”
  • app_clip_default_experience_localizations_app_clip_header_image_get_to_one_rela…reads or searches

    “GET /v1/appClipDefaultExperienceLocalizations/{id}/appClipHeaderImage (GET /v1/appClipDefaultExperienceLocalizations/{id}/appClipHeaderImage)”

    4 inputs, 1 required
    • fields_appClipHeaderImagesarray or string“the fields to include for returned resources of type appClipHeaderImages”
    • fields_appClipDefaultExperienceLocalizationsarray or string“the fields to include for returned resources of type appClipDefaultExperienceLocalizations”
    • includearray or string“comma-separated list of relationships to include”
    • idstringrequired“the id of the requested resource”
  • app_clip_default_experiences_create_instancecreates or changes datadescribed as changing data

    “POST /v1/appClipDefaultExperiences (POST /v1/appClipDefaultExperiences) Body shape: see OpenAPI components.schemas.AppClipDefaultExperienceCreateRequest for the full JSON:API envelope.”

    1 input, 1 required
    • bodyobjectrequired“JSON body.”
  • app_clip_default_experiences_get_instancereads or searches

    “GET /v1/appClipDefaultExperiences/{id} (GET /v1/appClipDefaultExperiences/{id})”

    8 inputs, 1 required
    • fields_appClipDefaultExperiencesarray or string“the fields to include for returned resources of type appClipDefaultExperiences”
    • fields_appClipsarray or string“the fields to include for returned resources of type appClips”
    • fields_appStoreVersionsarray or string“the fields to include for returned resources of type appStoreVersions”
    • fields_appClipDefaultExperienceLocalizationsarray or string“the fields to include for returned resources of type appClipDefaultExperienceLocalizations”
    • fields_appClipAppStoreReviewDetailsarray or string“the fields to include for returned resources of type appClipAppStoreReviewDetails”
    • includearray or string“comma-separated list of relationships to include”
    • limit_appClipDefaultExperienceLocalizationsinteger“maximum number of related appClipDefaultExperienceLocalizations returned (when they are included)”
    • idstringrequired“the id of the requested resource”

Each quoted sentence is the first sentence of the publisher’s own description. The kind of tool and the “changes data” mark are our AI model’s reading of that description, not something we tested: two differently worded runs had to agree, otherwise no label is shown, and nobody has checked them by hand. A tool without the “changes data” mark is described as only reading, searching or calculating, or the two runs did not agree. No tool was called. Read the publisher’s full description before relying on it. Inputs are the parameters in the tool's own input schema: name, declared type, whether it is required, and the first sentence of its description. The first 100 of 1,316 tools are listed. Read 2026-10-23.

How well are its tools described?

Features #4 and #5

How clearly this server's own tool descriptions say what a tool does, and how consistent its tool list is. The first part is an AI model's yes/no reading of each description; the second part is counted. We do not turn it into a grade.

Descriptions

AI reading of each description

Says what the tool does
100% of 1,316 tools
Says what it returns
52% of 1,028 tools
States limits, defaults or errors
43% of 1,247 tools
Says when to use it
0% of 1,312 tools
Items covered per tool
1.9 of 4 on average

Counted from the listing

Parameters with a description
99% of 4,983
Tools with a description
100% of 1,316
Typical description length
128 characters

The tool set

Counted from the listing

Tools
1,316
Size of the list
about 370,558 tokens for an agent to load (characters ÷ 4)
Naming
1316 of 1,316 names use snake_case

AI reading: easy to mix up

No pair found.

The AI items cover 1,316 of 1,316 tools: for a tool where two differently worded runs disagreed, that item is left out. They were not checked by hand, and no tool was called. “Easy to mix up” means two tools whose names or descriptions overlap without saying how they differ; the AI found none, comparing tools within groups of 40. We do not rate whether the tool set is complete or whether side effects are spelled out, because our AI reading of those was not reliable enough.

How do I add it to my client?

Config from the registry entry

From the npm package apple-app-store-connect-mcp

Our sandbox started this package on 2026-10-23 (a read-only session: no tool was called).

Add to CursorAn install link in the format Cursor documents, holding the Cursor config below. The command runs the publisher’s code on your machine.

Claude Desktop · claude_desktop_config.json (Settings → Developer → Edit Config)
{
  "mcpServers": {
    "app-store-connect-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "apple-app-store-connect-mcp@0.5.0"
      ]
    }
  }
}
Cursor · .cursor/mcp.json in a project, or ~/.cursor/mcp.json
{
  "mcpServers": {
    "app-store-connect-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "apple-app-store-connect-mcp@0.5.0"
      ]
    }
  }
}
VS Code · .vscode/mcp.json
{
  "servers": {
    "app-store-connect-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "apple-app-store-connect-mcp@0.5.0"
      ]
    }
  }
}
VS Code (command line) · Bash or zsh terminal (macOS, Linux)
code --add-mcp '{"name":"app-store-connect-mcp","type":"stdio","command":"npx","args":["-y","apple-app-store-connect-mcp@0.5.0"]}'
Claude Code
claude mcp add --transport stdio app-store-connect-mcp -- npx -y apple-app-store-connect-mcp@0.5.0
Try it in the MCP Inspector · runs on your machine, opens in your browser · Node 22.19+
npx @modelcontextprotocol/inspector@2.11.0 -- npx -y apple-app-store-connect-mcp@0.5.0
  • This runs the publisher's code on your machine (npx). Read its README first.
  • The MCP Inspector lists the server's tools, resources and prompts; a tool you call there runs for real.

Built from the server's registry entry with each client's documented format (checked 2026-10-14; the Cursor link and the VS Code command 2026-10-19; the MCP Inspector command 2026-10-21). Values in < > are yours to fill in; this page never contains a key. Where the server needs a setting the entry does not declare, it can still fail to start.

Can it be installed, and is it up to date?

Version pin · advisories

Listed version

Registry lists
0.5.0
Latest stable
0.5.0
Status
current
Withdrawn
no

Source: registry.npmjs.org · 2026-10-23. About the version the registry lists; a manual install may resolve to a different one.

Dependency advisories

critical0high0moderate0low0

Counted in the full dependency tree as resolved on 2026-10-23 (npm audit). Bars share one scale. The package itself has no known vulnerability (OSV.dev).

Integrity, provenance, license

Integrity
sha512-raC3WGxljveRitRJt…
Signature
signed and attested
License
MIT

Source: the package registry · 2026-10-23.

Usage

Downloads
1,610 in the last month

Source: api.npmjs.org · 2026-10-23.

Does the registry listing match what we found?

Feature #6

The registry verifies a package once, when it is published, and does not re-check it. A difference below is about the listing, not a judgement of the publisher.

Registry saysWe foundResultSource · date
Published package can be startedStarted and answeredmatchesour test · 2026-10-23
Version 0.5.0 on npmExists and can be installedmatchesnpm · 2026-10-23
Repository github.com/devinwang/app-store-connect-mcpOpens publiclymatchesapi.github.com · 2026-10-23

Who made it?

Feature #7 · lineage

Facts about the publisher. We do not turn them into a trust score.

Namespace
io.github.devinwang · 3 servers
GitHub owner
a personal account (devinwang)
Build record
signed and attested
Repository
github.com/devinwang/app-store-connect-mcp
Stars
3
Repository age
181–365 days
Last push
0–30 days ago
Archived
no
Security policy
docs/SECURITY.md

Source: the registry entry and api.github.com · 2026-10-23; security policy read from GitHub · 2026-10-23.

Publish this server? Run these checks against it yourself before release, from your own machine: a server the command starts, or your own server at its URL after a one-time proof that you control it: npx protocolprobe-selftest.

Choosing

Record checks

Public records · not a safety rating

9 of 9 record checks met

  • #1,531 of 15,112 packages by monthly downloads, tied with 1 other
  • Not ranked by stars: 3 stars (ranked from 10)
  • #271 of 1,074 packages meeting all 9 record checks, by downloads
  • MetRegistry entry is active and says how to run itActive, with a package or a remote address.
  • MetSource repository link opensThe linked GitHub repository is public.
  • MetRepository is not archivedNot archived.
  • MetCode pushed to the repository in the 90 days before our checkLast push 0-30 days before our check.
  • MetRepository publishes a security policy (SECURITY.md)SECURITY.md found.
  • MetPackage names its licence with a standard (SPDX) identifierMIT
  • MetThe version the registry lists can be installed and is not withdrawnThe listed version exists and is current.
  • Metnpm package carries build provenance (attestation)Signed, with a build attestation naming the source and workflow.
  • MetNo known critical or high advisory in the package or its dependenciesNone known in the package or its dependency tree.

Read from public records only: the registry entry, npm/PyPI, GitHub and advisory databases, checked 2026-10-23. No tool was called. Only “met” and “not met” are counted, so the total differs between servers; a check that does not apply or that we could not run is listed, never counted against it. It is not a safety rating. How each check works · Leaderboards

Common questions about io.github.devinwang/app-store-connect-mcp

Answered from the data above

Is io.github.devinwang/app-store-connect-mcp safe to install?

We do not rate servers as safe or unsafe. 9 of its 9 applicable record checks are met (facts from public records, each listed on this page). What the records show: Its npm package carries a build-provenance attestation that names its source repository and build workflow. Its source repository opens publicly. Its repository had a push in the last 90 days. The listed version is the latest stable release. The package itself has no known vulnerability (OSV.dev). Its full dependency tree has no known advisory. 483 of its tools describe changing data (our AI model's reading of the descriptions). These are facts with their sources on this page, not a safety guarantee, and we did not run its tools.

Has io.github.devinwang/app-store-connect-mcp been security tested?

Partly. 2 of the 12 checks that apply to it were exercised. We started the package in an isolated sandbox and read what it declares, but this test round was read-only, so its tools were not called. No security verdict is published before verification.

What can io.github.devinwang/app-store-connect-mcp do?

It lists 1,316 tools. In our AI model's reading of their descriptions (two runs had to agree, nobody checked it by hand), they include tools that read or search, create or change data, delete and send messages. We did not call any tool, so this describes the text, not the behaviour.

Can io.github.devinwang/app-store-connect-mcp change or delete data?

483 of its tools say in their description that they create, edit, delete, send or run something (our AI model's reading). We did not call any tool, so we cannot say what actually happens.

Does io.github.devinwang/app-store-connect-mcp publish a security policy?

Yes: its repository has a public security policy (github.com/devinwang/app-store-connect-mcp/blob/HEAD/docs/SECURITY.md). That is the publisher's statement, not permission for us to test the server, and we call none of its tools.

Is the listed version current?

Yes. The registry lists 0.5.0, the latest stable release on npm.

Where is the source code of io.github.devinwang/app-store-connect-mcp?

In github.com/devinwang/app-store-connect-mcp, which opens publicly.

Found this page useful?

Anonymous · no sign-in

A quick, anonymous reaction — no account, no email. One per kind from your browser. The tally updates when the page is next refreshed, and it is only a rough count, never a safety rating or a measured number of people.

Similar servers

Same topic · AI-read

Active servers whose topic is also “developer-tools” and that have at least one tool of the same kind; most kinds in common first, then most GitHub stars. The topic and the tool kinds are an AI model's reading of the publishers' descriptions, not checked by hand. Similar is not a recommendation.

Compare with another server

Side by side: registry entry, our read-only session, the tools and the 18 classification fields. Same values as each page; no score.

Security testing

What did we test, and what did we leave out?

18 checks · features #1, #2

Not probed (read-only run)

We started the package in an isolated sandbox and read what it declares, but this test round was read-only, so its tools were not called. No security score is given; a check we did not run is never counted as passed.

The 18 checks at a glanceour test · 2026-10-23
  1. Inventory: exercised
  2. Hidden instructions: exercised
  3. Real execution: not run · our policy
  4. Secret leak: not run · nothing to check it against
  5. Internal addresses: not run · our policy
  6. Unconfirmed changes: not run · our policy
  7. Bad input: not run · our policy
  8. Model requests: not run · nothing to check it against
  9. Sensitive questions: not run · nothing to check it against
  10. Folder boundary: not run · our policy
  11. Log leaks: not run · nothing to check it against
  12. Hidden content: not run · nothing to check it against
  13. Fake assistant turns: not applicable
  14. Token passthrough: not applicable
  15. Token audience: not applicable
  16. Sign-in redirect: not applicable
  17. Consent handling: not applicable
  18. Sign-in metadata: not applicable

2 exercised10 not run (reason given)6 not applicable

Each check ends in exactly one state: exercised, not run (with the reason), or not applicable (with the reason). 2 of the 12 checks that apply to it were exercised. We do not publish security-check outcomes for named servers.

Exercised · 2
  • 1Inventory
    tool-list
    Reads the declared tools, resources and prompts.exercised
  • 2Hidden instructions
    description-poisoning
    Looks for hidden instructions in tool descriptions.exercised
Not run, with the reason · 10
  • 3Real execution
    real-execution
    Calls a tool and checks what really happens.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 4Secret leak
    canary-leak
    Plants a fake secret and checks whether it leaks.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 5Internal addresses
    ssrf
    Checks whether a tool can be steered to internal addresses.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 6Unconfirmed changes
    write-without-confirmation
    Checks whether tools that change data act without asking.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 7Bad input
    error-handling
    Sends bad input and watches how the server answers.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 8Model requests
    sampling
    Checks whether the server asks the client's model to act for it.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 9Sensitive questions
    elicitation-sensitive-data
    Checks whether the server asks users for sensitive data.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 10Folder boundary
    root-boundary
    Checks whether the server reaches outside the folders it was given.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 11Log leaks
    logging-side-channel
    Checks whether log messages carry data they should not.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 12Hidden content
    audience-hiding
    Checks resources that hide content from the user.This check needs content the server returns, and nothing was read or called.not run · nothing to check it against
Does not apply to this server · 6
  • 13Fake assistant turns
    fake-assistant-turn
    Checks prompts that pose as the assistant's own words.The server exposes no prompts.not applicable
  • 14Token passthrough
    token-passthrough
    Checks whether the server forwards a user's token to other services.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
  • 15Token audience
    token-audience-validation
    Checks whether tokens meant for another service are accepted.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
  • 16Sign-in redirect
    open-redirect
    Checks the sign-in redirect for abuse.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
  • 17Consent handling
    confused-deputy
    Checks consent handling when one service acts for another.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
  • 18Sign-in metadata
    oauth-url-scheme
    Checks the published sign-in metadata for unsafe URLs.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable

Source: our own test in an isolated sandbox, 2026-10-23, mcp-runtime-engine@0.1.0. Which checks count and why follows our published scoring model.

What happened during the test?

Feature #8

The steps in order, as the test record holds them.

  1. 0 msStarted the published package in an isolated sandbox (read-only mode)
  2. 3,929 msConnected after 0 redirects.
  3. Read the inventory: 1,316 tools, 0 resources, 0 prompts.
  4. 14,697 msFinished: 2 checks exercised.

Reference

How is it classified?

18 fields

One value per field, each with its source. Fields written by AI models are marked. A field with no value says why.

TopicAI-classified
AI-classified · 2026-10-23
Pricing modelAI-classified
not checked
no website in the registry entry
Programming language
api.github.com · 2026-10-23
Hosting type
registry · 2026-10-23
MCP capability
tools
our test · 2026-10-23
Transport
standard input/output
registry · 2026-10-23
Required credentials
none declared
registry · no declaration is not a guarantee
Package registry
registry · 2026-10-23
Freshness
0–30 days
registry updatedAt · 2026-10-23
Lifecycle status
registry · 2026-10-23
License class
package registry · 2026-10-23
Integrity hash
declared (sri)
package registry · 2026-10-23
Signature / provenance
package registry · 2026-10-23
Dependency advisories
none known
npm audit · 2026-10-23
Popularity
1,610 downloads a month
package registry · 2026-10-23
Publisher signals
owner: a personal account · repository age: 181–365 days · stars: 0–9 · build record: signed and attested
api.github.com · 2026-10-23
Maintenance
api.github.com · 2026-10-23
Environment
your machine
where it runs, from the hosting type

“Not stated” means the source did not state it; “does not apply” means it does not apply to this kind of server; “our limit” means our own lookup failed. A linked value opens the directory filtered to the same value.

Cite or correct this page

Sources and corrections

Suggested citation

ProtocolProbe. “io.github.devinwang/app-store-connect-mcp: MCP server record.” Data checked 2026-10-23. https://protocolprobe.com/mcp/servers/io.github.devinwang/app-store-connect-mcp

Figures are valid for the date shown. Our facts on this page are CC BY 4.0: reuse them with a link and the check date. Quoted text (the publisher’s descriptions, website quotes, tool names) is not ours to license.

As JSON: this record in the API · API documentation.

Badge for your README

ProtocolProbe: 9 of 9 record checks met

[![ProtocolProbe](https://protocolprobe.com/api/v1/badge/io.github.devinwang/app-store-connect-mcp)](https://protocolprobe.com/mcp/servers/io.github.devinwang/app-store-connect-mcp)

It shows this server's record-check count: facts from public records, no tool called. It is not a security rating or a pass. It links here and updates after each data reload.

Something wrong, or is this yours?

If a fact here is wrong, tell us and we will re-check it. If you operate this server, you can run our checks on it yourself with the free self-test command; we call no server’s tools ourselves for anything shown here.

Write to hello@protocolprobe.com · corrections log · methodology