Mcp Appstore Reviews — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Appstore Reviews (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A small, reviews-only MCP server for the Apple App Store, backed by the App Store Connect API. It lets an agent read customer reviews and publish or delete developer responses — and deliberately nothing else.
The capability boundary is the trust guarantee. This server exposes only the three review tools below. There is intentionally no build, release, submission, pricing, in-app-purchase, certificate, profile, or beta-tester tool, so the App Store Connect key you give it can't be used to do any of those things. Scope the key itself narrowly too (the Customer Support role is enough).
It is also dependency-free — pure Node 18+ (fetch + built-in crypto), no third-party packages — so there is no supply chain to audit beyond this one file (index.mjs).
| Tool | Description |
|---|---|
list_reviews | List reviews for an app (newest first by default), including any existing developer response and its id. Filters: territory, rating, sort (recent/favorable/critical), limit. |
respond_to_review | Publish a developer response to a review (reviewId, responseBody). |
delete_review_response | Delete a developer response by its responseId (from list_reviews). |
Create an App Store Connect API key (Users and Access → Integrations → App Store Connect API). Two kinds of key work:
without Admin's broader powers), but only an Admin can generate it. Supply the Issuer ID along with the Key ID and .p8.
inherits that user's permissions. It has no Issuer ID: leave APP_STORE_CONNECT_ISSUER_ID unset and supply just the Key ID and .p8.
Then provide:
| Env var | What |
|---|---|
APP_STORE_CONNECT_ISSUER_ID | Issuer ID shown at the top of the Integrations page — team keys only; omit for individual keys |
APP_STORE_CONNECT_KEY_ID | Key ID of the API key |
APP_STORE_CONNECT_PRIVATE_KEY_PATH | Path to the downloaded .p8 private key file |
The private key is read only to sign a short-lived ES256 JWT for Apple; it is never logged, copied, or sent anywhere but Apple's API.
# stdio MCP server
APP_STORE_CONNECT_ISSUER_ID=... \
APP_STORE_CONNECT_KEY_ID=... \
APP_STORE_CONNECT_PRIVATE_KEY_PATH=/path/to/AuthKey_XXXX.p8 \
npx -y github:ForgeHQ-Agents/mcp-appstore-reviewsThe agent passes the app's numeric App Store ID as appId (find it in App Store Connect → your app → App Information, or in the app's App Store URL).
npm test # node --test, zero dependenciesMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.