ReefAPI
One MCP server for 180+ live web-data APIs returning clean JSON from sites that block scrapers.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (2)
- HIGH
- MEDIUMin call_engine
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"reefapi-mcp": {
"url": "https://api.reefapi.com/mcp"
}
}
}Remote-Endpunkte
https://api.reefapi.com/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (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).
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {},
"title": "get_catalogArguments"
}Community
Nachweis