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 yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:37713cdac4855e76e167b1ce1fef8dccc18a4a3f446b10f60b905f8eb6caca04 | sha256sum