A side-by-side look at the Prepublish MCP and Storelift MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Prepublish MCP for marketing work as a local process; choose Storelift for marketing as a local process. You can also run both side by side in one mcpServers block.
audit_script, get_audit, audit_hook.STORELIFT_API_KEY, STORELIFT_API.list_apps, get_keywords, get_rivals.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Marketing | Marketing |
| Quality signal | 57/100 · Good | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | STORELIFT_API_KEYSTORELIFT_API |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 1 |
| Directory activity | 0 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 6 | 8 |
| Full listing | View Prepublish MCP | View Storelift |
audit_scriptFull audit of a finished draft: hook, structure and pacing scores, an attention-risk map naming the passages most likely to lose viewers, and a rewrite. Returns the analysis and its idget_auditCollect an earlier audit by `analysis_idaudit_hookPer-sentence attention pull across the opening, curiosity gap, payoff distance, a grade, and rewritten alternativescheck_authenticityReused, templated or mass-produced content risk, with the quotes that fired each signalpolicy_preflightWhich YouTube policy families a script touches, each citing YouTube's own pagescript_runtimeWords to runtime and runtime to a word budget, at 160, 181 and 201 words per minute measured across 349 videoslist_appsList the apps tracked in this Storelift account (id, name, countries, keywords). Call this first — every other tool needs an appId from here.get_keywordsKeyword ranks for one app in one App Store / Google Play country. THREE STATES ARE DISTINCT: measured=false means the query could not be measured, rank=null means it was measured but the app is absent from the top results, rank=<number> is the rank. Never collapse them into one — counting an unmeasured day as zero produces a false answer.get_rivalsApps that rank ABOVE this app in search. For each rival you get the keywords it beats you on, its rank there (theirRank) and yours (ourRank) — ourRank null means the app does not appear for that keyword at all.get_ai_visibilityWhether AI assistants name this app when asked natural questions about its category — reported per engine (Claude / ChatGPT / Gemini), never averaged. This is an OBSERVATION, not a ranking: a model's knowledge is frozen at a date and the answer is not identical every time, so read the trend rather than a single measurement.get_historyKeyword rank history for one country. Series points are [day, rank]; a null rank means the app was absent from the top results that day, which is not the same as a bad rank.get_store_pageThe app's own store listing signals for one country: name, subtitle, version, in-app events, editorial placements, similar-apps shelves and the screenshot set (iOS), plus the Google Play page (exact install count, rating histogram, ad/IAP flags, chart badge). `timeline` lists the dated changes we detected on the listing — the cheapest explanation for a rank move. measured=false means the page was never read; it is not the same as an empty page.get_reviewsRecent reviews for one country: `list` is the App Store feed, `android` the Google Play page (a narrower window, and Play publishes no review title or version). `newCount` is how many arrived since the previous measurement — null means an older record where the field was never written, which is not zero. android=null means Play was never measured; an empty list means there genuinely are no reviews.get_chartsApp Store chart position for one country: current ranks per list (free / paid / grossing, overall and in category) plus their history. Google Play is absent on purpose — Google publishes no chart list, so there is nothing to read, and a number here would be invented.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"prepublish-prepublish-mcp": {
"command": "npx",
"args": [
"-y",
"prepublish-mcp"
]
}
}
}
{
"mcpServers": {
"storelift": {
"command": "npx",
"args": [
"-y",
"storelift-mcp"
],
"env": {
"STORELIFT_API_KEY": "YOUR_STORELIFT_API_KEY_HERE",
"STORELIFT_API": "YOUR_STORELIFT_API_HERE"
}
}
}
}