This page documents the Python MCP surface (
mcp.heybtw.com). It reflects mcp-server/tools/account_relationship.py as of this page’s publication — see Schema stability.Purpose
get_account_relationship answers “tell me everything about this account” for a single company: every event they’ve attended, their contacts with seniority classification, which partners give you a warm intro path to them, an engagement trajectory, and (when HubSpot is connected) pipeline context. It is the primary AE-prep / account-research tool on this surface.
When to use this
- “What do we know about Zynga?” or “Give me a profile on stripe.com before my call.”
- Before drafting outreach —
warm_intro_pathsandcontext_graph_summary.recommended_actionsgive you a starting angle. - After
get_cross_event_patternssurfaces an account worth investigating further.
Parameters
Default behavior
At least one ofdomain or account_name is required — omitting both does not produce a helpful validation message today (see Errors). Given only domain, the tool returns everything on record for that account: full event history (no separate array cap beyond the limit used at the row level), up to the first 50 deduplicated contacts (contacts_shown/contacts_total tell you if more exist), and all warm intro paths found. Personal-email domains (gmail.com, outlook.com, etc.) are rejected up front — see Errors — because they cannot identify a single company.
Sample request
Sample response
Response field reference
Envelope
data[0]
Errors
- Missing both
domainandaccount_name. The intent is a clear validation error, but current behavior routes this through the generic handler like every other exception — the client seesRuntimeError: Internal error executing get_account_relationship (error_id=...), not an actionable message. Always pass one of the two. domainis a personal-email provider (e.g.gmail.com). This is handled explicitly and does not error — it returnsresult_count: 0withmetadata.coverage_noteexplaining that a personal-email domain cannot identify one company, and suggestingaccount_nameinstead.- All other failures funnel through the same generic sanitized error as every tool — see
get_workspace_overview— Errors and MCP Tools — Errors and troubleshooting.
Pagination and limits
No cursor-based pagination.limit (default 50, clamped to [1, 500]) bounds the underlying event-attendance row fetch used to build event_history and contacts — it is not a direct cap on the number of events or contacts returned (those are built by grouping/deduplicating the fetched rows). contacts is separately hard-capped to the first 50 after dedup regardless of limit; use contacts_total to know if you’re seeing everything.
Related tools
get_cross_event_patterns— find candidate accounts before profiling one in depth here.get_partner_insights— the partner-centric view of the same warm-intro relationships.get_event_summary— the event-centric view; use it to see everyone at an event, not just one account.