toolsearch_company_signals
groupWhat changed
endpointhttps://mcp.steadybase.io/mcp
SEARCH EVERY COMPANY AT ONCE. Full-text search across the public signal index: every verified signal plus every signal on a lane other than earnings_call and earnings_calendar, across all companies in the public directory, each with a verbatim summary, an https source_url, page_ref, event_date, lane and the company page URL. This is the tool for "which companies said anything about a hiring freeze", where find_companies and company_signals both need you to know the company first. Matching is exact lowercased token match, no stemming and no synonyms, so use literal words. Ranked by how many of your query terms a signal carries, then by recency. Filter with lane (call list_lanes for what exists), since (YYYY-MM-DD inclusive floor on event_date) and ticker_or_slug (one company). Not board scoped: the same answer for every key, because the index it reads is public by contract.
arguments
| query* | string | the words to search for, for example "restructuring" or "travel expense" |
| lane | string | optional: one lane, for example cost, expansion, leadership_change, sec_filing, efficiency, headcount. list_lanes returns them all with counts |
| since | string | optional YYYY-MM-DD inclusive floor on event_date |
| ticker_or_slug | string | optional: restrict to one company by directory slug or ticker |
| limit | integer | max hits (default 20, cap 100) |
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":"search_company_signals","arguments":{"query":"..."}}' contract
| A quote comes with its receipt | Every 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 answer | When 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 data | No 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 key | A tenant-scoped skill reads only that tenant. Nothing about any customer appears on the public site or in another tenant answer. |
/skills/