Skip to main content
Glama

Data Parrot AI Revenue Analyst for HubSpot

Review Sales Activity

get_engagements
Read-onlyIdempotent

Inspect recorded emails, meetings, calls, and communications to understand buyer responses, outreach, rep activity, and what happened on a deal or account. Requires an activity type and date range. Use association filters for specific deals, companies, or contacts. Deal and lead types return CRM object events; use meetings, calls, emails, or communications for their associated activities. Meeting subtype counts represent lifecycle events; the same meeting can contribute to both booked and held counts, so do not add these as distinct meetings. Use get_transcript when a returned meeting or call includes a transcript ID.

Input Schema

NameRequiredDescriptionDefault
pageNo
detailNo
columnsNoOptional fields to return for each activity; omit for safe defaults. Safe meeting fields include owner_name, associated_deals, and associated_companies. Grouped row_count is an output, not an activity field.
deal_idsNo
group_byNoOptional day (120), week (208), or month (60) grouping plus one field. Fields: meetings owner_name/hubspot_owner_id/meeting_type/hs_meeting_start_time; calls owner_name/hubspot_owner_id/call_type; emails owner_name/hubspot_owner_id/email_direction; communications owner_name/hubspot_owner_id/communication_channel_type; deals owner_name/hubspot_owner_id/deal_status; leads owner_name/hubspot_owner_id/lead_status. Period-only results zero-fill. Communication series zero-fill explicitly requested channels, otherwise observed channels in the requested date range. Other dimensions return observed period/dimension combinations only; values are deduplicated and period_start is returned.
team_idsNoExclusive selector: non-empty exact team IDs, expanded to active owners. Use instead of owner_scope or owner_ids.
call_typeNo
owner_idsNoExclusive selector: non-empty exact IDs from the owners catalog. Use instead of owner_scope or team_ids.
page_sizeNoRow size 1-100; use page/page_size. Groups use group_page_size.
date_rangeYesRequired activity start_date and end_date as explicit dates. Resolve relative periods before calling.
activity_idNoExact activity_fact_id returned by an engagement row or grouped supporting evidence.
company_idsNo
contact_idsNo
deal_statusNo
lead_statusNo
owner_scopeNoExclusive selector: all owners or current authenticated user. Omitting all three owner selectors defaults to all workspace owners.
meeting_typeNo
group_sort_byNoRequired for non-time grouping. Time series use canonical subtype order unless row_count or label is set.
email_directionNo
engagement_typeYesActivity type. For sales activities associated with deals or leads, select meetings, calls, emails, or communications and association filters. The deals and leads values select dated CRM object events.
group_page_sizeNo
pipeline_stagesNo
remove_duplicatesNo
show_unassociatedNo
group_sort_directionNoSort direction for an explicit group_sort_by. Ignored when group_sort_by is omitted.desc
lead_pipeline_stagesNo
show_deal_associatedNo
show_lead_associatedNo
communication_channel_typesNoOptional exact tenant-observed communication channel values, such as SMS or LINKEDIN_MESSAGE. Discover and pass exact values from the sales_activity fields detail.

Output Schema

NameRequiredDescriptionDefault
dataYes
kindYes
toolYes
summaryYes
result_idNo
limitationsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / owner_ids / description
      Previous value: -"Exclusive selector: exact IDs from the owners catalog."New value: +"Exclusive selector: non-empty exact IDs from the owners catalog. Use instead of owner_scope or team_ids."
    • changedInput schema / properties / owner_scope / description
      Previous value: -"Exclusive selector: all owners or current authenticated user."New value: +"Exclusive selector: all owners or current authenticated user. Omitting all three owner selectors defaults to all workspace owners."
    • changedInput schema / properties / team_ids / description
      Previous value: -"Exclusive selector: exact team IDs, expanded to active owners."New value: +"Exclusive selector: non-empty exact team IDs, expanded to active owners. Use instead of owner_scope or owner_ids."
  2. First observed

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds a genuinely non-obvious semantic caveat: meeting subtype counts are lifecycle events, so the same meeting appears in both booked and held and must not be summed as distinct meetings. That is exactly the kind of counting pitfall that prevents wrong answers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then requirements, then routing, then the counting caveat, then the transcript handoff — a sensible priority order with little filler. The meeting-count sentence is long but earns its space because it prevents a real aggregation error.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 29-parameter aggregation tool with an output schema and rich annotations, the description covers purpose, required inputs, type routing, association filtering, and the key counting pitfall. Pagination/grouping mechanics are left to the schema, which is acceptable given group_by and page_size are documented there.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 41% schema description coverage across 29 parameters, the description must compensate; it does explain engagement_type families and the association filters (deal_ids/company_ids/contact_ids) conceptually, plus the transcript ID pointer. But it is silent on many undocumented parameters (detail, remove_duplicates, show_unassociated, pipeline_stages, group_page_size), leaving half the surface to be inferred from names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb ('Inspect') with the resource set (emails, meetings, calls, communications, plus deal/lead events) and the analytical intent (buyer responses, rep activity). It also distinguishes the engagement_type families, so an agent can tell which records come back. It stops short of naming sibling analytics tools like get_deal_timeline or get_forecast as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states prerequisites ('requires an activity type and date range'), gives a routing rule for the confusing case ('use meetings, calls, emails, or communications for associated activities' rather than deal/lead types), and points to get_transcript for transcripts. No guidance on when to prefer this over get_deal or get_deal_timeline, which is the remaining gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources