contacts-create_signal
Create a contact research signal, return immediately, then poll the signal ID or receive results through a webhook.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| __requestBody | Yes | Request body |
Create a contact research signal, return immediately, then poll the signal ID or receive results through a webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| __requestBody | Yes | Request body |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-idempotent operation. The description adds valuable behavioral context by revealing the async pattern (immediate return, polling or webhook), which is not captured in the annotations. This exceeds the baseline while not over-explaining.
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, concise sentence that front-loads the action and conveys the essential workflow without any redundant information. It is perfectly sized for the tool's purpose.
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?
The description covers the core workflow needed to use the tool effectively: create, get immediate response, and retrieve results via polling or webhook. Given the rich schema and annotations, it is complete enough, though it does not explicitly mention that the returned signal ID can be used with contacts-get_signal.
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 all parameters. The description adds no parameter-specific meaning beyond what the schema already provides, matching 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 uses a specific verb and resource ('Create a contact research signal') and clearly distinguishes this from sibling tools like 'contacts-get_signal' by stating it creates rather than retrieves. It also conveys the asynchronous nature, making the tool's purpose unmistakable.
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 explains the asynchronous workflow (return immediately, then poll or webhook), which implies when to use this tool versus synchronous alternatives. However, it does not explicitly name alternatives or state when to prefer this tool over others like 'contacts-create_research' or 'contacts-get_signal'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Many tools have overlapping purposes, such as signals-firmographics vs companies-enrich_firmographics, findEmail vs contacts-enrich_work_email, and monitors vs signal_subscriptions vs market_signals. While descriptions add some context, an agent could easily select the wrong tool due to the high similarity in function.
Most tools use a resource_subresource-action pattern, but there are inconsistent separators: underscores within some names, hyphens in others (e.g., scoring-assignment-bulk-create), and several camelCase exceptions (findEmail, findEmailBatchGet, getContactResearchByExternalID). This mixed convention makes the tool set feel unpredictable.
With 119 tools, this server vastly exceeds the typical well-scoped range. Even for a comprehensive B2B data platform, the sheer number creates cognitive overload and increases the risk of incorrect tool selection.
The server covers an extensive range of operations: enrichment, lists, contacts, signals, subscriptions, monitors, and scoring. Nearly every resource has create, read, update, and delete or lifecycle equivalents, leaving very few practical gaps for the intended use case.