HubSpot MCP Server
HubSpot MCP 服务器
HubSpot API 的 MCP 服务器,使 Claude 能够与 HubSpot CRM 进行交互以进行销售分析和洞察。
免责声明
此开源项目与 HubSpot 没有任何关联,也未获得 HubSpot 的认可。它是一个独立的实现,可与 HubSpot 的 API 进行交互。
工具
核心 CRM 工具
hubspot_search_contacts使用查询字符串在 HubSpot 中搜索联系人
必需输入:
query(字符串):搜索查询字符串(电子邮件、姓名等)
可选输入:
count(数字,默认值:10):返回的最大联系人数量propertyList(数组):要包含在结果中的属性列表
返回:匹配的联系人及其属性的列表
hubspot_get_contact通过 ID 获取特定联系人
必需输入:
contactId(字符串):要检索的联系人的 ID
可选输入:
properties(数组):要包含在结果中的属性列表
返回:具有指定属性的联系方式
hubspot_create_contact在 HubSpot 中创建新联系人
必需输入:
properties(对象):至少包含email字段的联系人属性
返回:创建的联系方式
hubspot_update_contact更新 HubSpot 中的现有联系人
必需输入:
contactId(字符串):要更新的联系人的 IDproperties(对象):要更新的联系人属性
返回:更新的联系确认
hubspot_list_deals使用分页功能列出 HubSpot 中的交易
可选输入:
limit(数字,默认值:10,最大值:100):返回的最大交易数量after(字符串):下一页的分页光标properties(数组):要包含在结果中的属性列表
返回:交易列表及其详细信息
hubspot_get_deal通过 ID 获取特定交易
必需输入:
dealId(字符串):要检索的交易的 ID
可选输入:
properties(数组):要包含在结果中的属性列表
返回:具有指定属性的交易详情
hubspot_create_deal在 HubSpot 中创建新交易
必需输入:
properties(对象):至少包含dealname字段的交易属性
返回:创建交易详情
hubspot_update_deal更新 HubSpot 中的现有交易
必需输入:
dealId(字符串):要更新的交易的IDproperties(对象):要更新的交易属性
返回:更新交易确认
hubspot_list_companies在 HubSpot 中分页列出公司
可选输入:
limit(数字,默认值:10,最大值:100):返回的最大公司数量after(字符串):下一页的分页光标properties(数组):要包含在结果中的属性列表
返回:公司列表及其详细信息
hubspot_get_company
通过 ID 获取特定公司
必需输入:
companyId(字符串):要检索的公司 ID
可选输入:
properties(数组):要包含在结果中的属性列表
返回:具有指定属性的公司详细信息
销售分析工具
hubspot_get_sales_analytics
获取特定时间段的汇总销售分析数据
必需输入:
period(字符串):按时间段对分析数据进行分组(每日、每周、每月、每季度、每年)startDate(字符串):分析开始日期,ISO 格式(YYYY-MM-DD)
可选输入:
endDate(字符串):ISO 格式的分析结束日期pipeline(字符串):要过滤的管道 IDdealStage(字符串):要过滤的交易阶段 IDdealOwner(字符串):要过滤的交易所有者 ID
返回:按时间段分组的汇总销售指标
hubspot_get_deal_history
获取交易变更的完整历史记录
必需输入:
dealId(string): 获取历史记录的交易的 ID
返回:带有时间戳和修改属性的交易变更历史记录
hubspot_get_deal_notes
获取与特定交易相关的注释
必需输入:
dealId(string): 需要获取注释的交易的 ID
可选输入:
limit(数字,默认值:20):返回的最大注释数after(字符串):下一页结果的分页光标
返回:包含其内容和创建时间戳的笔记列表
hubspot_get_engagements_by_deal
获取与交易相关的所有参与活动
必需输入:
dealId(字符串):要获取约定的交易的 ID
可选输入:
types(数组):要包含的约定类型(电话、电子邮件、会议、任务、注释)limit(数字,默认值:20):返回的最大参与次数after(字符串):下一页结果的分页光标
返回:参与列表及其详细信息和类型信息
hubspot_get_sales_performance
获取特定时间段内销售代表的绩效指标
必需输入:
period(字符串):按时间段对绩效数据进行分组(每日、每周、每月、每季度、每年)startDate(字符串):分析开始日期,ISO 格式(YYYY-MM-DD)
可选输入:
endDate(字符串):ISO 格式的分析结束日期ownerIds(数组):要包含在分析中的所有者 ID 列表pipeline(字符串):要过滤的管道 ID
回报:每个销售代表的绩效指标,包括交易数量、收入和赢单率
hubspot_get_pipeline_analytics
获取特定销售渠道的分析数据,包括各阶段之间的转化率
必需输入:
pipelineId(字符串):要分析的管道的 IDperiod(字符串):按时间段对分析数据进行分组(每日、每周、每月、每季度、每年)startDate(字符串):分析开始日期,ISO 格式(YYYY-MM-DD)
可选输入:
endDate(字符串):ISO 格式的分析结束日期
回报:管道阶段指标,包括交易数量、价值、转化率和阶段时间
hubspot_get_forecast_analytics
根据当前销售渠道和历史业绩获取预测销售数据
必需输入:
period(字符串):按预测数据分组的时间段(每月、每季度、每年)
可选输入:
numberOfPeriods(数字,默认值:3):要预测的未来周期数pipeline(字符串):要过滤的管道 ID
回报:根据历史数据和当前渠道预测未来时期的销售指标
Related MCP server: HubSpot MCP Server
设置
创建 HubSpot 私人应用程序:
转到您的 HubSpot 帐户
导航至“设置”→“帐户设置”→“集成”→“私人应用程序”
点击“创建私人应用”
为您的应用命名并设置适当的范围(联系人、交易和公司)
创建应用程序并复制您的私人应用程序令牌
所需范围:
crm.objects.contacts.readcrm.objects.contacts.writecrm.objects.deals.readcrm.objects.deals.writecrm.objects.companies.readcrm.objects.companies.writecrm.objects.owners.readcrm.objects.quotes.readcrm.objects.line_items.readcrm.objects.custom.readcrm.schemas.deals.readcrm.schemas.contacts.readcrm.schemas.companies.readcrm.schemas.custom.read
与 Claude Desktop 一起使用
将以下内容添加到您的claude_desktop_config.json中:
NPX
{
"mcpServers": {
"hubspot": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-hubspot"],
"env": {
"HUBSPOT_API_KEY": "your-api-key-here"
}
}
}
}码头工人
{
"mcpServers": {
"hubspot": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "HUBSPOT_API_KEY", "mcp/hubspot"],
"env": {
"HUBSPOT_API_KEY": "your-api-key-here"
}
}
}
}故障排除
如果遇到错误,请验证:
所有必需的范围都已添加到您的 HubSpot 私人应用中
API 密钥已正确复制到您的配置中
您的 HubSpot 计划包含对您尝试使用的 API 的访问权限
建造
Docker 构建:
docker build -t mcp/hubspot -f Dockerfile .执照
此 MCP 服务器采用 MIT 许可证。这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。更多详情,请参阅项目仓库中的 LICENSE 文件。
Available Tools
17 toolshubspot_create_contactC
Create a new contact in HubSpot
| Name | Required | Description | Default |
|---|---|---|---|
| properties | Yes | Contact properties |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Create a new contact' implies a write operation but doesn't specify permissions required, whether duplicates are handled, what happens on failure, or what the response contains. For a mutation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise - a single sentence that states the core purpose without any wasted words. It's front-loaded with the essential information and contains no unnecessary elaboration or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation/mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address what happens after creation (success/failure responses), how to handle duplicate emails, what permissions are needed, or what distinguishes this from update operations. The combination of mutation behavior and missing structured documentation requires more descriptive context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter information beyond what's already in the schema, which has 100% coverage. The schema fully documents the single 'properties' parameter with its nested structure and required 'email' field. The baseline score of 3 reflects adequate parameter documentation coming entirely from the schema, with no additional value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new contact in HubSpot'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'hubspot_update_contact' beyond the basic verb difference, nor does it specify what distinguishes it from other creation tools like 'hubspot_create_deal'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over 'hubspot_update_contact' for existing contacts, or how it relates to sibling tools like 'hubspot_search_contacts' or 'hubspot_get_contact'. There's no context about prerequisites, constraints, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_create_dealC
Create a new deal in HubSpot
| Name | Required | Description | Default |
|---|---|---|---|
| properties | Yes | Deal properties |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Create' implying a write operation, but fails to mention permissions required, whether the operation is idempotent, error handling, or response format. This leaves significant gaps for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is inadequate. It lacks information on behavioral traits, error handling, and what the tool returns, failing to compensate for the missing structured data. This leaves the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the single parameter (an object with properties like amount, dealname, etc.). The description adds no additional parameter details beyond what the schema provides, resulting in the baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new deal in HubSpot'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like hubspot_update_deal or hubspot_list_deals beyond the basic verb, missing explicit comparison that would warrant a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as hubspot_update_deal or hubspot_list_deals. The description lacks context about prerequisites, timing, or exclusions, offering only a basic statement of function without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_get_companyC
Get a specific company by ID
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | The ID of the company to retrieve | |
| properties | No | List of properties to include in the results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but only states the basic action. It doesn't mention whether this is a read-only operation, authentication requirements, rate limits, error conditions, or what format the returned company data takes, which are critical for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple retrieval tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what data is returned, error handling, or behavioral constraints. Given the complexity of retrieving company data with optional properties, more context is needed for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters (companyId and properties). The description doesn't add any meaning beyond what's in the schema, such as explaining property selection strategies or ID format requirements, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a specific company by ID'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'hubspot_list_companies' or 'hubspot_get_contact', which would require explicit comparison to earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of when to choose this over 'hubspot_list_companies' for bulk retrieval or other get tools for different resources, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_get_contactC
Get a specific contact by ID
| Name | Required | Description | Default |
|---|---|---|---|
| contactId | Yes | The ID of the contact to retrieve | |
| properties | No | List of properties to include in the results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states the basic operation without mentioning authentication requirements, rate limits, error conditions, or what happens if the contact doesn't exist. For a read operation with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a simple retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what data is returned, error handling, or behavioral constraints. Given the complexity of interacting with a CRM system and the lack of structured metadata, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add any additional meaning about the parameters beyond what's in the schema (e.g., format of contactId, examples of properties). This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('a specific contact by ID'), making the purpose immediately understandable. It distinguishes from list/search operations but doesn't explicitly differentiate from other get operations like hubspot_get_company or hubspot_get_deal, which is why it doesn't reach a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like hubspot_search_contacts or hubspot_list_companies. It doesn't mention prerequisites (e.g., needing a contact ID) or compare it to sibling tools, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_get_dealC
Get a specific deal by ID
| Name | Required | Description | Default |
|---|---|---|---|
| dealId | Yes | The ID of the deal to retrieve | |
| properties | No | List of properties to include in the results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves a deal but doesn't mention whether it's a read-only operation, what happens if the deal ID is invalid (e.g., error handling), or any rate limits or authentication requirements. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded and wastes no space, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a read operation with 2 parameters) and lack of annotations and output schema, the description is insufficient. It doesn't explain what the tool returns (e.g., deal details, error responses) or provide behavioral context like error handling or usage constraints, leaving the agent with incomplete information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('dealId' and 'properties') with descriptions. The description adds no additional meaning beyond what the schema provides, such as explaining the format of 'dealId' or how 'properties' affects the output. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a specific deal by ID'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'hubspot_list_deals' or 'hubspot_get_deal_history', which would require mentioning this is for retrieving a single deal's details rather than listing multiple deals or accessing related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that this is for retrieving a single deal by ID, as opposed to 'hubspot_list_deals' for multiple deals or 'hubspot_get_deal_history' for historical data, nor does it specify prerequisites like needing a valid deal ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_get_deal_historyC
Get the complete history of changes to a deal
| Name | Required | Description | Default |
|---|---|---|---|
| dealId | Yes | The ID of the deal to get history for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get') but does not describe traits like whether it's read-only, requires authentication, has rate limits, returns paginated results, or what the output format is. For a tool with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and concise, making it easy to understand quickly with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, output format, and usage context relative to siblings. For a tool that retrieves historical data, more information on what 'complete history' entails and how to interpret results would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'dealId' fully described in the schema. The description does not add any meaning beyond what the schema provides, such as explaining the format of 'dealId' or how history is structured. Baseline 3 is appropriate when the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('complete history of changes to a deal'), making the purpose specific and understandable. However, it does not explicitly differentiate from sibling tools like 'hubspot_get_deal' or 'hubspot_get_deal_notes', which might also retrieve deal-related information, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'hubspot_get_deal' for current state or 'hubspot_get_deal_notes' for notes. It does not mention prerequisites, exclusions, or specific contexts, leaving usage unclear relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_get_deal_notesC
Get notes associated with a specific deal
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Pagination cursor for next page of results | |
| dealId | Yes | The ID of the deal to get notes for | |
| limit | No | Maximum number of notes to return (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Get notes' which implies a read-only operation, but doesn't mention any behavioral traits like pagination (implied by the 'after' parameter in schema), rate limits, authentication needs, or what happens if the deal ID is invalid. For a tool with 3 parameters and no annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff. It's appropriately sized for a simple retrieval tool and front-loads the core functionality. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what the tool returns (e.g., note objects with fields like content, author, timestamp), how pagination works with the 'after' parameter, or error conditions. For a data retrieval tool without output schema, more context about return values would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond what's already in the schema, which has 100% coverage with clear descriptions for all 3 parameters (dealId, limit, after). The baseline is 3 since the schema does the heavy lifting, but the description doesn't compensate with additional context like format examples or usage tips for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'notes associated with a specific deal', making the purpose immediately understandable. It distinguishes this tool from siblings like hubspot_get_deal (which gets deal details) and hubspot_get_deal_history (which gets deal history). However, it doesn't specify the scope of notes (e.g., all notes vs recent notes), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use hubspot_get_engagements_by_deal (which might include notes as part of engagements) or hubspot_get_deal_history (which might overlap with note history). There's no context about prerequisites, such as needing an existing deal ID, or limitations like pagination requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_get_engagements_by_dealB
Get all engagement activities (calls, emails, meetings, etc.) associated with a deal
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Pagination cursor for next page of results | |
| dealId | Yes | The ID of the deal to get engagements for | |
| limit | No | Maximum number of engagements to return (default 20) | |
| types | No | Types of engagements to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'Get all engagement activities' but doesn't disclose behavioral traits like pagination behavior (implied by 'after' param), rate limits, authentication needs, or what 'all' means in practice (e.g., completeness). This leaves gaps for a tool with 4 parameters and no 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose with zero waste. It uses parentheses for examples without cluttering, making it appropriately sized and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no annotations, and no output schema, the description is adequate but has clear gaps. It covers the basic purpose but lacks details on behavioral aspects like pagination or return format, making it minimally viable but incomplete for full agent guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters like dealId, after, limit, and types. The description adds minimal value beyond this, mentioning 'associated with a deal' which aligns with dealId but doesn't provide additional syntax or format details. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'engagement activities associated with a deal', specifying the scope with examples like calls, emails, meetings, etc. It distinguishes from siblings like hubspot_get_deal_history or hubspot_get_deal_notes by focusing on engagements rather than deal changes or notes specifically, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing engagements for a deal, but doesn't explicitly state when to use this vs. alternatives like hubspot_get_deal_history or hubspot_get_deal_notes. It provides context (deal-based) but lacks explicit exclusions or named alternatives, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_get_forecast_analyticsC
Get forecasted sales data based on current pipeline and historical performance
| Name | Required | Description | Default |
|---|---|---|---|
| numberOfPeriods | No | Number of future periods to forecast (default 3) | |
| period | Yes | Time period to group forecast data by | |
| pipeline | No | Pipeline ID to filter by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool 'Get forecasted sales data,' implying a read-only operation, but doesn't specify if it requires authentication, rate limits, or how the forecast is calculated (e.g., based on 'current pipeline and historical performance'). This leaves gaps in understanding the tool's behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get forecasted sales data') and adds a clarifying basis. There's no wasted text, making it easy to parse, though it could be slightly more structured by explicitly separating usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose but lacks usage guidelines, detailed behavioral context, and output information. With no output schema, it should ideally hint at return values, but it doesn't, leaving gaps for an agent to infer behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing details for all parameters (numberOfPeriods, period, pipeline). The description adds minimal value beyond the schema by hinting at the forecast basis ('current pipeline and historical performance'), but it doesn't explain parameter interactions or provide additional context like default behaviors not in the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('forecasted sales data'), and it distinguishes the type of analytics from siblings like 'hubspot_get_pipeline_analytics' or 'hubspot_get_sales_analytics' by focusing on forecasting. However, it doesn't explicitly differentiate from all siblings, such as 'hubspot_get_sales_performance', which might also involve analytics, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing pipeline data, or compare it to siblings like 'hubspot_get_pipeline_analytics' for current pipeline data versus forecasted data. This lack of context makes it harder for an agent to select the right tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_get_pipeline_analyticsB
Get analytics for a specific sales pipeline including conversion rates between stages
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date for analysis in ISO format (YYYY-MM-DD) | |
| period | Yes | Time period to group analytics data by | |
| pipelineId | Yes | The ID of the pipeline to analyze | |
| startDate | Yes | Start date for analysis in ISO format (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'conversion rates between stages' but lacks details on permissions needed, rate limits, data freshness, or response format. For an analytics tool with zero annotation coverage, this leaves significant gaps in understanding its operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every element ('Get analytics', 'specific sales pipeline', 'conversion rates between stages') contributes directly to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters with full schema coverage but no annotations and no output schema, the description is adequate for basic understanding but incomplete. It covers what the tool does but lacks behavioral context and output details, making it minimally viable for an analytics tool in this environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing clear documentation for all parameters. The description adds minimal value beyond the schema by implying analytics include conversion rates, but doesn't elaborate on parameter interactions or semantics. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'analytics for a specific sales pipeline', specifying conversion rates between stages. It distinguishes from general analytics tools like hubspot_get_sales_analytics by focusing on pipeline-specific metrics, though it doesn't explicitly differentiate from hubspot_get_forecast_analytics which might be a closer sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like hubspot_get_sales_analytics or hubspot_get_forecast_analytics. The description implies usage for pipeline analytics but offers no context on prerequisites, exclusions, or comparative scenarios with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_get_sales_analyticsC
Get aggregated sales analytics data for specific time periods
| Name | Required | Description | Default |
|---|---|---|---|
| dealOwner | No | Deal owner ID to filter by | |
| dealStage | No | Deal stage ID to filter by | |
| endDate | No | End date for analysis in ISO format (YYYY-MM-DD) | |
| period | Yes | Time period to group analytics data by | |
| pipeline | No | Pipeline ID to filter by | |
| startDate | Yes | Start date for analysis in ISO format (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Get aggregated sales analytics data' which implies a read-only operation, but doesn't specify authentication needs, rate limits, data freshness, or what 'aggregated' entails (e.g., summary metrics vs. raw data). This is a significant gap for a tool with multiple parameters and no 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It directly communicates the tool's function and scope, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema, and no annotations), the description is inadequate. It doesn't explain what 'aggregated sales analytics data' includes, how results are structured, or behavioral aspects like error handling. For a data retrieval tool with filtering options, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal value beyond the input schema, which has 100% coverage. It mentions 'specific time periods' which aligns with the period, startDate, and endDate parameters, but doesn't explain the relationship between these or provide additional context like default behaviors or constraints. With high schema coverage, the baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get aggregated sales analytics data') and resource ('sales analytics data'), with specificity about time periods. It distinguishes from siblings like hubspot_get_forecast_analytics or hubspot_get_pipeline_analytics by focusing on general sales analytics rather than specific forecast or pipeline metrics, though it doesn't explicitly name these distinctions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like hubspot_get_forecast_analytics or hubspot_get_sales_performance. It mentions 'specific time periods' but doesn't clarify use cases, prerequisites, or exclusions, leaving the agent to infer from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_get_sales_performanceC
Get performance metrics for sales reps over a specific time period
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date for analysis in ISO format (YYYY-MM-DD) | |
| ownerIds | No | List of owner IDs to include in the analysis | |
| period | Yes | Time period to group performance data by | |
| pipeline | No | Pipeline ID to filter by | |
| startDate | Yes | Start date for analysis in ISO format (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get' implies a read operation, the description doesn't address important behavioral aspects like authentication requirements, rate limits, pagination, error conditions, or what format the performance metrics are returned in. For a tool with 5 parameters and no output schema, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for the tool's complexity and gets straight to the point. Every word earns its place in conveying the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'performance metrics' actually includes, how results are structured, or provide any context about the analytics domain. For a sales performance tool with multiple parameters and no structured output documentation, more contextual information would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description mentions 'specific time period' which aligns with the startDate and endDate parameters, but adds no additional semantic context beyond what's already in the schema. This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get performance metrics') and resource ('for sales reps'), making the purpose immediately understandable. It specifies the scope ('over a specific time period') which helps distinguish it from other analytics tools. However, it doesn't explicitly differentiate from sibling tools like hubspot_get_sales_analytics or hubspot_get_forecast_analytics, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple analytics-related sibling tools (hubspot_get_sales_analytics, hubspot_get_forecast_analytics, hubspot_get_pipeline_analytics), there's no indication of what makes this tool distinct or when it should be preferred. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_list_companiesC
List companies in HubSpot with pagination
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Pagination cursor for next page of results | |
| limit | No | Maximum number of companies to return (default 10, max 100) | |
| properties | No | List of properties to include in the results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions pagination (a key behavioral trait) which is helpful, but doesn't address other critical aspects like whether this requires authentication, rate limits, error handling, or what the output format looks like. For a list operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (7 words) and front-loaded with the core purpose. Every word earns its place: 'List companies in HubSpot' establishes the action and resource, 'with pagination' adds a crucial behavioral detail. There's zero waste or redundancy in this description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with 3 parameters, no annotations, and no output schema, the description is incomplete. While it efficiently states the core purpose and mentions pagination, it doesn't address authentication requirements, rate limits, error conditions, or what the response structure looks like. Given the complexity of interacting with an external API like HubSpot, more contextual information would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all three parameters. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain relationships between parameters, provide examples of property values, or clarify how pagination works with the limit parameter. Baseline 3 is appropriate when the schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('companies in HubSpot'), making the purpose immediately understandable. It distinguishes from sibling tools like hubspot_get_company (single company retrieval) and hubspot_list_deals (different resource type). However, it doesn't specify what kind of listing this is (e.g., all companies, filtered by criteria) beyond mentioning pagination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose hubspot_list_companies over hubspot_get_company (single company) or hubspot_search_contacts (different resource), nor does it specify prerequisites like authentication requirements or rate limits. The mention of pagination is a functional detail rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_list_dealsC
List deals in HubSpot with pagination
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Pagination cursor for next page of results | |
| limit | No | Maximum number of deals to return (default 10, max 100) | |
| properties | No | List of properties to include in the results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'with pagination' which is useful, but doesn't address important behavioral aspects like whether this requires authentication, rate limits, what happens when no deals exist, or what the return format looks like. For a list operation with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 6 words, front-loading the essential information ('List deals in HubSpot') and adding the critical behavioral detail ('with pagination') without any wasted words. Every element earns its place in this minimal description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with 3 parameters and no output schema, the description is insufficiently complete. It doesn't explain what information is returned, how results are structured, whether there are sorting options, or what authentication is required. The mention of pagination is helpful but doesn't compensate for the lack of output format information and other behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't add any parameter semantics beyond what's already documented in the schema (which has 100% coverage). The schema already fully describes 'after', 'limit', and 'properties' parameters with their purposes and constraints. The description doesn't provide additional context about how these parameters interact or typical usage patterns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('deals in HubSpot'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'hubspot_get_deal' or 'hubspot_get_deal_history', which could cause confusion about when to use each specific tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'hubspot_get_deal' (singular retrieval), 'hubspot_get_deal_history', and 'hubspot_search_contacts', there's no indication of when this paginated list approach is preferred over other deal-related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_search_contactsC
Search for contacts in HubSpot using a query string
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Maximum number of contacts to return (default 10) | |
| propertyList | No | List of properties to include in the results | |
| query | Yes | Search query string (email, name, etc.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool searches for contacts but lacks details on permissions required, rate limits, pagination behavior, error handling, or what the response format looks like. This is inadequate for a search tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search operation, no annotations, and no output schema, the description is incomplete. It does not cover behavioral aspects like permissions, rate limits, or response format, nor does it provide usage guidelines. This leaves significant gaps for an AI agent to understand how to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for all parameters (count, propertyList, query). The description adds minimal value beyond the schema by mentioning 'query string' and implying search scope ('email, name, etc.'), but does not provide additional syntax, format details, or usage examples. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search for contacts') and resource ('in HubSpot'), specifying the search mechanism ('using a query string'). It distinguishes from siblings like 'hubspot_get_contact' (single contact retrieval) and 'hubspot_list_companies' (different resource), but does not explicitly differentiate from other search/list tools like 'hubspot_list_deals' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention when to prefer this over 'hubspot_get_contact' (for single contact retrieval) or 'hubspot_list_companies' (for different resources), nor does it specify prerequisites, contexts, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_update_contactC
Update an existing contact in HubSpot
| Name | Required | Description | Default |
|---|---|---|---|
| contactId | Yes | The ID of the contact to update | |
| properties | Yes | Contact properties to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states this is an update operation, implying mutation, but doesn't cover critical aspects like required permissions, whether changes are reversible, rate limits, error handling, or what the response looks like. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action ('update an existing contact') and specifies the context ('in HubSpot'). Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral traits (e.g., side effects, auth needs), response format, and error conditions. While the schema covers parameters well, the overall context for safe and effective use is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters clearly documented in the schema ('contactId' and 'properties'). The description adds no additional meaning beyond what the schema provides—it doesn't explain property formats, validation rules, or examples. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('update') and resource ('existing contact in HubSpot'), making the purpose immediately understandable. It distinguishes from creation tools like 'hubspot_create_contact' by specifying 'existing contact', but doesn't explicitly differentiate from other update tools like 'hubspot_update_deal' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a contact ID), when not to use it (e.g., for creating new contacts), or how it differs from sibling update tools beyond the resource name. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_update_dealC
Update an existing deal in HubSpot
| Name | Required | Description | Default |
|---|---|---|---|
| dealId | Yes | The ID of the deal to update | |
| properties | Yes | Deal properties to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is an update operation, implying mutation, but doesn't cover critical aspects like required permissions, whether changes are reversible, rate limits, error handling, or what the response looks like. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence ('Update an existing deal in HubSpot') directly contributes to understanding the tool's function, making it appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is insufficiently complete. It lacks details on behavioral traits (e.g., permissions, side effects), usage context relative to siblings, and expected outcomes. The high schema coverage helps with parameters, but overall context for safe and effective use is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters clearly documented in the schema: 'dealId' as the ID to update and 'properties' as the deal properties to update. The description adds no additional semantic context beyond what the schema provides, such as examples of properties or formatting details. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an existing deal in HubSpot'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'hubspot_update_contact' beyond the resource type, nor does it specify what aspects of a deal can be updated beyond the generic 'update' verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing deal ID), when not to use it (e.g., for creating new deals), or refer to sibling tools like 'hubspot_create_deal' for creation or 'hubspot_get_deal' for retrieval.
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.
17 tool updates
v1.0.0- First observed
hubspot_create_contact - First observed
hubspot_create_deal - First observed
hubspot_get_company - First observed
hubspot_get_contact - First observed
hubspot_get_deal - First observed
hubspot_get_deal_history - First observed
hubspot_get_deal_notes - First observed
hubspot_get_engagements_by_deal - First observed
hubspot_get_forecast_analytics - First observed
hubspot_get_pipeline_analytics - First observed
hubspot_get_sales_analytics - First observed
hubspot_get_sales_performance - First observed
hubspot_list_companies - First observed
hubspot_list_deals - First observed
hubspot_search_contacts - First observed
hubspot_update_contact - First observed
hubspot_update_deal
TDQS
Scored across 17 tools
Most tools have distinct purposes targeting specific HubSpot objects (contacts, deals, companies) and actions (create, get, list, update, search). However, some analytics tools like hubspot_get_forecast_analytics, hubspot_get_pipeline_analytics, hubspot_get_sales_analytics, and hubspot_get_sales_performance could be confusing due to overlapping 'analytics' terminology, though their descriptions help differentiate them.
All tools follow a consistent hubspot_verb_noun naming pattern with snake_case throughout. The verbs (create, get, list, search, update) are used predictably across different objects, making the set highly readable and systematic.
With 17 tools, the count is slightly high but reasonable for a comprehensive CRM integration covering contacts, deals, companies, and analytics. It's well-scoped for the domain, though it might feel heavy compared to simpler servers.
The tool set provides strong CRUD/lifecycle coverage for contacts and deals (create, get, list, update, search), with additional analytics and history tools. Minor gaps include no update for companies, no create for companies, and no delete operations, but agents can likely work around these omissions in typical workflows.
Maintenance
Related MCP Connectors
The HubSpot MCP Server acts as a bridge that enables AI assistants and Large Language Models to securely interact with HubSpot CRM data through natural conversation, without requiring users to understand complex API structures. It provides read-only access to standard CRM objects (contacts, companies, deals, tickets, products, invoices, and more) and their associations, secured via OAuth 2.0, allowing AI agents to perform tasks like summarizing deals, fetching company updates, and looking up record changes.
xmagnet — AI-powered B2B CRM for Claude. 35 tools that turn natural-language prompts into real CRM actions: prospect, enrich, score leads, manage deals, scan buying intent, run email campaigns and sequences, build forms and landing pages, refine ICP, and analyze performance — all directly inside Claude. 🚀 ONE-CLICK INSTALL: https://api.xmagnet.ai/claude The install page guides Claude users through 3 steps in under a minute: open Claude Connectors, paste the connector name, paste the server URL, sign in. A reviewer workspace is auto-provisioned on first sign-in with sample contacts, deals, campaigns, and ICP suggestions, so every tool works end-to-end with zero setup. No 2FA. No paid plan required. Free tier exposes all 35 tools. What you can do: • Prospecting — search_contacts, search_companies, search_investors, find_contacts_at_companies, enrich_contact, validate_email, find_competitors, company_intelligence • Pipeline — get_deals_pipeline, scan_deal_intent, get_ghost_pipeline, create_deal • Campaigns & sequences — create_campaign, generate_campaign_content, get_campaign_stats, get_bounce_stats, get_unsub_stats, create_sequence_draft, list_sequences • Top of funnel — suggest_icp, get_icp, create_form, list_forms, create_landing_page, list_landing_pages, show_suggestions • Operations — analyze_contacts, get_contact_details, update_contact, save_contacts_to_crm, export_contacts, get_dashboard_stats, get_credit_balance Example prompts to try: • "Find C-suite contacts at fintech companies that raised Series A in the last 6 months." • "Scan my open deals for buying intent and prioritize follow-ups." • "Generate a re-engagement campaign for contacts who opened my last newsletter but didn't reply." • "Show me my deals pipeline by stage with weighted value and win rate." • "Generate a landing page for my Q2 webinar with a registration form." Built for founders, SDRs, RevOps, and growth teams who want their CRM to take action — not just store records. Install: https://api.xmagnet.ai/claude · Site: https://xmagnet.ai · Privacy: https://xmagnet.ai/privacy-policy · Terms: https://xmagnet.ai/terms-of-service · Support: ashish.sinha@xmagnet.ai
CRM, inbox, meetings, revenue intelligence, analytics and automations for AI agents.
- PlixanaOAuthcom.plixana
Operate the Plixana CRM from any AI: contacts, deals, quotes, WhatsApp and metrics.
Related MCP Servers
- AlicenseBqualityFmaintenanceEnables AI models to interact with HubSpot CRM data and operations through a standardized interface, supporting contact and company management.16130MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with HubSpot CRM for managing contacts, companies, deals, and sending emails through natural language commands.589 npmMIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables management of HubSpot CRM entities including contacts, companies, deals, and pipelines through natural language. It provides comprehensive tools for listing, searching, creating, and updating records with support for OAuth 2.0 authentication.MIT
- AlicenseAqualityCmaintenanceEnables interaction with HubSpot CRM through MCP, providing tools to manage contacts, companies, deals, and search/associations via natural language.18589 npmMIT