ReefAPI

One MCP server for 180+ live web-data APIs returning clean JSON from sites that block scrapers.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
83%
이름 품질
100%
오염 위험
80%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domaincall_engine에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,296토큰 (도구 정의)
~1.1 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.01%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "reefapi-mcp": {
      "url": "https://api.reefapi.com/mcp"
    }
  }
}

원격 엔드포인트

https://api.reefapi.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (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).

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "title": "get_catalogArguments"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 5개
검증됨버전이 기록되지 않음도구 5개