get a key
steadybase-$ skill define_trigger
tooldefine_trigger
groupWhat changed
endpointhttps://mcp.steadybase.io/mcp

DEFINE WHAT YOU NEED TO HEAR ABOUT, IN YOUR OWN WORDS. Creates or updates (by name) one trigger for your tenant: criteria_text is plain language ("consolidating expense or travel tools"), scope is transcripts, signals, documents or all, filters is an optional JSON object (tickers, sectors, date_from, date_to, min_score, min_lexical, lookback_days). Written through your tenant's own owner's rights procedure SP_DEFINE_TRIGGER_<TENANT>, so it can only ever belong to your tenant. The hourly runner then searches the call transcripts on your book (Cortex Search, receipts kept) and the verified signal set by signal type, and writes hits you read with trigger_hits. Returns the TRIGGER_ID and the row.

arguments
name* string short label, unique per tenant (2 to 120 chars); the same name updates the trigger
criteria_text* string what to trigger on, in words (3 to 2000 chars)
scope string transcripts | signals | documents | all (default all)
filters object optional: {"tickers": [...], "sectors": [...], "date_from": "YYYY-MM-DD", "date_to": "YYYY-MM-DD", "min_score": 0.4, "min_lexical": 0.34, "lookback_days": 90}
active boolean false pauses the hourly run without losing hits (default true)
install
claude mcp add --transport http steadybase https://mcp.steadybase.io/mcp   --header "Authorization: Bearer $STEADYBASE_KEY"
call
curl -s https://api.steadybase.io/v1/mcp/call   -H "Authorization: Bearer $STEADYBASE_KEY" -H "Content-Type: application/json"   -d '{"tool":"define_trigger","arguments":{"name":"...","criteria_text":"..."}}'
contract
A quote comes with its receiptEvery returned statement carries the verbatim sentence and the URL it came from, and where the source is a transcript, the character offsets inside it. A statement with no receipt is not returned.
Empty is an answerWhen there is no sourced statement, the skill returns nothing. It does not summarise, infer, or fill the gap from general knowledge. Handle the empty case rather than retrying until something appears.
No personal contact dataNo email address, phone number, home address or personal social account is returned by any skill, at any tier. A person is a name, a professional role, a LinkedIn profile URL and the public record that puts them in that role.
No customer data crosses a keyA tenant-scoped skill reads only that tenant. Nothing about any customer appears on the public site or in another tenant answer.

/skills/

steadybase-$