mcpField
A
asc-customer-reviews

asc-customer-reviews

github.com/tddworksMarketing & growth583 installsUpdated 5w ago
Repository

About asc-customer-reviews

asc-customer-reviews is a CLI skill for reading App Store customer reviews and managing developer responses. It supports listing and retrieving reviews, submitting replies, and deleting replies, with suggested follow-up commands in JSON output.

Key features

  1. 01List reviews by app
  2. 02Retrieve individual reviews
  3. 03Create review responses
  4. 04Delete existing responses
  5. 05JSON, table, and Markdown output

Use cases

  1. 01Reviewing recent customer feedback
  2. 02Replying to App Store reviews
  3. 03Replacing a submitted response
  4. 04Inspecting review data by territory

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/tddworks/asc-cli-skills --skill asc-customer-reviews

After installing, type/asc-customer-reviewsin Claude Code to confirm it loaded.

Details

From the project README

Customer Reviews & Review Responses with asc

Read customer reviews left on your App Store listing and manage developer responses — reply to feedback, revise responses, or delete them.

Authentication

Set up credentials before any review commands:

asc auth login --key-id <id> --issuer-id <id> --private-key-path ~/.asc/AuthKey.p8

CAEOAS — Affordances Guide Next Steps

Every JSON response includes "affordances" with ready-to-run commands:

CustomerReview affordances:

{
  "id": "rev-001",
  "appId": "123456789",
  "rating": 5,
  "title": "Great app!",
  "body": "Love using this app every day.",
  "reviewerNickname": "user123",
  "territory": "USA",
  "affordances": {
    "getResponse": "asc review-responses get --review-id rev-001",
    "respond": "asc review-responses create --review-id rev-001 --response-body \"\"",
    "listReviews": "asc reviews list --app-id 123456789"
  }
}

CustomerReviewResponse affordances:

{
  "id": "resp-001",
  "reviewId": "rev-001",
  "responseBody": "Thank you for your feedback!",
  "state": "PUBLISHED",
  "affordances": {
    "delete": "asc review-responses delete --response-id resp-001",
    "getReview": "asc reviews get --review-id rev-001"
  }
}

Copy affordance commands directly — no need to look up IDs.

Resolve App ID

See project-context.md — check .asc/project.json before asking the user or running asc apps list.

Commands

reviews list — list all reviews for an app
asc reviews list --app-id <APP_ID> [--pretty] [--output table|markdown]

Returns reviews sorted by most recent first. Fields: id, appId, rating (1-5), title?, body?, reviewerNickname?, createdDate?, territory? (ISO 3166-1 alpha-3 code like "USA", "GBR").

Nil optional fields are omitted from JSON output.

reviews get — get a single review
asc reviews get --review-id <REVIEW_ID> [--pretty]

Note: appId will be empty ("") because the single-GET API endpoint doesn't return the parent app ID.

review-responses get — get the response to a review
asc review-responses get --review-id <REVIEW_ID> [--pretty]

Uses the review ID (not the response ID) to fetch the linked response.

review-responses create — respond to a review
asc review-responses create --review-id <REVIEW_ID> --response-body "Thank you for your feedback!"

New responses start in PENDING_PUBLISH state — they go live within ~24 hours.

review-responses delete — delete a response
asc review-responses delete --response-id <RESPONSE_ID>

To revise a response, delete the existing one and create a new one.

Typical Workflow

APP_ID=$(cat .asc/project.json 2>/dev/null | jq -r '.appId // empty')
# If empty: ask user or run `asc apps list | jq -r '.data[0].id'`

# 1. List reviews for the app
asc reviews list --app-id "$APP_ID" --output table

# 2. Read a specific review in detail
asc reviews get --review-id rev-001 --pretty

# 3. Check if there is already a response
asc review-responses get --review-id rev-001

# 4. Respond to the review
asc review-responses create \
  --review-id rev-001 \
  --response-body "Thank you! We fixed the crash in v2.1."

# 5. To revise, delete and recreate
asc review-responses delete --response-id resp-001
asc review-responses create \
  --review-id rev-001 \
  --response-body "Updated response with more detail."

Response State

StateMeaning
PUBLISHEDResponse is live on the App Store
PENDING_PUBLISHResponse submitted, awaiting publication (up to 24 hours)

Semantic booleans: isPublished, isPending.

Output Flags

--pretty          # Pretty-print JSON
--output table    # Table format
--output markdown # Markdown table

Comments

Markdown supported