{"name":"io.github.airowe/shipaso","slug":"airowe-shipaso","title":"ShipASO","description":"Audit any App Store or Google Play listing: measured ranks, keyword gaps, draft copy. Read-only.","url":"https://mcp.market/server/airowe-shipaso","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"ecommerce","tags":["ecommerce","seo"],"presence":{"score":26,"stars":1,"forks":2,"downloads_week":null,"last_push_at":"2026-09-09T12:59:18.000Z","license":"MIT"},"uptime":{"percent":100,"checks":4,"ok":4,"last_checked_at":"2026-09-20T10:30:50.911Z","last_ok_at":"2026-09-20T10:30:50.911Z","latency_ms":314},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/airowe/store-ops","website":"https://shipaso.com","version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://api.shipaso.com/mcp","headers":[{"description":"Optional. `Bearer <shipaso_ key>` unlocks the keyed tools; omit it for the public tier (preview_app, proof). Keys are minted free at app.shipaso.com → Settings → Agent access.","isSecret":true,"name":"Authorization"}]}],"packages":[],"tools":[{"name":"audit_app","description":"Read-only listing audit: prioritized findings (severity + impact) plus a summary, derived from the live public listing. Read-only — never edits or pushes.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"App name, App Store URL, numeric id, or bundle id"},"bundleId":{"type":"string","description":"Exact bundle id (skips resolution)"},"country":{"type":"string","minLength":2,"maxLength":2,"description":"ISO country storefront, e.g. US"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"audit_play_app","description":"Read-only GOOGLE PLAY listing audit: screenshot grade, the 30/80/4000 title/short/long-description budget, target-term coverage in the long description (Play's keyword surface), a keyword-stuffing guard, prioritized findings + summary, and capability locks for surfaces a public read can't see. Takes a Play package id (com.foo.bar) or a play.google.com URL — NOT a free-text name (Play has no public name search). Play has NO keyword field. Reads public Play data only; never edits or pushes.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Google Play package id (com.foo.bar) or a play.google.com app URL"},"packageName":{"type":"string","description":"Exact Play package id (skips resolution)"},"country":{"type":"string","minLength":2,"maxLength":2,"description":"ISO country storefront, e.g. US"},"targets":{"type":"array","items":{"type":"string"},"description":"Target search terms to measure long-description coverage for"},"brand":{"type":"string","description":"App brand name, so brand-burn in the short description is flagged"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"audit_play_app_owner","description":"Read-only audit of YOUR OWN Google Play app via the official Play Developer API — full fidelity including the short description (which the public page can't show), with NO capability locks. Requires a configured Play service account (GOOGLE_PLAY_SERVICE_ACCOUNT). Reads only — it opens and DISCARDS a Play 'edit' and NEVER commits, so it can't publish. Owner-only; for a competitor use audit_play_app.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"packageName":{"type":"string","description":"Your app's Play package id, e.g. com.foo.bar"},"language":{"type":"string","description":"BCP-47 listing language, e.g. en-US"},"targets":{"type":"array","items":{"type":"string"},"description":"Target search terms to measure long-description coverage for"},"brand":{"type":"string","description":"App brand name, so short-description brand-burn is flagged"}},"required":["packageName"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"competitor_watch","description":"Read-only competitor diff: resolves the named competitors and reports their current listings, what changed vs. the last seen state, and a digest line. Read-only metadata comparison; no ranking-algorithm data is invented.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"App name, App Store URL, numeric id, or bundle id"},"bundleId":{"type":"string","description":"Exact bundle id (skips resolution)"},"country":{"type":"string","minLength":2,"maxLength":2,"description":"ISO country storefront, e.g. US"},"competitors":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Competitor app names or bundle ids to compare against"}},"required":["competitors"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"keyword_gaps","description":"Read-only keyword opportunities: terms tracked competitors VISIBLY use that this app doesn't target and doesn't rank top-50 for, sorted by winnability. Inferred from competitor name/subtitle only — never their ranking algorithm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"App name, App Store URL, numeric id, or bundle id"},"bundleId":{"type":"string","description":"Exact bundle id (skips resolution)"},"country":{"type":"string","minLength":2,"maxLength":2,"description":"ISO country storefront, e.g. US"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"localization_gaps","description":"Read-only localization expansion recommendations (ROI-sorted locales to add) for one of YOUR connected apps, from its most recent App Store Connect run. A static, bundled heuristic over the locales already read — no live install data is fabricated. Empty until you've run an ASC-connected pass.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"appId":{"type":"string","description":"Id of a connected app you own"}},"required":["appId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"preview_app","description":"Read-only ASO snapshot of any App Store app (grade, lead rank, top-10 count, sample). No account or store push — the optimized copy + push commands stay behind the human-approved loop. Works without a key.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"App name, App Store URL, numeric id, or bundle id"},"bundleId":{"type":"string","description":"Exact bundle id (skips resolution)"},"country":{"type":"string","minLength":2,"maxLength":2,"description":"ISO country storefront, e.g. US"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"proof","description":"Read-only, anonymized aggregate proof across all tracked apps (real rank-win numbers — no app names, no user data). This is the 'prove the rank moved' surface that closes the prepare → approve → push → prove loop. Works without a key.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"propose_copy","description":"Returns a DRAFT optimized listing (name/subtitle/keywords/description) with validation for any app. THIS IS A DRAFT ONLY: it does NOT persist a proposal and does NOT push to the App Store. Publishing stays a human-approved action in ShipASO — an agent can draft and read; only a human approves and pushes.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"App name, App Store URL, numeric id, or bundle id"},"bundleId":{"type":"string","description":"Exact bundle id (skips resolution)"},"country":{"type":"string","minLength":2,"maxLength":2,"description":"ISO country storefront, e.g. US"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"rank_check","description":"Read-only organic rank check across the app's target keywords, plus winnability-ranked opportunities computed from those measured positions. Positions are live-measured, never fabricated.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"App name, App Store URL, numeric id, or bundle id"},"bundleId":{"type":"string","description":"Exact bundle id (skips resolution)"},"country":{"type":"string","minLength":2,"maxLength":2,"description":"ISO country storefront, e.g. US"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"screenshot_coverage","description":"Read-only screenshot scoring for the app's live store gallery (count, score, grade, levers to improve). Read-only — never uploads or pushes assets.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"App name, App Store URL, numeric id, or bundle id"},"bundleId":{"type":"string","description":"Exact bundle id (skips resolution)"},"country":{"type":"string","minLength":2,"maxLength":2,"description":"ISO country storefront, e.g. US"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"war_room","description":"Read-only head-to-head rank war room for one of YOUR connected apps: your tracked-keyword rank history vs. live competitor positions on those same keywords. Reads stored data + live competitor ranks; writes nothing.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"appId":{"type":"string","description":"Id of a connected app you own"},"competitors":{"type":"array","items":{"type":"string"},"description":"Competitor names to compare (max 4)"}},"required":["appId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-20T11:38:02.623Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T11:38:02.579Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 881ms"]},"poisoning":{"score":15,"max":15,"notes":["12 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 11 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://api.shipaso.com/mcp","reachable":true,"authRequired":false,"latencyMs":881,"serverInfo":{"name":"shipaso","version":"0.1.0"}}],"packages":[],"repo":{"found":true,"owner":"airowe","repo":"store-ops","archived":false,"pushedAt":"2026-09-09T12:59:18Z","stars":1,"forks":2,"openIssues":13,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/52685?v=4","ownerCreatedAt":"2009-02-08T01:13:28Z","license":"MIT"},"icon":{"url":"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='7' fill='%230b0e14'/%3E%3Cg fill='%2334d399'%3E%3Cpath d='M16 6 L8.5 17 h15 Z'/%3E%3Cpath d='M5.5 19 h21 l-3 5 H8.5 Z'/%3E%3C/g%3E%3Cline x1='16' y1='8' x2='16' y2='17' stroke='%230b0e14' stroke-width='1.5'/%3E%3C/svg%3E","source":"site"},"presence":{"stars":1,"forks":2,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-09T12:59:18.000Z","score":26}}}},"grade_history":[],"reviews":[]}