Skip to main content
This page documents the Python MCP surface (mcp.heybtw.com, Claude Desktop and other MCP clients). It reflects the tool exactly as implemented in mcp-server/tools/workspace_overview.py as of this page’s publication — see Schema stability.

Purpose

get_workspace_overview returns a single-object snapshot of the calling workspace: its identity and plan, which integrations are connected, headline program metrics (signups, MQLs, pipeline), and agent guidance (which other tools are worth calling next, given what’s actually configured).

When to use this

  • The first call in any new agent session against a workspace you haven’t queried before.
  • “What can I ask about this workspace?” or “Is HubSpot connected here?”
  • Before recommending a specific tool to the end user — agent_guidance.data_limitations tells you which tools will return degraded or empty data.

Parameters

Default behavior

Called with no parameters, this tool returns all-time program metrics (program_metrics.period is "all_time") for the calling workspace — no result cap, no pagination, a single object (result_count: 1). configuration.integrations reflects live connection state at call time; it is not cached.

Sample request

Sample response

Response field reference

Envelope

data[0]

data[0].configuration

data[0].program_metrics

The sample above is not a verbatim capture: partner_program carries one more key on the wire.Contract v1 is the default — omit contract_version and v1 is what you get — and v1’s partner_program additionally carries avg_partner_warmth, the mean of an unbacked composite. Contract v2 omits it, leaving three observable facts. v2 is defined but not advertised, so v1 is what a live call returns today.It is withdrawn (HEY-1897) and documented nowhere on this page on purpose. Do not build on it; the remaining keys are all independently observable.
engagement_health is a different case: it is gone outright, at every contract version. HEY-1913 removed the block outright — accounts_new, accounts_increasing, accounts_stable, accounts_decreasing, and top_engaged_account — rather than deprecating it: its counts were bare scalars an agent could not re-derive, and a second path computing trajectories diverged from the anchored one (it reported 20 accounts where get_cross_event_patterns reported 83 on the same workspace).This tool no longer classifies account trajectories at all. get_cross_event_patterns is the one trajectory surface, and each of its rows carries the events[], first_seen, last_seen, and total_events behind its classification. That is why this tool’s suggested_first_queries now routes there unconditionally.Earlier versions of this page documented engagement_health as live. If you built a parser against it, it has been receiving nothing since that removal.
program_metrics.attribution_summary — when configuration.integrations.hubspot_crm is false, this shrinks to { crm_connected: false, total_sourced_pipeline: null, total_influenced_pipeline: null, total_closed_won: null, recommendation: "<string>" }. When CRM is connected but the attribution service is unreachable, every dollar field is null and coverage_note explains why (the fuller shape shown in the sample omits coverage_note because it succeeded). avg_cost_per_meeting and avg_cost_per_mql are always null today — cost data is not yet wired into this rollup (see get_event_attribution for the one place program-level cost-per-meeting IS live, under program_summary).

data[0].agent_guidance

Two available_tools descriptions are stale on the wire. The catalog is a static list compiled into the server, and it still describes get_invite_recommendations as returning “scored” recommendations and get_partner_insights as carrying “warmth scores”. Both scalars are being removed from the contract (HEY-1764, HEY-1897); see those tools’ reference pages, which are authoritative over this catalog string. The sample above transcribes the descriptions as actually emitted rather than quietly correcting them, so what you see here matches what you will receive.
data_limitations unconditionally includes "Invite recommendations: channel_id filter not yet implemented", on every response, and that string is inaccurate. channel_id on get_invite_recommendations is one of the two ways to name the target event — the other is event_name — and both are implemented. It is not a missing optional filter. Do not report it to a user as a missing feature or a degraded capability. Correcting the string itself is a change to the MCP server, not to this page.

Errors

This tool raises no tool-specific structured errors today. Any failure (workspace not found, unexpected exception) is caught by the server’s generic handler and surfaces to the client as:
The error_id is logged server-side with the real exception — useful when filing a support request, but the client never sees which specific condition failed. This is current behavior across all nine tools; see MCP Tools — Errors and troubleshooting for the transport-level errors (401, 429, 503) that can occur before a tool call is even attempted.

Pagination and limits

Not applicable — this tool always returns exactly one object. There is no limit parameter and no cursor-based pagination on any of the eight read tools today (see Schema stability).
  • get_event_attribution — the canonical source for attribution_summary’s numbers, with per-event granularity.
  • get_partner_insights — full detail behind partner_program.
  • get_cross_event_patterns — the one place account trajectories are classified. This tool no longer computes them; see the engagement_health warning above.