minradar

App Store opportunity data for coding agents: unmet demand, paying markets, build briefs.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
94%
Integridad del esquema
77%
Calidad de los nombres
93%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (2)

  • LOWTool 'explain_method' description lacks action verben explain_method
  • LOWTool 'search_open_source_accelerators' name length outside 3-30 rangeen search_open_source_accelerators

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,385Tokens (definiciones de herramientas)
~1.5 KBTamaño de respuesta típico
Impacto moderado en la atención (1.08% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "minradar": {
      "url": "https://minradar.com/mcp"
    }
  }
}

Puntos de conexión remotos

https://minradar.com/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (8)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢find_unmet_demand(storefront, limit, min_rating_count, min_rating_count_scaled, max_rating_count, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "storefront": {
      "type": "string",
      "default": "us",
      "description": "Two-letter App Store region. The value is region identity, never a label."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 200,
      "description": "Maximum number of results to return."
    },
    "min_rating_count": {
      "type": "integer",
      "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."
    },
    "min_rating_count_scaled": {
      "type": "integer",
      "default": 5000,
      "description": "Pre-scaled rating volume filter. /api/lens applies max(300, floor(value / 3)); /api/paying applies max(200, floor(value / 5))."
    },
    "max_rating_count": {
      "type": "integer",
      "default": 0,
      "description": "Optional ceiling to exclude unassailable giants."
    },
    "max_rating": {
      "type": "number",
      "description": "Only include apps at or below this average rating, e.g. 4.0."
    },
    "genre": {
      "type": "string",
      "description": "Restrict to one App Store category, e.g. Productivity."
    },
    "include_institutional": {
      "type": "boolean",
      "default": false,
      "description": "Include institution-locked products that a solo dev cannot win."
    }
  },
  "required": []
}
🔴find_solo_buildable(storefront, limit, min_rating_count, min_rating_count_scaled, max_rating_count, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "storefront": {
      "type": "string",
      "default": "us",
      "description": "Two-letter App Store region. The value is region identity, never a label."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 200,
      "description": "Maximum number of results to return."
    },
    "min_rating_count": {
      "type": "integer",
      "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."
    },
    "min_rating_count_scaled": {
      "type": "integer",
      "default": 5000,
      "description": "Pre-scaled rating volume filter. /api/lens applies max(300, floor(value / 3)); /api/paying applies max(200, floor(value / 5))."
    },
    "max_rating_count": {
      "type": "integer",
      "default": 0,
      "description": "Optional ceiling to exclude unassailable giants."
    },
    "max_rating": {
      "type": "number",
      "description": "Only include apps at or below this average rating, e.g. 4.0."
    },
    "genre": {
      "type": "string",
      "description": "Restrict to one App Store category, e.g. Productivity."
    },
    "include_institutional": {
      "type": "boolean",
      "default": false,
      "description": "Include institution-locked products that a solo dev cannot win."
    }
  },
  "required": []
}
⚪validate_paying_market(storefront, limit, min_rating_count)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "storefront": {
      "type": "string",
      "default": "us",
      "description": "Two-letter App Store region. The value is region identity, never a label."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 200,
      "description": "Maximum number of results to return."
    },
    "min_rating_count": {
      "type": "integer",
      "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."
    }
  },
  "required": []
}
🟢get_opportunity_brief(app_id, storefront, include_github)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "app_id": {
      "type": "integer",
      "description": "App Store track id."
    },
    "storefront": {
      "type": "string",
      "default": "us",
      "description": "Two-letter App Store region. The value is region identity, never a label."
    },
    "include_github": {
      "type": "boolean",
      "default": true,
      "description": "MCP name for the REST with_github switch."
    }
  },
  "required": [
    "app_id"
  ]
}
⚪generate_app_brief(app_id, storefront, target)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "app_id": {
      "type": "integer",
      "description": "App Store track id."
    },
    "storefront": {
      "type": "string",
      "default": "us",
      "description": "Two-letter App Store region. The value is region identity, never a label."
    },
    "target": {
      "type": "string",
      "enum": [
        "codex",
        "claude",
        "cursor"
      ],
      "default": "codex",
      "description": "AI coding agent that will receive the brief."
    }
  },
  "required": [
    "app_id"
  ]
}
🟢search_open_source_accelerators(genre, theme, limit)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "genre": {
      "type": "string",
      "description": "Restrict to one App Store category, e.g. Productivity."
    },
    "theme": {
      "type": "string",
      "description": "Complaint theme key, e.g. data_loss_sync, paywall_aggressive, ai_quality."
    },
    "limit": {
      "type": "integer",
      "default": 6,
      "maximum": 200,
      "description": "Maximum number of results to return."
    }
  },
  "required": []
}
🟢explain_method

Explain the scoring formulas, weights, and the honest limitations of the data. Use when a user questions the numbers.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "required": []
}
⚪market_stats

Report local data coverage (apps, reviews, chart snapshots) and the last ingest run.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "required": []
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada8 herramientas
verificadoversión no registrada8 herramientas