ReefAPI
One MCP server for 180+ live web-data APIs returning clean JSON from sites that block scrapers.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- HIGH
- MEDIUMen call_engine
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
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": {
"reefapi-mcp": {
"url": "https://api.reefapi.com/mcp"
}
}
}Puntos de conexión remotos
https://api.reefapi.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (5)
🟢search_engines(query)
Find the right ReefAPI engine for a task — pass ENGLISH keywords or a short natural-language use-case ("detect a website's tech stack", "company reviews", "check a package for vulnerabilities", "is this domain available"). The catalog is in English: if the end-user asked in another language, translate their INTENT into English keywords first (you are an LLM — do this inline). Ranks engines by how well the query matches each engine's name/title/category/ACTION descriptions (stem-matched, so plurals/word-forms still hit). Empty query = list all. Returns name/title/category/actions + match score. Call this FIRST, then get_engine_schema(engine) to pick an action. This is a fast keyword pre-filter — if the right engine isn't in the results (or you want to be sure), call get_catalog and pick from the full list YOURSELF (you semantically match any language/phrasing better than keywords).
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"default": "",
"description": "English keywords or a short use-case, e.g. 'company reviews', 'detect a website's tech stack', or 'is this domain available'. Translate non-English intent to English first. Empty = list all engines.",
"title": "Query",
"type": "string"
}
},
"title": "search_enginesArguments"
}🟢get_engine_schema(engine)
COMPACT overview of ONE engine: every action with its description, required params and what it returns — but NOT the full param detail (kept lean so a 90-action engine stays token-cheap). Call this after search_engines to pick the right ACTION, then get_action_schema(engine, action) for that action's full params before call_engine.
Esquema de entrada
{
"type": "object",
"properties": {
"engine": {
"description": "The engine's name (the `engine`/`name` field from search_engines or get_catalog, e.g. 'zillow', 'amazon'). Returns each action with its description, required params, and what it returns.",
"title": "Engine",
"type": "string"
}
},
"required": [
"engine"
],
"title": "get_engine_schemaArguments"
}🟢get_action_schema(engine, action)
FULL detail for ONE engine action: every parameter (type, required, description, allowed_values dropdown, default, example, min/max), what it returns, pricing, and a ready-to-run example_params. Call this right before call_engine so you send valid params — invalid enum values are rejected with the allowed list.
Esquema de entrada
{
"type": "object",
"properties": {
"engine": {
"description": "The engine's name (e.g. 'zillow'), as returned by search_engines or get_catalog.",
"title": "Engine",
"type": "string"
},
"action": {
"description": "The action's name on that engine (from get_engine_schema, e.g. 'search'). Returns the full param detail (type, required, allowed_values, default, example, min/max), what it returns, pricing, and ready-to-run example_params.",
"title": "Action",
"type": "string"
}
},
"required": [
"engine",
"action"
],
"title": "get_action_schemaArguments"
}🟡call_engine(engine, action, params)
Call a ReefAPI engine action — POST /<engine>/v1/<action> with `params`. Returns the uniform { ok, data, meta, error } envelope. Get param names from get_engine_schema first. Needs YOUR ReefAPI key. The local server reads REEFAPI_KEY; the hosted server accepts an OAuth access token (connect with OAuth and paste your key once on the consent screen — this is what ChatGPT uses), an `Authorization: Bearer <key>` header, `x-reefapi-key`, or the key in the connection URL (`https://api.reefapi.com/mcp?key=<key>`). Get a key at https://reefapi.com. Failed calls cost no credits.
Esquema de entrada
{
"type": "object",
"properties": {
"engine": {
"description": "The engine's name to call (e.g. 'zillow'), as returned by search_engines or get_catalog.",
"title": "Engine",
"type": "string"
},
"action": {
"description": "The action to run on that engine (e.g. 'search'), as listed by get_engine_schema.",
"title": "Action",
"type": "string"
},
"params": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "The action's parameters as a JSON object, e.g. {'query': 'NYC'}. Get the valid param names and values from get_action_schema first. Omit or pass null for actions that take none.",
"title": "Params"
}
},
"required": [
"engine",
"action"
],
"title": "call_engineArguments"
}🟢get_catalog
The FULL ReefAPI catalog — EVERY engine with its one-line title, grouped by category. This is the whole menu (≈ a few thousand tokens); SCAN IT AND PICK THE BEST ENGINE YOURSELF. You are an LLM, so you match the user's intent semantically — across ANY language, typo, or phrasing — far better than a keyword search can. Use this whenever search_engines didn't surface the right engine (or to be sure you didn't miss a better one). After you pick: get_engine_schema(engine) -> get_action_schema -> call_engine.
Esquema de entrada
{
"type": "object",
"properties": {},
"title": "get_catalogArguments"
}Comunidad
Evidencia