App Pain API

What users hate about ANY iOS/Android app: clustered complaints, evidence, trends. No key needed.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
99%
命名品質
97%
汙染風險
80%
權限相符程度
100%
協定合規性
100%

發現項目(2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded string在 get_app_reviews 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,761Token(工具定義)
~1.8 KB典型回應大小
中等的注意力影響(128k 上下文的 1.38%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "app-pain-api": {
      "url": "https://app-pain-api.quiet-delta.workers.dev/mcp"
    }
  }
}

遠端端點

https://app-pain-api.quiet-delta.workers.dev/mcpstreamable-http

它能做什麼

工具清單

工具(7)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢search_apps(q, store, country, limit)

Search the iOS App Store and Google Play (both merged by default) to find apps and their ids. Use this FIRST when you only know an app name or a category.

輸入結構描述

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "search query, e.g. \"habit tracker\" or \"notion\""
    },
    "store": {
      "type": "string",
      "enum": [
        "ios",
        "android"
      ],
      "description": "limit to one store (default: both merged)"
    },
    "country": {
      "type": "string",
      "description": "ISO country code, default \"us\""
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 30,
      "description": "max results per store, default 10"
    }
  },
  "required": [
    "q"
  ]
}
🟢mine_app_pain_points(appId, store, reviews, maxRating, model, ...)

THE core tool: fetch recent reviews of any iOS/Android app, keep the negative ones, and cluster them into ranked pain points (title, sharePercent, severity 1-5, verbatim evidence quotes). Ideal for competitive research and product discovery. Cached 7 days (instant on repeat); a COLD server-side analysis takes 30-120s. If the result has "mode":"agent", it contains prepared negative reviews and "instructions" — do the clustering yourself and present it to the user.

輸入結構描述

{
  "type": "object",
  "properties": {
    "appId": {
      "type": "string",
      "description": "App Store or Google Play URL, iOS numeric id (e.g. 324684580) or Android package (e.g. com.spotify.music) — get ids from search_apps"
    },
    "store": {
      "type": "string",
      "enum": [
        "ios",
        "android"
      ],
      "description": "optional — inferred from appId (numeric id / App Store URL → ios, package / Play URL → android)"
    },
    "reviews": {
      "type": "integer",
      "enum": [
        100,
        300,
        500
      ],
      "description": "reviews to analyze, default 300 (other values round up to these tiers; iOS depth is ~50 due to Apple edge limits)"
    },
    "maxRating": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5,
      "description": "ratings <= this count as negative, default 3"
    },
    "model": {
      "type": "string",
      "enum": [
        "glm-5.3-flash"
      ],
      "description": "premium refinement model (paid keys only). Omit for the free default."
    },
    "analyze": {
      "type": "string",
      "enum": [
        "auto",
        "server",
        "agent"
      ],
      "description": "who clusters on a cold run: \"server\" = our model; \"agent\" = you get the prepared negative reviews + instructions and cluster them with your own model; \"auto\" (default) = server, switching to agent when the server-side allowance is used up"
    },
    "country": {
      "type": "string",
      "description": "ISO country code, default \"us\""
    }
  },
  "required": [
    "appId"
  ]
}
🟢get_pain_trend(appId, store, from, to)

How an app's pain points changed over time: compares two archived analyses and labels each theme new / resolved / rising / falling / stable with share deltas (percentage points). Instant (archive read, no LLM). Default: latest vs ~30 days earlier. Returns a note when the app has fewer than two snapshots yet.

輸入結構描述

{
  "type": "object",
  "properties": {
    "appId": {
      "type": "string",
      "description": "App Store or Google Play URL, iOS numeric id (e.g. 324684580) or Android package (e.g. com.spotify.music) — get ids from search_apps"
    },
    "store": {
      "type": "string",
      "enum": [
        "ios",
        "android"
      ],
      "description": "optional — inferred from appId (numeric id / App Store URL → ios, package / Play URL → android)"
    },
    "from": {
      "type": "string",
      "description": "baseline date YYYY-MM-DD (optional)"
    },
    "to": {
      "type": "string",
      "description": "comparison date YYYY-MM-DD (optional, default newest)"
    }
  },
  "required": [
    "appId"
  ]
}
🟢get_app_details(appId, store, country)

App metadata: name, developer, category, price, average rating, rating count and 1-5★ histogram (when available).

輸入結構描述

{
  "type": "object",
  "properties": {
    "appId": {
      "type": "string",
      "description": "App Store or Google Play URL, iOS numeric id (e.g. 324684580) or Android package (e.g. com.spotify.music) — get ids from search_apps"
    },
    "store": {
      "type": "string",
      "enum": [
        "ios",
        "android"
      ],
      "description": "optional — inferred from appId (numeric id / App Store URL → ios, package / Play URL → android)"
    },
    "country": {
      "type": "string",
      "description": "ISO country code, default \"us\""
    }
  },
  "required": [
    "appId"
  ]
}
🟢get_version_history(appId, store, country)

Per-version review stats (review count, average rating, first/last seen) — spot a rating crash right after a bad release. Android: aggregated from recent reviews. iOS: current version + release notes.

輸入結構描述

{
  "type": "object",
  "properties": {
    "appId": {
      "type": "string",
      "description": "App Store or Google Play URL, iOS numeric id (e.g. 324684580) or Android package (e.g. com.spotify.music) — get ids from search_apps"
    },
    "store": {
      "type": "string",
      "enum": [
        "ios",
        "android"
      ],
      "description": "optional — inferred from appId (numeric id / App Store URL → ios, package / Play URL → android)"
    },
    "country": {
      "type": "string",
      "description": "ISO country code, default \"us\""
    }
  },
  "required": [
    "appId"
  ]
}
🔴watch_competitors(action, appId, store, webhookUrl)

Continuous competitor monitoring (paid plans: Starter 2 apps weekly, Pro 15 apps daily). Manage the watchlist and the alert destination; digests of NEW 1-2★ reviews and NEW/RISING pain points are pushed to a Slack / Discord / any https webhook. action: list | add | remove | set_webhook | test.

輸入結構描述

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "list",
        "add",
        "remove",
        "set_webhook",
        "test"
      ]
    },
    "appId": {
      "type": "string",
      "description": "for add/remove: store URL, iOS id or Android package"
    },
    "store": {
      "type": "string",
      "enum": [
        "ios",
        "android"
      ],
      "description": "optional — inferred from appId (numeric id / App Store URL → ios, package / Play URL → android)"
    },
    "webhookUrl": {
      "type": "string",
      "description": "for set_webhook (or add): https URL, e.g. a Slack incoming webhook or Discord channel webhook"
    }
  },
  "required": [
    "action"
  ]
}
🟢get_app_reviews(appId, store, page, sort, country)

Fetch raw app reviews (unified schema across stores: rating/title/body/version/date/devReply/thumbsUp), 50 per page. Use for drill-down after mine_app_pain_points.

輸入結構描述

{
  "type": "object",
  "properties": {
    "appId": {
      "type": "string",
      "description": "App Store or Google Play URL, iOS numeric id (e.g. 324684580) or Android package (e.g. com.spotify.music) — get ids from search_apps"
    },
    "store": {
      "type": "string",
      "enum": [
        "ios",
        "android"
      ],
      "description": "optional — inferred from appId (numeric id / App Store URL → ios, package / Play URL → android)"
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "page number, default 1 (50/page)"
    },
    "sort": {
      "type": "string",
      "enum": [
        "recent",
        "helpful"
      ],
      "description": "default recent (Android only; iOS uses the store default order)"
    },
    "country": {
      "type": "string",
      "description": "ISO country code, default \"us\""
    }
  },
  "required": [
    "appId"
  ]
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本7 個工具