MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Code & DevOps

Apple Developer MCP by Nova (CIVAI)

Ship a new iOS app from chat. AI runs App Store Connect, builds, release, and submission through Ap…

Checks passed
10 / 22

4 failed · 8 not measured

Median response
987 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
55

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Outdated check

Last connection measurement is over 24 hours old. Current availability is unknown.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
130
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 987 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name Apple Developer MCP by Nova (CIVAI).

  • Pass
    Lists tools

    tools/list returned 55 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 987 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 987 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Fail
    Tools described

    1 tools have a description shorter than 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    86 of 218 parameters have a description (39%). The bar is 80%.

  • Fail
    Safety hints

    55 tools set neither readOnlyHint nor destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-02T09:02:20.088055Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using Apple Developer MCP by Nova (CIVAI)

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http apple-developer-mcp-by-nova-civai https://nova.civai.co/mcp/agents/mcp-apple_developer

Capabilities

Tools 55

attach_build_and_compliance

After Expo/CI has uploaded the .ipa to ASC: list builds for asc_app_id, wait until processing is VALID, attach build_id to app_store_version_id, set export compliance (uses_non_exempt_encryption usually false).

Discovered
attach_review_item

Attach an app store version or build item to an existing review submission by review_submission_id. Use after create_review_submission when building a submission manually.

Discovered
create_app

Create App Store Connect app

Discovered
create_app_bundle

Create ASC app bundle (may 403 if tenant allows GET only).

Discovered
create_asc_api_key

Create an App Store Connect API team key. Optionally downloads the one-time .p8 private key PEM (treat like a password; never commit).

Discovered
create_bundle_id

Register a new bundle ID on developer.apple.com (requires Developer Identifiers session from start_browser_auth).

Discovered
create_review_submission

Create a new, empty review submission (READY_FOR_REVIEW) for an app so a version/build can be attached before submit. Use press_submit_for_review instead if you just want to submit the current version in one step.

Discovered
delete_bundle_id

Remove a bundle ID from developer.apple.com (requires Developer Identifiers session from start_browser_auth).

Discovered
delete_orphan_review_submissions

Delete empty READY_FOR_REVIEW review submission drafts (zero items) for an app. Use dry_run=true to list orphans only. Clears slots before press_submit_for_review.

Discovered
delete_screenshots

Delete screenshots for targeted iPhone display types (e.g. APP_IPHONE_61 only). Use dry_run=true to list without DELETE. Requires localization_id from get_app_store_version.

Discovered
distribute_build_to_testflight

Add a VALID build to TestFlight internal or external beta group. For internal, also pass tester_emails (ASC team addresses) or call invite_testflight_testers testing_scope=internal — otherwise ASC shows 0 Testers and TestFlight stays empty.

Discovered
download_asc_api_key

Download the one-time .p8 private key for an existing API key when canDownload is still true.

Discovered
get_account_compliance_status

Business portal links for Agreements/Tax/Banking plus price schedule hints (contracts are human-signed).

Discovered
get_app

Get one app's details (name, bundle id, SKU) by asc_app_id. Use to confirm the right app before making changes to it.

Discovered
get_app_store_version

GET iOS appStoreVersions for asc_app_id

Discovered
get_build

Get one build's processing state and metadata by build_id. Use before attach_build_and_compliance to confirm the build finished processing.

Discovered
get_bundle_id

Get details for one existing bundle ID by its ASC resource id. Use after list_bundle_ids to confirm platform and capabilities before create_app.

Discovered
get_pre_submit_status

Read-only checklist before Submit for Review (build, privacy, category, copyright). Includes orphan_review_submission_ids for empty drafts.

Discovered
get_review_path

Get the Resolution Center and App Review URLs for an app, for messages Apple has not exposed via list_review_messages. Use when an operator needs to open the review thread directly in a browser.

Discovered
get_review_submission

Get the status and attached items of one review submission by review_submission_id. Use to check progress after create_review_submission.

Discovered
get_testflight_public_link

Create or reuse an external TestFlight group, attach a processed build, enable the public join link, and return https://testflight.apple.com/join/… Requires asc_session_cookie (session_status OK). First external build may need Beta App Review before the link works for everyone.

Discovered
invite_asc_team_member

Invite a user to your App Store Connect team (email invitation, 3-day expiry). Required for internal TestFlight when they are not already a team user. Does not replace invite_testflight_testers (external beta emails).

Discovered
invite_testflight_testers

Add testers to a TestFlight beta group by email. testing_scope=internal: ASC team emails for Internal Testing group (required before TestFlight app shows the build). testing_scope=external: external group email invites.

Discovered
list_app_bundles

List ASC app bundles (iris GET /appBundles).

Discovered
list_app_media_sets

List existing screenshot and app preview sets for an app store version localization (read-only). Use before upload_screenshot to see which display sizes already have assets.

Discovered
list_apps

List apps visible to the current App Store Connect session. Use to find an existing asc_app_id before create_app or any per-app tool.

Discovered
list_asc_api_keys

List App Store Connect API team keys and the team issuer id (for EAS / CI). Does not return private keys.

Discovered
list_asc_team_members

List active App Store Connect team members and pending email invitations, returning only each person's identifier (email/username) and roles. Use before internal TestFlight distribution to confirm someone is on the team and has a TestFlight-eligible role.

Discovered
list_builds

List ASC builds for asc_app_id (newest first). Use before attach if operator names a build number.

Discovered
list_bundle_ids

List bundle IDs registered on developer.apple.com for the current team. Use to find an existing bundle_id before create_bundle_id or get_bundle_id.

Discovered
list_review_messages

Resolution Center threads and App Review messages for asc_app_id. Empty threads until Apple opens a rejection/message thread.

Discovered
login

After operator completes Apple IDMSA in a browser, verify Developer portal session (checkPermissions).

Discovered
press_submit_for_review

Build already on version: create review submission and PATCH submitted=true. Requires confirm_submit_for_review=true.

Discovered
probe_update_version_localization

PATCH app store version localization promotional text (requires asc_app_id / localization_id on tenant).

Discovered
revoke_asc_api_key

Permanently revoke an App Store Connect API team key (cannot be undone).

Discovered
session_status

ASC session check

Discovered
set_age_rating

Set the app's age rating questionnaire answers (content descriptors) required before submit. Use once per app, or when content descriptors change.

Discovered
set_app_privacy

Set App Privacy data-collection declarations (iris appDataUsages): pass app_privacy_profile=contact or analytics for the built-in presets, or app_privacy_profile=custom with an inline declarations JSON array when the presets don't match what the app actually collects. See SKILLS.md App Privacy section for the preset definitions.

Discovered
set_app_store_metadata

Set primary App Store category, version copyright, and third-party content rights declaration.

Discovered
set_export_compliance

PATCH build export encryption flag

Discovered
set_pricing_and_availability

Set or read USA base price tier (0 free, 1+ paid). Paid apps still need Agreements/Tax/Banking in ASC Business.

Discovered
set_version_build

Set which build is attached to an app store version without also running export-compliance or wait-for-processing steps. Use attach_build_and_compliance instead when the build may still be processing.

Discovered
start_browser_auth

Open App Store Connect sign-in only when needed. If the saved session is still valid, this tool returns success immediately and does not open the viewer. Call session_status first. Use force_reconnect only when the user explicitly wants to wipe the saved cookie and sign in again (destructive).

Discovered
submit_build_and_press_submit

Upload done: attach latest/build number/build_id to current version, then press Submit for Review in ASC via API.

Discovered
submit_build_for_review

Operator uploaded a new build: attach latest, build_number (ASC build version), or build_id to the current store version; optionally submit for review when confirm_submit_for_review=true.

Discovered
submit_for_review

Press Submit for Review, restricted to apps on the probe/disposable allowlist (checked server-side) and gated behind confirm_probe_submit=true. For regular apps use press_submit_for_review or submit_build_and_press_submit instead; this tool exists only for automated testing against throwaway apps.

Discovered
submit_testflight_beta_review

Submit a processed build for TestFlight external Beta App Review (iris betaAppReviewSubmissions). Not App Store press_submit_for_review. Fills beta app description, what to test, contact, and privacy URL when provided. Poll get_testflight_public_link until accepting_public_testers is true before sharing the join URL.

Discovered
update_app

Update an existing app's name, primary locale, or bundle id (PATCH apps). Use when correcting app-level metadata after create_app.

Discovered
update_app_info_localization

Update the localized app name, subtitle, and privacy policy URL for one locale (PATCH app info localization). Use for text shown on the App Store listing page, not screenshots.

Discovered
update_app_review_information

Create or update App Store review contact and demo sign-in for the current version (iris appStoreReviewDetail). Required before press_submit_for_review for login apps.

Discovered
update_version_localization

Update the current app store version's description, keywords, promotional text, what's new, support URL, or marketing URL for one localization (PATCH app store version localization). Use for App Store listing copy tied to a specific version, not app-level info (see update_app_info_localization).

Discovered
upload_build

Upload a .ipa to App Store Connect via Transporter on the replay host. For CI/Expo-built apps, upload the .ipa through Expo or your CI pipeline directly and skip this tool — it exists only for builds that must be uploaded from the replay host itself. Supply ipa_url (https) or the host-local ipa_path.

Discovered
upload_screenshot

Upload one App Store screenshot into a single carousel slot via the screenshot bytes (screenshot_image_base64) or a URL to fetch them from (screenshot_image_url). Call once per slide (default size APP_IPHONE_65 / 6.5″); screenshot_file_path only works when the file already exists on the replay host's filesystem.

Discovered
upload_screenshots

Upload one App Store screenshot for a single iPhone display size from a master image that this tool auto-resizes. Pass screenshot_image_base64 or screenshot_image_url when the image bytes or a fetchable URL are available; use screenshot_display_types to pick exactly one display size per call, and call again for additional sizes.

Discovered
wait_build_processed

Poll until build processing VALID

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected987 ms55