Endpoints: 28,729MCP servers: 18,414Payout addresses: 2,071Paid calls: 1,568Letters: 14Defects: 1,338counted 2 min ago
teppi

Server definition

Hash
sha256:37713cdac4855e76e167b1ce1fef8dccc18a4a3f446b10f60b905f8eb6caca04
What it is
What a remote MCP server returned when asked what it offers: 8 tools

The blob, as servednamed by its sha256

{ "instructions": "Demand Radar mines public App Store data for buildable opportunities. Typical flow: find_unmet_demand (or find_solo_buildable) -> get_opportunity_brief -> generate_app_brief. Tool names here are exactly the names tools/list returns.", "tools": [ { "description": "Explain the scoring formulas, weights, and the honest limitations of the data. Use when a user questions the numbers.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "explain_method", "outputSchema": null }, { "description": "Find opportunities a single developer can realistically build: clear winnability plus an explicit single-user, local or offline core. Use when solo feasibility is the primary constraint.", "inputSchema": { "properties": { "genre": { "description": "Restrict to one App Store category, e.g. Productivity.", "type": "string" }, "include_institutional": { "default": false, "description": "Include institution-locked products that a solo dev cannot win.", "type": "boolean" }, "limit": { "default": 10, "description": "Maximum number of results to return.", "maximum": 200, "type": "integer" }, "max_rating": { "description": "Only include apps at or below this average rating, e.g. 4.0.", "type": "number" }, "max_rating_count": { "default": 0, "description": "Optional ceiling to exclude unassailable giants.", "type": "integer" }, "min_rating_count": { "default": 5000, "description": "Rating volume is the install proxy. On /api/lens this remains a legacy alias for the scaled value; /api/hotspots uses it literally.", "type": "integer" }, "min_rating_count_scaled": { "default": 5000, "description": "Pre-scaled rating volume filter. /api/lens applies max(300, floor(value / 3)); /api/paying applies max(200, floor(value / 5)).", "type": "integer" }, "storefront": { "default": "us", "description": "Two-letter App Store region. The value is region identity, never a label.", "type": "string" } }, "required": [], "type": "object" }, "name": "find_solo_buildable", "outputSchema": null }, { "description": "Rank App Store opportunities in apps that already have a large user base but whose users are clearly unhappy (unmet demand). Returns a ranked table with tier, score, rating and scale. Use this first when deciding what app to build.", "inputSchema": { "properties": { "genre": { "description": "Restrict to one App Store category, e.g. Productivity.", "type": "string" }, "include_institutional": { "default": false, "description": "Include institution-locked products that a solo dev cannot win.", "type": "boolean" }, "limit": { "default": 10, "description": "Maximum number of results to return.", "maximum": 200, "type": "integer" }, "max_rating": { "description": "Only include apps at or below this average rating, e.g. 4.0.", "type": "number" }, "max_rating_count": { "default": 0, "description": "Optional ceiling to exclude unassailable giants.", "type": "integer" }, "min_rating_count": { "default": 5000, "description": "Rating volume is the install proxy. On /api/lens this remains a legacy alias for the scaled value; /api/hotspots uses it literally.", "type": "integer" }, "min_rating_count_scaled": { "default": 5000, "description": "Pre-scaled rating volume filter. /api/lens applies max(300, floor(value / 3)); /api/paying applies max(200, floor(value / 5)).", "type": "integer" }, "storefront": { "default": "us", "description": "Two-letter App Store region. The value is region identity, never a label.", "type": "string" } }, "required": [], "type": "object" }, "name": "find_unmet_demand", "outputSchema": null }, { "description": "Produce a ready-to-build product specification for an opportunity, formatted for a specific AI coding agent (codex, claude, or cursor). Includes the wedge, the verbatim complaints to fix, verified open-source accelerators, and a verification plan.", "inputSchema": { "properties": { "app_id": { "description": "App Store track id.", "type": "integer" }, "storefront": { "default": "us", "description": "Two-letter App Store region. The value is region identity, never a label.", "type": "string" }, "target": { "default": "codex", "description": "AI coding agent that will receive the brief.", "enum": [ "codex", "claude", "cursor" ], "type": "string" } }, "required": [ "app_id" ], "type": "object" }, "name": "generate_app_brief", "outputSchema": null }, { "description": "Full evidence dossier for one app: score breakdown, plain-language diagnosis, complaint themes with verbatim user quotes, review provenance, and matching open-source accelerators. Use after find_low_hanging_fruit to inspect a specific candidate.", "inputSchema": { "properties": { "app_id": { "description": "App Store track id.", "type": "integer" }, "include_github": { "default": true, "description": "MCP name for the REST with_github switch.", "type": "boolean" }, "storefront": { "default": "us", "description": "Two-letter App Store region. The value is region identity, never a label.", "type": "string" } }, "required": [ "app_id" ], "type": "object" }, "name": "get_opportunity_brief", "outputSchema": null }, { "description": "Report local data coverage (apps, reviews, chart snapshots) and the last ingest run.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "market_stats", "outputSchema": null }, { "description": "Find maintained, commercially reusable open-source projects for a niche, with license posture. Use to avoid rebuilding infrastructure and to check whether a dependency is safe to ship.", "inputSchema": { "properties": { "genre": { "description": "Restrict to one App Store category, e.g. Productivity.", "type": "string" }, "limit": { "default": 6, "description": "Maximum number of results to return.", "maximum": 200, "type": "integer" }, "theme": { "description": "Complaint theme key, e.g. data_loss_sync, paywall_aggressive, ai_quality.", "type": "string" } }, "required": [], "type": "object" }, "name": "search_open_source_accelerators", "outputSchema": null }, { "description": "Rank app categories by evidence that users already pay inside them: how many of its apps reach the store-wide Top-Grossing chart, how many charge upfront, paywall language in sampled reviews, and review depth. Call this before building to confirm a market monetises.", "inputSchema": { "properties": { "limit": { "default": 10, "description": "Maximum number of results to return.", "maximum": 200, "type": "integer" }, "min_rating_count": { "default": 5000, "description": "Rating volume is the install proxy. On /api/lens this remains a legacy alias for the scaled value; /api/hotspots uses it literally.", "type": "integer" }, "storefront": { "default": "us", "description": "Two-letter App Store region. The value is region identity, never a label.", "type": "string" } }, "required": [], "type": "object" }, "name": "validate_paying_market", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:37713cdac4855e76e167b1ce1fef8dccc18a4a3f446b10f60b905f8eb6caca04 | sha256sum