Skip to main content
Glama

Data Parrot AI Revenue Analyst for HubSpot

Server Details

Data Parrot brings AI revenue analysis of your HubSpot data into your AI tools.

Ownership verified
Status
Healthy
Uptime
74.6% over 69 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
Data Parrot

TDQS

A3.8/5.0

Scored across 15 tools

Disambiguation4/5

Most tools have clearly distinct analytics purposes, and the singular get_deal versus plural get_deals distinction is explained. The main ambiguity is among select_data_parrot_workspace, switch_data_parrot_workspace, and reset_data_parrot_workspace_binding, which all affect workspace binding and could be confused.

Naming Consistency5/5

Tool names consistently use snake_case with a leading action verb, mostly get_*/describe_*/expand_*. The workspace tools follow the same verb_resource pattern despite their overlapping domain.

Tool Count5/5

15 tools is well-scoped for a revenue analytics server covering catalog, companies, deals, activities, forecast, pipeline history, win/loss, and workspace access. Each tool appears to earn its place without excessive redundancy.

Completeness4/5

The surface covers the core revenue analysis lifecycle: discovery, access, company health, deal review, timelines, engagements, transcripts, forecasts, pipeline history, and win/loss. Minor gaps exist around standalone contact/owner/team entities, but most workflows can be handled through existing deal and engagement filters.

Available Tools

15 tools
describe_data_catalogExplore Available Data Parrot DataA
Read-onlyIdempotent
Inspect

Discover supported fields, AI assessment meanings, filters, allowed values, and workspace-defined properties when these are unknown. Call with no arguments for the compact manifest, then request an advertised section and detail. A search requires both section and detail. This tool describes available data and how to query it; it does not return business evidence.

NameRequiredDescriptionDefault
pageNo
detailNo
searchNoCase-insensitive search over catalog values, requiring both section and detail. For deal fields, use section='deals', detail='fields', search='forecast'.
sectionNo
field_idNo
lifecycleNo
page_sizeNo
option_pageNo
option_page_sizeNo

Output Schema

NameRequiredDescription
dataYes
kindYes
toolYes
summaryYes
limitationsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so safety needs no restating. The description adds real behavioral context beyond that: the progressive-disclosure pattern (empty call yields a manifest that advertises valid sections/details) and the requirement that search be paired with section+detail. It doesn't cover pagination or option-paging behavior, which the other params imply.

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?

Three dense sentences, front-loaded with purpose, then workflow, then scope boundary; nothing is padding. The opening clause ('Discover ... when these are unknown') is slightly tangled but costs little.

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

Completeness3/5

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

An output schema exists, so return-value detail is rightly omitted, and the manifest-then-section workflow is well conveyed. However, with 9 parameters at 11% schema coverage, the description leaves most callable knobs (lifecycle, field_id, the two paging pairs) unexplained, which is the main missing piece for correct invocation.

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

Parameters2/5

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

Schema description coverage is only 11% and only the 'search' param is documented there, so the description is the main hope for the remaining eight. It clarifies section/detail as manifest-advertised keys, but leaves lifecycle, field_id, page, page_size, option_page, and option_page_size completely opaque in both schema and description — a significant gap for a 9-param tool.

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?

The description uses a specific verb ('Discover') and resource (supported fields, AI assessment meanings, filters, allowed values, workspace-defined properties) and adds an explicit negative scope: 'it does not return business evidence,' which separates it from the get_* siblings. It is slightly list-like rather than a single crisp statement, but an agent can tell it is a metadata/catalog inspector, not a data fetcher.

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?

It gives a concrete trigger ('when these are unknown') and a step-by-step call sequence: no arguments for the compact manifest, then request an advertised section and detail, with the constraint that search requires both section and detail. It does not name any sibling alternative (e.g. calling get_deals directly instead of exploring), so the when-not guidance is implied rather than explicit.

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

expand_resultLoad More Data Parrot ResultsA
Read-onlyIdempotent
Inspect

Retrieve the next page, additional detail, or supporting evidence offered by a previous Data Parrot result. Supply its result_id and one returned continuation_id; the original query settings are preserved. Use this when the previous result offers a continuation needed to answer the question. Transcript pagination uses get_transcript instead.

NameRequiredDescriptionDefault
result_idYes
continuation_idYes

Output Schema

NameRequiredDescription
dataYes
kindYes
toolYes
summaryYes
result_idNo
limitationsNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so safety is covered; the description adds real value by saying the original query settings are preserved and that the continuation_id must be one the prior result returned. It stops short of describing what happens with an expired or invalid continuation_id, which is the one behavior an agent could trip over.

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

Conciseness5/5

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

Three short sentences, front-loaded with the action, then the required inputs, then the usage decision and the sibling exclusion. No filler and nothing repeated from the schema.

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?

An output schema exists so return values need not be described, and the annotations cover the safety profile; the description supplies the continuation precondition and the get_transcript alternative. The remaining gap is failure handling for stale or mismatched continuation_id, which would matter for an agent recovering from an error.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load, and it does: result_id is tied to a previous result and continuation_id is constrained to 'one returned' by that result. It does not add format or validity details (string shape, expiry), leaving a small gap, but the meaning of both parameters is clear.

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

Purpose5/5

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

States a specific verb (retrieve) and resource (the next page / additional detail / supporting evidence of a prior Data Parrot result), plus the exact inputs that identify it. It also explicitly names the sibling that handles a different pagination case (get_transcript), so an agent can route correctly without opening either schema.

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

Usage Guidelines5/5

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

Gives an explicit trigger ('when the previous result offers a continuation needed to answer the question') and an explicit exclusion ('Transcript pagination uses get_transcript instead'). The precondition that a continuation must already have been returned is stated, which is the key routing fact.

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

get_companiesReview Customer HealthA
Read-onlyIdempotent
Inspect

Identify customers needing attention, quiet accounts, and changes in customer health. Return exact Customer Health KPIs, paginated company records, or count groups. For ranked risk lists, state the ranking basis and describe partial rows as the highest-ranked returned accounts. Do not sum company financial values. Use get_deals for open expansion opportunities.

NameRequiredDescriptionDefault
pageNo
detailNo
columnsNoCompany fields; omit for defaults. row_count is grouped output.
sort_byNo
group_byNoGroup Customer Health by health_label, segment, or custom_property:company field. Completeness: data.scope.is_partial and data.pagination.has_more.
page_sizeNo
company_idNo
company_nameNo
health_labelNo
group_sort_byNoRequired with company group_by: row_count or label. Financial group totals are unsupported.
company_domainNo
has_open_dealsNo
sort_directionNodesc
group_page_sizeNo
custom_propertiesNo
no_activity_sinceNo
company_name_matchNocontains
last_won_date_rangeNo
group_sort_directionNodesc
lifetime_revenue_rangeNo
last_activity_date_rangeNo

Output Schema

NameRequiredDescription
dataYes
kindYes
toolYes
summaryYes
result_idNo
limitationsNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/non-destructive, so the description is free to add the non-obvious semantics: 'Do not sum company financial values' warns that cross-page aggregation is invalid, and 'describe partial rows as the highest-ranked returned accounts' discloses that a paginated slice is top-N, not a complete risk set. Those are real behavioral traits an agent would otherwise get wrong; return format and pagination mechanics are left to the output schema.

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?

Four tight sentences: output modes first, then ranking/pagination caveat, then a costly-mistake warning, then the sibling route. Only the opening clause is soft marketing framing that could be replaced by a direct verb.

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

Completeness3/5

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

An output schema exists, so return values needn't be described, and the description does cover mode selection and two correctness traps. Given 21 optional parameters with near-zero schema descriptions, however, an agent still has to guess how to shape a real query, which is the dominant gap for a tool of this complexity.

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

Parameters1/5

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

With 21 parameters and only 14% schema description coverage, the description must carry the load and it explains almost nothing — no mention of columns, group_by/group_sort_by interplay, health_label, date ranges, has_open_deals, or detail mode. The only hints ('count groups', 'Do not sum financial values') are echoes of schema text, leaving most parameter meanings undocumented anywhere.

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 the resource (companies / Customer Health) and the three output modes it can produce: exact Customer Health KPIs, paginated company records, and count groups. The opening sentence ('Identify customers needing attention, quiet accounts...') is more use-case framing than a verb, but the second sentence pins down what is actually returned, and it explicitly distinguishes itself from get_deals.

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?

Gives a clear usage context (risk/health review, quiet accounts, health changes) and names one explicit alternative: 'Use get_deals for open expansion opportunities.' It stops short of stating when *not* to call it or covering the other siblings, but the routing hint plus stated scenarios give an agent enough to choose correctly.

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

get_data_parrot_access_statusCheck Data Parrot AccessA
Read-onlyIdempotent
Inspect

Check this connection's workspace-access state, any setup or permission requirements, and available workspace choices. Use returned workspace options when the user wants to select or switch workspaces.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare this as a read-only, idempotent, non-destructive operation. The description adds useful context by explaining that it reports workspace-access state, setup or permission requirements, and available workspace choices, which helps the agent understand the return content beyond the safety profile.

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

Conciseness5/5

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

The description is two tightly written sentences with no wasted text. The primary purpose is front-loaded, and the second sentence adds a direct usage cue for the returned workspace options.

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

Completeness5/5

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

The tool has no parameters, rich annotations covering safety and idempotency, and an output schema. The description covers what the tool checks and how the returned workspace choices are intended to be used, which is sufficient for an agent to call it correctly.

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

Parameters4/5

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

The tool has zero parameters, so there are no parameter semantics for the description to clarify. With no parameters, the baseline score is 4.

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

Purpose5/5

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

The description states a specific verb and resource: check this connection's workspace-access state, setup/permission requirements, and available workspace choices. It also implicitly distinguishes the tool from siblings by noting that returned workspace options are used when the user wants to select or switch workspaces.

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?

The description gives clear context for use: call it to inspect access state and available workspace choices, then use the returned options when the user wants to select or switch workspaces. It does not explicitly name the sibling select/switch/reset tools or state exclusions, so it falls short of full when/when-not guidance.

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

get_dealGet Deal DetailsA
Read-onlyIdempotent
Inspect

Prepare a deal review or pre-call brief for one known deal ID. Return selectable HubSpot CRM fields, custom properties, associations, the seller-entered next step, future scheduled activities, and Data Parrot's AI assessment for open deals. Use its reasoning and evidence to explain forecast confidence, deal risk, and possible next actions. Use get_deal_timeline for the chronology of changes and activity. For closed deals, return the deal's recorded won/lost reason.

NameRequiredDescriptionDefault
columnsNo
deal_idYes

Output Schema

NameRequiredDescription
dataYes
kindYes
toolYes
summaryYes
result_idNo
limitationsNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds real value beyond that: the AI assessment only applies to open deals, closed deals instead return the recorded won/lost reason, and the response carries seller-entered next steps and future scheduled activities. It doesn't describe paging or result-size behavior, which keeps it off a 5.

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?

The use case is front-loaded in the first clause, and each subsequent sentence adds a distinct fact (payload contents, how to use the reasoning, the timeline alternative, the closed-deal case). The return-value enumeration is dense but not padded; nothing is repeated.

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

Completeness5/5

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

With only two parameters, full annotation coverage, and an output schema handling return structure, the remaining gap an agent could face is routing and output interpretation. The description covers both, including the open-vs-closed deal behavioral split.

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?

Schema coverage is 0%, so the burden is on the description. 'One known deal ID' confirms the identifier is a single known deal, and 'selectable HubSpot CRM fields' hints at the columns parameter being a field selector. But neither the expected string format for columns nor any example field names appear, leaving the actual call syntax under-specified.

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

Purpose5/5

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

States a concrete verb and resource plus a use case: 'Prepare a deal review or pre-call brief for one known deal ID,' then enumerates the specific payload (CRM fields, custom properties, associations, next step, scheduled activities, AI assessment). It explicitly distinguishes itself from get_deal_timeline, so an agent can route between the two without opening a schema.

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?

Names the scenario (deal review, pre-call brief) and the constraint (one known deal ID), and explicitly routes chronology requests to get_deal_timeline. It also carves out the closed-deal case. It stops short of saying when to prefer the sibling get_deals list tool or noting prerequisites, so it's strong but not exhaustive.

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

get_dealsSearch and Analyze DealsA
Read-onlyIdempotent
Inspect

Find deals that need review: questionable Commit deals, forecast risk, stalled or dormant deals, repeated outreach with no recorded response, and candidates for leadership involvement. Search, filter, count activity, group, rank, and return open, won, or lost deals using CRM fields, Data Parrot AI assessments, and recorded activity counts. Open deals include AI forecast_category. Omitted owner selectors include all workspace owners. Use get_deal for a shortlisted deal's reasoning and evidence. Consult deals/analysis_concepts in the catalog when the appropriate assessment or filter is unclear.

NameRequiredDescriptionDefault
pageNo
columnsNoOptional Deal fields; omit for the compact default. Grouped row_count and amount_sum are automatic outputs; do not put them in columns.
sort_byNoSort by a catalog-supported Deal field.
deal_idsNo
group_byNo
team_idsNoExclusive selector: non-empty exact team IDs, expanded to active owners. Use instead of owner_scope or owner_ids.
deal_nameNo
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.
owner_scopeNoExclusive selector: all owners or current authenticated user. Omitting all three owner selectors defaults to all workspace owners.
amount_rangeNoInclusive configured Deal-value range.
deal_statusesNo
group_sort_byNoRequired with group_by: row_count, amount_sum, label, or value_order. rows, amount, and revenue are aliases.
company_filterNo
contact_filterNo
sort_directionNoasc
deal_name_matchNocontains
group_page_sizeNo
pipeline_stagesNo
purchase_intentNo
activity_filtersNoUp to 10 ANDed per-deal count filters. Item: {activity_types:[...],count:{operator,value},time_range:{start_date,end_date}}. For no activity use activity_types:["any"], count:{operator:"eq",value:0}, and dates. any counts meetings, calls, sent or received customer emails, and communications; zero includes never-contacted deals. Meetings without meeting_types count each meeting once. With meeting_types, counts represent lifecycle events; the same meeting can count as both booked and held, so do not add these as distinct meetings.
close_date_rangeNo
custom_propertiesNo
forecast_categoryNo
sales_performanceNo
overall_deal_healthNo
competitive_positionNo
deal_progress_statusNo
group_sort_directionNodesc
close_date_confidenceNo
deal_stage_confidenceNo
deal_probability_rangeNo
custom_property_filtersNo
include_null_close_dateNo

Output Schema

NameRequiredDescription
dataYes
kindYes
toolYes
summaryYes
result_idNo
limitationsNo

TDQS

A3.8/5.0
Behavior3/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 useful context beyond them: it names the data sources blended into results (CRM fields, Data Parrot AI assessments, recorded activity counts), notes that open deals carry forecast_category, and states the default when owner selectors are omitted. It says nothing about result limits, pagination caps, or cost/latency of the heavy activity-count filters.

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?

Four dense sentences, front-loaded with the highest-value scenario framing before mechanics, and the sibling pointer comes late where it belongs. No filler, though some sentences pack many clauses ("Search, filter, count activity, group, rank, and return...") at the cost of readability.

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

Completeness3/5

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

An output schema exists, so return-value shape need not be described, and the read-only annotations cover safety. But for a 34-parameter tool with zero required params and many unlabeled AI-assessment enumerations, the description leaves the agent dependent on an extra catalog call (deals/analysis_concepts) and does not clarify interaction rules among exclusive selectors (owner_scope/owner_ids/team_ids) or group_by vs. group_sort_by for row results.

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 34 parameters and only 26% schema description coverage, the description carries a large compensation burden and only partly meets it: it explains the owner-selector defaulting, open-deal forecast_category availability, and the activity-count concept generally. Many high-impact filters (pipeline_stages, purchase_intent, sales_performance, overall_deal_health, competitive_position, deal_progress_status, close_date_confidence, custom_properties) are given no meaning at all and are deferred to a catalog lookup, leaving the agent unable to construct them from the description alone.

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

Purpose5/5

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

States specific verbs and resource ("Find deals that need review", "Search, filter, count activity, group, rank, and return open, won, or lost deals") and enumerates concrete review scenarios (questionable Commit deals, forecast risk, stalled/dormant, outreach with no response). It explicitly separates itself from the sibling get_deal by scoping this tool to search and get_deal to a shortlisted deal's reasoning.

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?

Gives clear when-to-use framing (review triage, leadership involvement, forecast risk) and an explicit alternative: "Use get_deal for a shortlisted deal's reasoning and evidence." Also routes to the catalog when filter selection is unclear. It lacks an explicit when-not-to-use statement (e.g. bulk export vs. single-deal lookup beyond the get_deal pointer), which keeps it short of a 5.

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

get_deal_timelineGet Deal TimelineA
Read-onlyIdempotent
Inspect

Explain what happened on one known deal and what changed over time. Return its reverse-chronological timeline of CRM changes, Data Parrot AI assessments, and recorded customer engagements. Use it for deal history, changes in risk or confidence, and the sequence of buyer and seller activity.

NameRequiredDescriptionDefault
deal_idYes

Output Schema

NameRequiredDescription
dataYes
kindYes
toolYes
summaryYes
result_idNo
limitationsNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, so the safety profile is covered. The description adds real behavioral value by disclosing the reverse-chronological ordering and the three content categories the timeline merges. It says nothing about volume, pagination, or result limits, which matters for a timeline that can span an entire deal lifecycle.

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?

Three sentences, each doing distinct work: purpose, returned content, and use cases. It is front-loaded with the core intent and free of filler, though the first two sentences overlap slightly around 'what changed' and 'CRM changes'.

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?

With rich annotations, an output schema covering return values, and only one parameter, the description does most of the necessary work: it establishes scope, content, ordering, and when to reach for it. The remaining gap is identifier expectations and result size for an open-ended historical range.

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?

Schema description coverage is 0% for the single deal_id parameter, so the description carries the burden. It partly compensates by saying 'one known deal', implying the identifier must reference an existing deal and that only one deal is returned, but it never states the expected type (positive integer) or what happens with an unknown id.

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?

The description gives a specific verb ('Explain', 'Return') and a precise resource ('reverse-chronological timeline of CRM changes, Data Parrot AI assessments, and recorded customer engagements') scoped to 'one known deal'. It implicitly distinguishes itself from snapshot-oriented siblings like get_deal and get_engagements through its 'what changed over time' framing, but never names an alternative, so it falls short of full sibling differentiation.

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?

The final sentence gives explicit use cases: deal history, changes in risk or confidence, and the sequence of buyer and seller activity. That's clear positive guidance, but there are no exclusions or pointers to the competing siblings (get_deal, get_pipeline_history, get_engagements) that an agent might otherwise choose.

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

get_engagementsReview Sales ActivityA
Read-onlyIdempotent
Inspect

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.

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

NameRequiredDescription
dataYes
kindYes
toolYes
summaryYes
result_idNo
limitationsNo

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.

get_forecastGet Sales ForecastA
Read-onlyIdempotent
Inspect

Answer sales forecast questions for a week, month, or quarter using forecast summaries, open pipeline, and won actuals. Use it for forecast reviews and team or rep comparisons. Use get_deals for individual deals behind the totals. Won actuals follow pipeline, owner, and close-date scope; open-stage filters apply only to open pipeline.

NameRequiredDescriptionDefault
group_byNomonth
team_idsNoExclusive selector: non-empty exact team IDs, expanded to active owners. Use instead of owner_scope or owner_ids.
owner_idsNoExclusive selector: non-empty exact IDs from the owners catalog. Use instead of owner_scope or team_ids.
date_rangeYesRequired explicit forecast period.
owner_scopeNoExclusive selector: all owners or current authenticated user. Omitting all three owner selectors defaults to all workspace owners.
pipeline_stagesNo

Output Schema

NameRequiredDescription
dataYes
kindYes
toolYes
summaryYes
result_idNo
limitationsNo

TDQS

A4.5/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 the safety profile is covered by structured data. The description adds genuinely non-obvious behavior: won actuals follow pipeline, owner, and close-date scope while open-stage filters apply only to open pipeline — an asymmetry an agent could not guess. It stops short of describing result shape or pagination, though an output schema exists to carry that.

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?

Four sentences, roughly 50 words, front-loaded with purpose before usage, alternative, and scoping caveat — a sensible ordering. The final sentence is dense and slightly cryptic out of context, but every clause carries real information, so nothing is padding.

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 six-parameter nested tool with an output schema, the description covers purpose, routing, and the main scoping trap. Remaining gaps — the undocumented pipeline_stages shape and return-value expectations — are partly carried by the output schema, so the definition is adequate for correct invocation.

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

Parameters4/5

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

Schema coverage is 67% and the schema already documents the exclusive owner selectors; the description adds meaning where the schema is silent, notably how pipeline_stages filters only bite on open pipeline and how owner scope interacts with won actuals. It reinforces group_by granularity (week/month/quarter) without restating the enum.

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

Purpose5/5

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

States a specific verb and resource — answer sales forecast questions — and names the three inputs that make up the answer (forecast summaries, open pipeline, won actuals). It also distinguishes itself from get_deals in the same breath, so an agent can route between them without opening either schema.

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

Usage Guidelines5/5

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

Gives concrete use cases (forecast reviews, team or rep comparisons) and names the explicit alternative, get_deals, for individual deal detail behind the totals. The condition that selects the sibling is clear rather than left to inference.

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

get_pipeline_historyReview Pipeline HistoryA
Read-onlyIdempotent
Inspect

Explain what grew or shrank the pipeline, which deals caused the change, and how deals moved between stages. Return pipeline history for one requested date range, including the supported waterfall, stage-transition, and deal-change views. Calendar grouping can include earlier dates; use day for exact date ranges and check scope.date_basis.range for evidence dates. For comparisons, call once per range with identical non-date arguments; align by explicit ranges and returned order, and treat unavailable history as missing, not zero.

NameRequiredDescriptionDefault
pageNo
columnsNoOptional fields; omission uses view defaults. For deal_changes, movement_type identifies the fact. assigned_to_owner means unassigned-to-assigned or entering owner/team scope; assigned_from_owner means assigned-to-unassigned or leaving scope; owner_changed is in-scope reassignment. amount is the ending deal_value_property value. Concurrent value and owner changes produce two fact rows.
group_byYesHistorical grouping. Limits: 120 day, 208 week, 60 month, or 40 quarter periods.
team_idsNoExclusive selector: non-empty exact team IDs, expanded to active owners. Use instead of owner_scope or owner_ids.
owner_idsNoExclusive selector: non-empty exact IDs from the owners catalog. Use instead of owner_scope or team_ids.
page_sizeNo
date_rangeYesRequired requested date range. Week/month/quarter grouping starts at the calendar-period boundary; use day for exact dates. Evidence dates are returned in scope.date_basis.range. Bounded to 120 day, 208 week, 60 month, or 40 quarter periods for the selected grouping.
end_stagesNo
segment_byNoOptional current/latest deal-health segmentation for history_view=deal_changes.
owner_scopeNoExclusive selector: all owners or current authenticated user. Omitting all three owner selectors defaults to all workspace owners.
amount_rangeNoInclusive configured Deal-value range.
history_viewNoFor what changed or why pipeline grew or shrank, start with waterfall. Use stage_transitions for stage-flow causes and deal_changes for supporting deals. snapshot shows state, not change drivers.snapshot
start_stagesNo
segment_valueNo
group_page_sizeNo
pipeline_stagesNo
movement_directionNoMovement direction filter for stage_transitions or deal_changes. Use pipeline_changed for moves between pipelines and won or lost for historical outcomes.

Output Schema

NameRequiredDescription
dataYes
kindYes
toolYes
summaryYes
result_idNo
limitationsNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds non-obvious behavior: calendar grouping can pull in earlier dates, evidence dates live in scope.date_basis.range, and unavailable history must be treated as missing rather than zero. It stops short of covering pagination or result-size behavior across the two page-size params.

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?

The most important information (what it answers, which view to pick) is front-loaded, and the dense sentences each carry guidance. The final comparison sentence is somewhat compressed into a multi-clause run, but no sentence is filler.

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

Completeness3/5

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

An output schema exists, so return shapes need not be explained, and the primary analytical workflow is well covered. But for a 17-parameter tool, roughly eight parameters remain undocumented anywhere, leaving an agent to guess at stage filters, segmentation values, and paging behavior.

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?

At 59% schema coverage the description usefully clarifies group_by (day vs calendar-boundary grouping), date_range bounds, and comparison alignment. However several parameters — start_stages, end_stages, segment_value, pipeline_stages, page, page_size, group_page_size — carry no explanation in either the schema or the description, so the coverage gap is not compensated.

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

Purpose5/5

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

The opening states a specific verb and resource — return pipeline history for a date range — and immediately enumerates the three supported analytical views (waterfall, stage-transition, deal-change). It also implicitly separates itself from state-only siblings by noting that snapshot 'shows state, not change drivers.'

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

Usage Guidelines5/5

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

Explicit routing is given: start with waterfall for what changed, stage_transitions for stage-flow causes, deal_changes for supporting deals, and day grouping for exact date ranges. It also prescribes the comparison workflow (call once per range with identical non-date arguments, align by explicit ranges and returned order).

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

get_transcriptRead TranscriptA
Read-onlyIdempotent
Inspect

Read the recorded conversation behind a meeting or call, including buyer statements, objections, decisions, and next steps. Requires an exact transcript_id returned by get_engagements. Returns speaker turns with timecodes elapsed from recording start. If data.scope.has_more is true, continue with cursor=data.scope.next_cursor.

NameRequiredDescriptionDefault
cursorNoOpaque next_cursor from an earlier get_transcript response.
transcript_idYesExact transcript_id from a meeting or call row.

Output Schema

NameRequiredDescription
dataYes
kindYes
toolYes
summaryYes
result_idNo
limitationsNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavior beyond annotations by specifying speaker-turn timecodes and cursor-based continuation when data.scope.has_more is true.

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

Conciseness5/5

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

Three sentences, front-loaded with the core purpose, then prerequisites, then pagination guidance. Every sentence contributes useful operational information without repetition.

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

Completeness5/5

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

The tool is a read-only transcript retrieval operation with full schema coverage, annotations covering safety, and an output schema. The description supplies the key remaining context: source of transcript_id, returned content shape, and pagination behavior.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description still adds meaning by tying transcript_id to get_engagements and by explaining that cursor should be used with data.scope.next_cursor when more data exists.

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

Purpose5/5

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

The description states a specific verb and resource: reading the recorded conversation behind a meeting or call. It also names the substantive content returned (buyer statements, objections, decisions, next steps), making the tool clearly distinguishable from siblings like get_engagements.

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?

It gives a clear prerequisite: the transcript_id must come from get_engagements, and it explains the pagination condition using data.scope.has_more and data.scope.next_cursor. It does not explicitly name when not to use the tool or alternative tools, but the usage context is clear.

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

get_win_lossAnalyze Wins and LossesA
Read-onlyIdempotent
Inspect

Explain why deals were won or lost and identify possible improvements to sales execution. Return Data Parrot's prepared closed-deal analysis grouped into win/loss reasons, sales performance factors, and buyer decision factors, with attribution, ranking, and supporting-deal evidence. Use it to identify reasons associated with the most deals or revenue. Preserve unknown reasons and distinguish attributed explanations from proven causes.

NameRequiredDescriptionDefault
pageNo
team_idsNoExclusive selector: non-empty exact team IDs, expanded to active owners. Use instead of owner_scope or owner_ids.
owner_idsNoExclusive selector: non-empty exact IDs from the owners catalog. Use instead of owner_scope or team_ids.
page_sizeNo
date_rangeNoOptional inclusive close-date range; omit for all available history.
owner_scopeNoExclusive selector: all owners or current authenticated user. Omitting all three owner selectors defaults to all workspace owners.
pipeline_idsNo
deal_statusesYes
signal_rank_byNoWin/Loss rank metric.primary_count
group_page_sizeNo
custom_propertiesNo
signal_attribution_modeNoprimary counts the principal attributed reason; influenced counts each associated signal.primary
include_supporting_dealsNoExpose supporting-deal continuations.

Output Schema

NameRequiredDescription
dataYes
kindYes
toolYes
summaryYes
result_idNo
limitationsNo

TDQS

A3.6/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 the description's job is interpretive context — and it delivers: it warns to preserve unknown reasons and to distinguish attributed explanations from proven causes, which materially affects how an agent reports results. It stops short of describing pagination behavior for the capped group_page_size or how partial/empty analyses behave.

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?

Four sentences, front-loaded with purpose then output shape then usage then a caveat; each sentence carries content. The final caveat sentence is slightly disjointed but earns its place as interpretation guidance.

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

Completeness3/5

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

An output schema and full annotations mean the description needn't explain return values or safety, and the conceptual framing of the three analysis groupings is useful. But for a 13-parameter tool, the unexplained required deal_statuses and the silent pagination/grouping limits leave an agent guessing about the most load-bearing inputs.

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 54% schema description coverage the description should compensate, and it does only conceptually via 'attribution, ranking, and supporting-deal evidence,' mapping loosely to signal_attribution_mode, signal_rank_by, and include_supporting_deals — all of which already have schema descriptions. The required deal_statuses, plus page, page_size, group_page_size, pipeline_ids, and custom_properties, get no explanation anywhere.

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?

The description states a specific verb and resource — explain why deals were won or lost and return a prepared closed-deal analysis — and enumerates the output groupings (win/loss reasons, sales performance factors, buyer decision factors). It is clearly distinguishable from raw-data siblings like get_deal and get_deals, though it never names an alternative explicitly.

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

Usage Guidelines3/5

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

'Use it to identify reasons associated with the most deals or revenue' gives a usage context, but it largely restates the tool's own purpose rather than discriminating between this and get_deals/get_deal_timeline/get_forecast. No when-not-to-use conditions or prerequisites (e.g. workspace binding, data availability) are given.

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

reset_data_parrot_workspace_bindingReset Data Parrot WorkspaceA
DestructiveIdempotent
Inspect

After the user explicitly agrees, reset this MCP connection's unavailable workspace binding so they can choose from their currently active Data Parrot workspaces.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=true, and the description adds real value on top: a consent gate (explicit user agreement) and the post-condition (the binding is cleared so the user can choose an active workspace). It doesn't say what happens if no unavailable binding exists or whether the reset is immediate.

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

Conciseness5/5

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

One sentence, no waste, and the gating condition (user agreement) is front-loaded ahead of the effect.

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?

With a rich annotation set, an output schema, and no parameters, the description covers consent and effect adequately. Only edge-case behavior (no unavailable binding present) is left unstated.

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

Parameters4/5

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

Zero parameters, so the baseline is 4; there is nothing for the description to disambiguate and it correctly frames the call as taking no arguments.

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 specific verb (reset) and a specific resource (this MCP connection's unavailable workspace binding), plus the motivation (so the user can pick from active workspaces). This implicitly separates it from switch/select_data_parrot_workspace, though it never names those siblings outright.

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?

Gives an explicit precondition — only after the user explicitly agrees — and implies the trigger condition is a binding that is unavailable. It stops short of naming switch_data_parrot_workspace or select_data_parrot_workspace as the alternatives for the other cases.

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

select_data_parrot_workspaceSelect Data Parrot WorkspaceA
Idempotent
Inspect

Bind this MCP connection to one Data Parrot workspace after the user explicitly chooses from workspace_options returned by get_data_parrot_access_status. Never choose a workspace for the user.

NameRequiredDescriptionDefault
tenant_idYesTenant ID from workspace_options explicitly chosen by the user.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate non-read-only, non-destructive, and idempotent behavior. The description adds the important behavioral constraint that the agent must require explicit user choice, which is not captured in the annotations. It does not describe what happens to an existing binding, but the idempotentHint mitigates that concern.

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

Conciseness5/5

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

The description is two short sentences with no filler. The main action and precondition are front-loaded, and the critical user-consent rule is stated clearly and separately.

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 single-parameter tool with annotations and an output schema, the description covers the essential precondition and user-consent requirement. It could be more complete by addressing how this differs from switching or resetting a workspace binding, but it is not materially incomplete for correct invocation.

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?

The schema already provides 100% coverage, stating the tenant_id must come from workspace_options and be explicitly chosen by the user. The description reinforces this rule but adds little new parameter-level meaning beyond what the schema already conveys.

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?

The description uses a specific verb 'Bind' and identifies the resource ('this MCP connection to one Data Parrot workspace'), making the tool's core action clear. It also mentions the prerequisite flow via get_data_parrot_access_status, which adds context, but it does not explicitly contrast itself with sibling tools like switch_data_parrot_workspace or reset_data_parrot_workspace_binding.

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?

The description provides clear context for when to use the tool: after the user explicitly chooses from workspace_options returned by get_data_parrot_access_status. It also gives a strong exclusion ('Never choose a workspace for the user'), but it does not explicitly mention alternatives such as switch_data_parrot_workspace or state when not to use this tool.

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

switch_data_parrot_workspaceSwitch Data Parrot WorkspaceC
DestructiveIdempotent
Inspect

Switch only to a workspace the user selected from workspace_options.

NameRequiredDescriptionDefault
tenant_idYesTenant ID from workspace_options explicitly chosen by the user.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

Annotations flag destructiveHint=true and idempotentHint=true, which is surprising for a "switch" operation, yet the description never explains what is destroyed or replaced (current binding, cached catalog state, prior results). It adds only a provenance constraint, leaving the destructive semantics entirely unexplained.

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?

One short sentence, front-loaded with the verb and the key constraint. No padding, though the terseness contributes to the gaps in the other dimensions.

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

Completeness2/5

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

An output schema covers return values, so that need not be described. But a destructive, binding-changing tool in a cluster of three workspace-management siblings needs at least a note on what switching displaces and how it differs from select/reset; that is missing.

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?

Schema coverage is 100% and the single tenant_id parameter is already documented as coming from workspace_options with explicit user choice. The description restates that same constraint without adding format, validation, or error-behavior detail.

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

Purpose3/5

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

The verb and resource are clear ("switch ... workspace"), but the description never distinguishes this from the two other workspace-related siblings, select_data_parrot_workspace and reset_data_parrot_workspace_binding. An agent must guess whether switching is a re-selection, a reset, or a distinct operation.

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

Usage Guidelines3/5

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

"Switch only to a workspace the user selected from workspace_options" implies a precondition (user-chosen workspace) and an implicit prohibition on arbitrary tenant IDs. However, it gives no guidance on when to prefer this over select_data_parrot_workspace or when reset_data_parrot_workspace_binding is the right call instead.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedget_deals1 field changed
      • changedInput schema / properties / activity_filters / description
        Previous value: -"Up to 10 ANDed per-deal count filters. Item: {activity_types:[...],count:{operator,value},time_range:{start_date,end_date}}. For no activity use activity_types:[\"any\"], count:{operator:\"eq\",value:0}, and dates. any counts meetings, calls, sent or received customer emails, and communications; zero includes never-contacted deals."New value: +"Up to 10 ANDed per-deal count filters. Item: {activity_types:[...],count:{operator,value},time_range:{start_date,end_date}}. For no activity use activity_types:[\"any\"], count:{operator:\"eq\",value:0}, and dates. any counts meetings, calls, sent or received customer emails, and communications; zero includes never-contacted deals. Meetings without meeting_types count each meeting once. With meeting_types, counts represent lifecycle events; the same meeting can count as both booked and held, so do not add these as distinct meetings."
  2. 6 tool updates
    • Changeddescribe_data_catalog1 field changed
      • addedInput schema / properties / search / description
        Added value: +"Case-insensitive search over catalog values, requiring both section and detail. For deal fields, use section='deals', detail='fields', search='forecast'."
    • Changedget_deals3 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."
    • Changedget_engagements3 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."
    • Changedget_forecast3 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."
    • Changedget_pipeline_history3 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."
    • Changedget_win_loss3 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."
  3. 3 tool updates
    • Changedget_deals2 fields changed
      • changedInput schema / properties / columns / description
        Previous value: -"Optional Deal fields; omit for the compact default. row_count and amount_sum are grouped metrics."New value: +"Optional Deal fields; omit for the compact default. Grouped row_count and amount_sum are automatic outputs; do not put them in columns."
      • removedInput schema / properties / forecast_status
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "items": {
        -        "type": "string"
        -      },
        -      "minItems": 1,
        -      "type": "array"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null
        -}
    • Changedget_forecast6 fields changed
      • removedInput schema / properties / forecast_status
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "items": {
        -        "type": "string"
        -      },
        -      "minItems": 1,
        -      "type": "array"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null
        -}
      • addedInput schema / properties / group_by
        Added value: +{
        +  "default": "month",
        +  "enum": [
        +    "week",
        +    "month",
        +    "quarter"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / page
        Removed value: -{
        -  "default": 1,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / page_size
        Removed value: -{
        -  "default": 25,
        -  "maximum": 100,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / data / properties / pagination
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "has_more": {
        -      "type": "boolean"
        -    },
        -    "page": {
        -      "minimum": 1,
        -      "type": "integer"
        -    },
        -    "page_size": {
        -      "minimum": 1,
        -      "type": "integer"
        -    }
        -  },
        -  "required": [
        -    "page",
        -    "page_size",
        -    "has_more"
        -  ],
        -  "type": "object"
        -}
      • changedOutput schema / properties / data / required
        Previous value: -[
        -  "mode",
        -  "rows",
        -  "columns",
        -  "pagination"
        -]New value: +[
        +  "mode",
        +  "rows",
        +  "columns"
        +]
    • Changedget_pipeline_history1 field changed
      • changedInput schema / properties / date_range / description
        Previous value: -"Required explicit inclusive pipeline-history date range, bounded to 120 day, 208 week, 60 month, or 40 quarter periods for the selected grouping."New value: +"Required requested date range. Week/month/quarter grouping starts at the calendar-period boundary; use day for exact dates. Evidence dates are returned in scope.date_basis.range. Bounded to 120 day, 208 week, 60 month, or 40 quarter periods for the selected grouping."
  4. 1 tool update
    • Addedget_transcript

Publisher details

Operator
Data Parrot · Publisher source
Operator website
https://dataparrot.ai
Vendor relationship
First-party
Restrictions
Paid plan required

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to interact with HubSpot CRM data through tools for contacts, companies, activity, conversations, and semantic search, with vector storage and caching to improve response times.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to interact with HubSpot CRM data by accessing contacts, companies, activity, and conversations, while providing vector-backed semantic search and caching for faster, more reliable workflows.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to interact with HubSpot CRM data, including contacts, companies, engagement activity, and conversation threads, with built-in vector storage and caching for semantic search and improved response times.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources