Skip to main content

Tools

Every tool description ends with its own price, generated from config, so the model can see the meter running and pace itself instead of looping blind.
Module prices come from the same table as the REST API, so the same data costs the same whichever door you come through. See Credits and Modules. Failed calls are never billed.

search_signals

The cross-company question: who did something worth reacting to, and when. The response also reports how many companies produced signals in the window at all, so a ranked list of 25 is not mistaken for the whole market.
require_all_keys is the one worth knowing about. “Raised a round” is a weak buying signal on its own; “raised a round and is hiring sales roles” is a much smaller, much warmer list.

search_companies

Firmographic search over the index: country, min_employees, max_employees, funding_stage, keyword, employee_range, observed_within_days, limit. Set include_unindexed: true to reach a live external index for companies we have not seen yet. That path costs 25 credits rather than 5, because it spends real money per result.

get_company / get_company_signals

get_company takes a domain and an optional include list of enrichment modules. get_company_signals takes a domain plus days, categories, signal_keys and limit, and returns the dated timeline — the raw material for a “why now” argument.

refresh_company / get_refresh_status

refresh_company takes a domain and optional modules, queues a scan and hands back a batch_id. get_refresh_status polls that id for free until the scan lands. Guardrails, because an agent loop can dispatch scans far faster than a person would: a daily cap per key, per-plan concurrency, a 24-hour cooldown on the same domain, and a global in-flight lock so two keys cannot scan the same domain at once.

Prompts

The server also exposes MCP prompts — ready-made workflows that clients surface as a menu or slash command. Rendering one is free; the tools it triggers are billed normally.
The real value is not the phrasing. Each template has the correct tool sequence and the freshness caveats baked in — check coverage before calling a company quiet, do not report a rumour as an event — so a first-time user gets expert behaviour without knowing the rules.

Errors

Two channels, and the difference matters:
  • JSON-RPC errors mean the call was malformed — unknown method, bad envelope. The client sees them; usually the model does not.
  • Tool errors mean the call was fine but the answer is a failure — out of credits, unknown domain, quota hit. These come back as results so the model can read them and adapt.
Rejections that happen before the protocol is reached — auth, credits, rate limits — are rewrapped as JSON-RPC errors with an actionable sentence, rather than being handed to the agent as an opaque transport failure. A 429 also carries Retry-After.