get a key
steadybase-$ skill pg_deals
toolpg_deals
groupEverything else
endpointhttps://mcp.steadybase.io/mcp

M&A ON YOUR BOOK, WITH THE FILING (Postgres). Every deal touching an account on your book from gtm_signals.v_deal_status, newest event first: DEAL_STATUS (announced, pending, closed, terminated), OTHER_PARTY_NAME, ANNOUNCED_DATE, EXPECTED_CLOSE, LAST_EVENT_TYPE and LAST_EVENT_DATE, PERCENT when the filing prints an ownership percent (no row carries one today, measured 0 of 604), the SOURCE_FORM and ITEM it was read from (8-K, 425, S-4, DEFM14A, 13D, tender offers), and two sentences quoted verbatim from the filing at RECEIPT_URL: RECEIPT_SENTENCE, the sentence the deal was read from, on every row, and CONSIDERATION_SENTENCE, what is being paid, when the filing states it (344 of 604 rows today). Ask it when you want to know which accounts are mid deal, because an acquisition is when a travel and expense programme gets consolidated onto one vendor. A deal with no receipt is NOT returned. Nothing is authored here: the status and the sentence are what the filing says, and OTHER_PARTY_MATCH tells you how the counterparty was resolved, so a name with no match is a name from a filing and not an account of ours. Filter with ticker or account_id, status, and since (YYYY-MM-DD floor on the last event).

arguments
ticker string optional: one account's ticker (omit for the whole book)
account_id string alternative to ticker: the acc_<32 hex> id
status string optional: announced, pending, closed or terminated
since string optional YYYY-MM-DD floor on the last event date
limit integer max rows (default 100, cap 500)
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":"pg_deals"}'
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-$