An agent can connect on its own if it already holds REEFAPI_MCP_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
tools.schemasevery tool has an object input schema
pass
tools.annotations5 of 5 tools declare readOnlyHint or destructiveHint
fail
tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: search_engines (destructiveHint); get_engine_schema (destructiveHint); get_action_schema (destructiveHint); …
pass
tools.token_costabout 1,296 tokens to load every tool
pass
tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
pass
stability.changesno tool changes in 30 days
pass
stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
n/a
deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package
5 tools, about 1,296 tokens to load them all · tool set 830afd98cad0 · checked 2026-10-20 10:03 UTC
Tool changes
No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
Endpoints
remote
auth
reachable
uptime 30d
p50
protocol
last ok
https://api.reefapi.com/mcpstreamable-http
api_key ${REEFAPI_MCP_TOKEN}
yes
95%
561 ms
2025-11-25
2026-10-20
Tools (5)
call_engine
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.
get_action_schemaread-only
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.
get_catalogread-only
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.
get_engine_schemaread-only
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.
search_enginesread-only
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).