Skip to main content
Glama

xmagnet

Ownership verified

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.1/5 across 49 of 49 tools scored. Lowest: 3.3/5.

Server CoherenceC
Disambiguation2/5

Several tools have overlapping purposes (search_contacts, search_crm_contacts, find_contacts_at_companies, find_email) and similar search/load actions (load_more_contacts, load_more_companies). The distinctions are subtle and an agent could easily pick the wrong tool.

Naming Consistency4/5

Most tools follow a consistent verb_noun snake_case pattern (list_campaigns, create_deal, get_dashboard_stats), but a few like company_intelligence, get_icp, and show_suggestions break the pattern with noun-first or verb-free names. Overall the convention is clear.

Tool Count2/5

With 49 tools, the set is very large and feels heavy even for a broad CRM/marketing platform. Many tools are narrow sub-tasks (preview_upload_mapping, show_suggestions, load_more_*) that add clutter and could likely be consolidated.

Completeness2/5

The tool surface has significant gaps: no delete or update for most entities (contacts, campaigns, deals, landing pages), and no send/activate tools for campaigns or sequences. These missing operations leave workflows with dead ends and force workarounds.

Available Tools

49 tools
add_contactsAInspect

Add multiple contacts to Xmagnet in one call. Use when user provides a list of contacts to add/import. Each contact needs at least an email. Supports up to 200 contacts per call. Automatically deduplicates β€” existing contacts are updated, new ones are created.

ParametersJSON Schema
NameRequiredDescriptionDefault
contactsYesList of contacts to add
Behavior5/5

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

Given annotations only indicate non-read-only and non-destructive, the description adds critical behavioral context: the 200-contact limit, the requirement for at least an email, and the deduplication logic (update vs create). This goes well beyond what annotations alone convey.

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 three sentences, front-loaded with the primary action, and every sentence carries essential information (purpose, usage trigger, requirements, limits, behavior). No wasted words.

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 batch operation with a nested contact object, the description covers the key points: batch scope, required field, limit, and upsert semantics. It does not address error handling or partial failures, but with no output schema and given the tool's relative simplicity, it is reasonably complete.

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 schema describes the 'contacts' parameter as 'List of contacts to add' (100% coverage), but the description adds vital semantics: each contact must have an email, supports up to 200 contacts, and deduplication behavior. This enriches the raw schema information.

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 opens with a specific verb and resource: 'Add multiple contacts to Xmagnet in one call.' It clearly distinguishes from siblings like create_contact by emphasizing batch operation and the upsert behavior (existing updated, new created).

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?

Provides explicit context: 'Use when user provides a list of contacts to add/import.' This clarifies when to invoke the tool, but it does not explicitly name alternative tools or state when not to use it, so it stops short of the highest bar.

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

add_custom_fieldAInspect

Add a custom column to contacts or companies. field_type is 'text' for free text, or 'dropdown' for a lookup/picklist with fixed choices. IMPORTANT: when the user wants a lookup-style column (e.g. a 'Stage' field) you MUST first ask whether they want it as a lookup (dropdown) or a normal text field. If they choose dropdown and don't give the choices, call this with field_type='dropdown' and NO options β€” it returns needs_confirmation with AI-suggested options; show those, get the user's approval/edits, then call again with the final options array to actually create the field.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYesDisplay name, e.g. 'Stage'
entityNocontacts
confirmNoSet true to create even a dropdown with the given options
optionsNoChoices for a dropdown field. Omit to get AI suggestions.
field_typeNotext
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description reveals a crucial two-step behavioral pattern: calling with field_type='dropdown' and no options returns needs_confirmation with AI-suggested options, requiring a second call with confirm=true. This is essential non-obvious behavior that the agent must know to avoid incorrect usage. No contradiction with annotations.

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 appropriately sized for the tool's complexity. It front-loads the core purpose, then explains field types, and ends with a critical workflow note. Every sentence adds valueβ€”the confirmation workflow would be missing otherwise. It is not overly verbose.

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 5 parameters, no output schema, and minimal annotations, the description delivers complete operational context. It covers return behavior (needs_confirmation with suggested options), the necessity of user approval, and the final creation call. This is sufficient for an agent to use the tool effectively without guessing.

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

Parameters5/5

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

The description adds significant meaning to parameters beyond the schema. It explains field_type values ('text' for free text, 'dropdown' for lookup/picklist), clarifies that options should be omitted to get AI suggestions, and specifies confirm is 'Set true to create even a dropdown with the given options.' This compensates for the 60% schema coverage and directly informs parameter usage.

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 opens with a specific verb and resource: 'Add a custom column to contacts or companies.' It clearly distinguishes from sibling tools like add_contacts or create_contact by focusing on custom field creation. The mention of field_type and the dropdown workflow further clarifies its unique scope.

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?

The description gives explicit when-to-use guidance: 'when the user wants a lookup-style column... you MUST first ask whether they want it as a lookup (dropdown) or a normal text field.' It also provides a detailed conditional workflow for dropdown fields, including the two-call confirmation process. This goes beyond generic context and directly helps the agent decide and act.

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

analyze_contactsA
Read-only
Inspect

AI analysis of a contact list β€” breakdown by industry, title, company size, location, and engagement level.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoWhich contacts to analyze β€” e.g. 'my leads', 'contacts added this month'
campaign_idNoAnalyze contacts in a specific campaign
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the agent knows it's safe. The description adds the context that it's 'AI analysis', implying computational processing, and lists the output dimensions. However, it does not disclose any potential latency, credit consumption, or that it might produce a report versus a structured list. Given the annotations cover the safety profile, this is acceptable but not rich.

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 a single, focused sentence that front-loads the tool's purpose and lists the analysis dimensions. No wasted words.

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?

The description is moderately complete: it explains the input scope (contact list) and expected output aspects (breakdown by key dimensions). However, it lacks details on the output format (e.g., report, JSON, etc.) and whether the analysis is synchronous or async. Given the absence of an output schema, additional clarity would help, but the core use case is clear.

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%, with both query and campaign_id having descriptive text. The tool description adds no parameter-specific detail beyond the schema, but the breakdown dimensions in the description help interpret what 'query' might filter. Baseline is 3.

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 clearly identifies the tool's function: performing AI analysis on a contact list, with specific breakdown dimensions (industry, title, company size, location, engagement level). This distinguishes it from sibling tools like search_contacts or export_contacts, which are retrieval/export operations. The verb 'analysis' is implicit but the noun phrase is specific.

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?

The description does not explicitly state when to use this tool versus alternatives like search_contacts or run_ai_report. Usage is implied by the name and description, but there is no guidance on prerequisites or when not to use it.

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

apply_segment_to_campaignAInspect

Apply a saved segment to an existing campaign draft, adding all segment contacts as recipients. Use after list_segments when user picks a segment to add to a draft.

ParametersJSON Schema
NameRequiredDescriptionDefault
segment_idYesSegment ID from list_segments
campaign_idYesCampaign ID from list_campaigns (integer for NextGen, UUID string for MyConvo)
campaign_typeYesCampaign type
Behavior3/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, indicating a non-read-only but non-destructive write. The description adds that it adds all segment contacts as recipients, giving some behavioral detail. However, it does not disclose potential ambiguity about existing recipients or side effects, so the added transparency is limited beyond the annotations.

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?

Two sentences with zero waste: the first states the action and effect, the second provides usage context. Front-loaded and efficiently structured.

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 simple mutation tool with 3 fully-described parameters and no output schema, the description covers purpose, effect, and usage context well. It lacks edge case disclosures (e.g., overwriting behavior) but is complete enough for the complexity level.

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 100%, with all three parameters having clear descriptions (segment_id, campaign_id, campaign_type). The tool description does not add additional parametric meaning beyond the schema, so baseline 3 is appropriate.

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 uses a specific verb 'Apply' and resource 'saved segment to existing campaign draft', and clarifies the outcome by adding all segment contacts as recipients. It distinguishes from sibling tools by focusing on the segment-to-campaign application, not generic contact addition or campaign creation.

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 'Use after list_segments when user picks a segment to add to a draft,' providing clear timing and context. However, it does not mention alternatives or when not to use, which keeps it from a perfect score.

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

company_intelligenceA
Read-only
Inspect

Deep research on a company β€” funding history, leadership, tech stack, recent news, headcount, and growth signals.

ParametersJSON Schema
NameRequiredDescriptionDefault
websiteNo
company_nameYes
Behavior4/5

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

Annotations already declare the tool as read-only and non-destructive, so the description doesn't need to repeat that. It adds value by disclosing the specific outputs (funding history, leadership, etc.), which are not captured in the schema or annotations. It could go further by mentioning data freshness or coverage limits, but the provided content is sufficient for a research tool.

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 a single, well-structured sentence with a front-loaded purpose and a clearly enumerated list of research areas. Every word earns its place, and there is no wasted text.

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?

Given no output schema, the description does a good job of listing what the tool returns. It also benefits from read-only annotations. However, it does not explain the website parameter, and there is no mention of data sources or limitations, leaving some gaps in full contextual completeness.

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?

With zero schema description coverage, the description was expected to explain the purpose of the two parameters (company_name and website). It does not: the description only mentions 'company' without clarifying that company_name is required for identification and website is optional for disambiguation. This is a significant gap.

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 clearly identifies the tool's function as performing deep research on a company and lists specific data areas (funding history, leadership, tech stack, news, headcount, growth signals). This distinguishes it from sibling tools like search_companies or find_competitors, which are more general or narrowly scoped.

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 phrase 'Deep research' implies a use case for comprehensive company intelligence, providing clear context for when to use the tool. However, it does not explicitly mention alternatives or state when not to use it, so it stops short of full guidance.

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

create_campaignAInspect

Create a DRAFT email campaign via a programmatic wizard. Call this tool and it will guide through the steps β€” no manual orchestration needed. WIZARD STEPS (handled automatically by the tool):

  1. Call with contacts + total_contacts β†’ tool returns engine picker (NextGen vs MyConvo)

  2. Add campaign_type from user's click β†’ tool returns campaign category chips (promotional, newsletter, event…)

  3. Add campaign_category from user's click β†’ tool returns engine-specific template gallery MyConvo: shows plain_email_templates (personal plain-text). NextGen: shows campaign_templates (HTML).

  4. Add template_id from user's pick β†’ tool creates the draft campaign. RULES: Reuse contacts from prior search β€” never re-search. Pass total_contacts from search result's total_in_crm so the user always sees the full count. Saves as DRAFT only β€” no emails sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoEmail body (only needed for AI-generate path, not template path).
nameYesCampaign name
toneNoEmail tone β€” collected from user alongside campaign_description.
subjectNoSubject line (only needed for AI-generate path, not template path).
contactsNoContact objects from prior search to add as recipients.
template_idNoTemplate ID selected by user from wizard step 3 gallery.
from_accountNoSender email address (MyConvo only).
campaign_typeNoEngine chosen by user. Omit on first call β€” tool will prompt.
total_contactsNoTotal contact count from search result's total_in_crm. Always pass this so user sees full count.
campaign_categoryNoCampaign category chosen by user. Omit until user picks from wizard step 2.
campaign_descriptionNoWhat the campaign is about β€” collected from user when no MyConvo templates found. Used to auto-generate plain-text content.
Behavior5/5

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

Annotations only indicate not read-only and not destructive. The description adds substantial behavioral detail: it is a multi-step wizard with intermediate returns (engine picker, category chips, template gallery), saves as DRAFT only, and sends no emails. This goes well beyond the annotation basics.

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 front-loaded with the purpose and then structured into clearly labeled 'WIZARD STEPS' and 'RULES.' Every sentence earns its place, providing necessary context without filler.

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?

Even without an output schema, the description covers the tool's full behavior: intermediate picks and their order, the final draft creation, and rules for contact reuse. Given the 11-parameter, multi-step complexity, this is a complete and self-sufficient description.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds critical semantics: which parameters to pass at each wizard step (e.g., omit campaign_type until prompted), body/subject only for the AI-generate path, and total_contacts sourced from total_in_crm. This meaningfully elevates the parameter understanding beyond schema descriptions.

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 clearly states 'Create a DRAFT email campaign via a programmatic wizard,' using a specific verb and resource. It distinguishes itself from siblings like create_sequence_draft by focusing on campaigns and the draft state.

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 explicit wizard steps and rules, such as 'Reuse contacts from prior search β€” never re-search' and 'Pass total_contacts from search result's total_in_crm.' While it doesn't name alternative tools for exclusion, it offers clear contextual guidance for when and how to invoke this tool.

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

create_contactAInspect

Add a single contact directly to Xmagnet. Use when user says 'add', 'create', or 'save' a contact with specific details. Email is required. Supports: name, company, job_title, phone, linkedin_url, city, state, country, industry, lifecycle_stage (lead/prospect/customer/churned), notes. If a contact with the same email already exists, updates their info instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
emailYesContact's email address (required)
notesNo
phoneNo
stateNo
companyNo
countryNo
industryNo
full_nameNoFull name (used if first/last not provided)
job_titleNo
last_nameNo
first_nameNo
linkedin_urlNo
lifecycle_stageNolead, prospect, customer, or churned
Behavior4/5

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

Given annotations already indicate this is a mutation (readOnlyHint=false) and not destructive, the description adds valuable behavioral context: the upsert behavior ('If a contact with the same email already exists, updates their info instead'). This goes beyond the annotations and alerts users to the tool's non-obvious behavior.

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 three concise sentences. It front-loads the core action, then usage triggers, required parameter, supported fields, and the upsert edge case β€” no wasted words.

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 tool with 14 parameters, no output schema, and limited annotations, the description covers purpose, usage, required field, field list, enumerated values, and upsert behavior. It does not describe return values or error cases, but given the tool's straightforward nature, the description is sufficiently complete for an agent to invoke 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?

With only 21% schema description coverage, the description compensates by listing supported fields (company, job_title, phone, linkedin_url, city, state, country, industry, lifecycle_stage, notes) and explicitly marks email as required. It also clarifies lifecycle_stage allowed values. Minor ambiguity: 'name' in the description maps to schema's first_name/last_name/full_name, but it is still understandable.

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 clearly states 'Add a single contact directly to Xmagnet' with a specific verb and resource, and 'single' differentiates it from sibling tool add_contacts. It also includes the contact fields involved, making the tool's purpose unambiguous.

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 says when to use: 'Use when user says add, create, or save a contact with specific details.' It also notes that an existing same-email contact is updated, providing helpful context. However, it does not explicitly exclude bulk-add scenarios or reference add_contacts as the alternative, though the sibling name makes it inferable.

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

create_dealBInspect

Create a new deal in the Xmagnet pipeline.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNo
titleYesDeal title
valueNoDeal value in USD
priorityNo
company_nameNo
contact_nameNo
expected_close_dateNoExpected close date (YYYY-MM-DD)
Behavior3/5

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

With annotations declaring readOnlyHint=false and destructiveHint=false, the description correctly implies a mutating but non-destructive operation. However, it adds no additional behavioral context beyond that, such as permission requirements or side effects.

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?

A single clear sentence that states the action and destination without unnecessary words.

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?

With 7 parameters and no output schema, the description is too minimal. It doesn't explain what happens after creation, what fields are required beyond title, or how the pipeline context affects the operation, making it incomplete for an agent to invoke correctly.

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 coverage is only 43%, leaving notes, company_name, and contact_name undocumented. The description does not compensate by explaining these parameters or their purpose, so the agent must rely on incomplete schema.

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 uses a specific verb ('create') and resource ('deal') and adds context ('in the Xmagnet pipeline'), clearly distinguishing it from sibling tools like create_contact or create_campaign.

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

Usage Guidelines2/5

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

No guidance is provided about when to choose this tool over alternatives such as create_contact or create_campaign. The description only states the action without context on prerequisites or exclusions.

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

create_formAInspect

Create a new lead capture form using AI. Describe what you need and it generates the form.

ParametersJSON Schema
NameRequiredDescriptionDefault
toneNoe.g. professional, friendly, minimal
promptYesDescribe the form β€” e.g. 'contact form for SaaS demo requests'
form_typeNoe.g. contact, lead_capture, survey, registration
Behavior3/5

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

The annotations already indicate a non-read-only, non-destructive operation. The description adds the AI generation mechanism but does not disclose side effects, return format, or persistence behavior. Limited additional context beyond the annotations.

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 the main action front-loaded and no filler. Every word contributes to understanding the tool's purpose and usage.

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?

The description covers the core purpose and generation mechanism, but it does not explain the return value or whether the form is saved. Given the low complexity and lack of an output schema, completeness is adequate but not thorough.

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 100%, so parameters are well-documented in the schema. The description does not add additional meaning beyond what the schema provides, which aligns with the baseline score of 3.

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 clearly states the tool's function: creating a lead capture form using AI. It uses a specific verb ('Create') and resource ('lead capture form'), distinguishing it from sibling tools like create_landing_page or create_campaign.

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?

The description implies usage when a lead capture form is needed, but it does not explicitly mention when to avoid using it or suggest alternatives. The instruction to 'Describe what you need' is a minor usage hint, but no clear guidelines vs. siblings are provided.

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

create_landing_pageAInspect

Create a new landing page using AI. Describe what you need and it generates the page.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDescribe the landing page β€” e.g. 'SaaS product launch page with pricing'
template_typeNoe.g. product, lead_gen, event, webinar
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive mutation. The description adds that the page is AI-generated, which is useful context, but it does not disclose other behavioral aspects like whether the page is immediately published, if credits are consumed, or if there is any asynchronous processing.

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 only two sentences, front-loaded with the core purpose ('Create a new landing page') followed by a usage hint. No unnecessary words, very concise.

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?

For a simple create operation with two well-documented parameters and no output schema, the description is minimally sufficient. However, it lacks guidance on what the agent should do with the result (e.g., whether the API returns a page ID, a URL, or an error), which is a gap given there is no output schema to fill this in.

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 100%, with both 'prompt' and 'template_type' having explicit descriptions including examples. The tool description itself does not add additional meaning beyond restating that a description is needed, so the baseline score of 3 applies.

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 uses the specific verb 'Create' with the resource 'landing page', clearly distinguishing it from sibling tools like create_form or create_campaign. It also adds the key nuance 'using AI' and 'generates the page', making the tool's function unambiguous.

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?

The instruction 'Describe what you need' implies when to use the tool: when the user can articulate the desired page in natural language. However, no explicit alternatives or exclusions are mentioned, leaving the agent to infer when not to use it (e.g., when a pre-built template is preferred).

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

create_sequence_draftAInspect

Create a draft multi-step email sequence for an existing campaign. Returns the sequence ready to activate in xmagnet.

ParametersJSON Schema
NameRequiredDescriptionDefault
num_stepsNoNumber of sequence steps to generate
campaign_idYesSource campaign ID
campaign_nameNo
campaign_typeNomyconvo
Behavior4/5

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

Annotations (readOnlyHint=false, destructiveHint=false) indicate this is a non-destructive mutation. The description adds value by specifying it creates a draft (not an activated sequence) and returns the sequence ready for activation, which is behavioral context beyond the annotations.

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?

Two sentences, front-loaded with the main purpose, no fluff. Every word earns its place.

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?

For a 4-parameter tool with no output schema, the description gives a high-level understanding of what it does and returns, but it omits details about parameters (campaign_name, campaign_type) and does not describe the return structure beyond 'ready to activate.' It is adequate but has gaps.

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 50% (campaign_id and num_steps have descriptions; campaign_name and campaign_type do not). The description does not explain campaign_name or campaign_type, nor does it clarify how num_steps relates to 'multi-step' beyond that. It fails to compensate for the missing schema descriptions.

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 clearly states the action ('Create a draft multi-step email sequence') and the resource ('for an existing campaign'), and distinguishes it from sibling tools like create_campaign (which creates the campaign itself) and generate_campaign_content (which generates content). The phrase 'ready to activate' clarifies the output state.

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 provides clear context for when to use the tool: when you have an existing campaign and need a multi-step sequence draft. It doesn't explicitly name alternatives or state when not to use it, but the prerequisite of an existing campaign is implicit and helpful.

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

enrich_contactAInspect

Enrich a contact with verified work email, phone, LinkedIn, company details, and social profiles. Provide email or full name + company.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoContact's email address
companyNo
last_nameNo
contact_idNoXmagnet contact ID to enrich in-place
first_nameNo
linkedin_urlNo
Behavior2/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, so the agent knows it may mutate, but the description does not clarify whether enrichment writes to the CRM, consumes credits, or is reversible. The 'contact_id' schema hint about 'enrich in-place' is not carried into the main description, leaving side effects and data handling opaque.

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?

Two concise sentences front-load the outcome and immediately follow with input requirements. Every word earns its place; no verbosity or redundancy.

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?

With no output schema and minimal annotations, the description should explain expected return value, whether it performs mutations, and any dependencies (e.g., credit costs). It does not. While the purpose and basic inputs are clear, an agent lacks critical behavioral context to safely and confidently invoke this tool.

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 low (only email and contact_id have descriptions), but the description adds key semantics by explaining the alternative input options: email OR full name + company. This clarifies the relationship between first_name, last_name, and company that the schema itself lacks. However, contact_id and linkedin_url roles remain under-explained.

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 clearly states the action ('Enrich a contact') and specifies the exact data types returned ('verified work email, phone, LinkedIn, company details, and social profiles'). It distinguishes itself from siblings like find_email (single email lookup), validate_email, and company_intelligence by focusing on comprehensive enrichment.

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?

The instruction 'Provide email or full name + company' gives useful input guidance, but it does not explicitly state when to choose this tool over alternatives like find_email, get_contact_details, or update_contact. Usage context is implied but not formalized with when-to-use/when-not-to-use guidance.

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

export_contactsA
Read-only
Inspect

Export a list of contacts to CSV format for download. Pass the contacts array from a previous search or Xmagnet query.

ParametersJSON Schema
NameRequiredDescriptionDefault
contactsYesArray of contact objects to export
filenameNoOutput filename (without .csv)contacts_export
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds behavioral context beyond annotations by revealing the output format (CSV) and that it is for download, plus the expectation that input comes from a prior search/query. This is useful but does not dive into edge cases.

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 sentences, front-loaded with the primary purpose, and every sentence adds value. No redundant or wordy content.

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 simple (2 params, no output schema). The description covers what it does, the input source, and the output format. Annotations cover safety. There are no obvious missing details that an agent would need to invoke this tool 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?

Schema coverage is 100% (both contacts and filename are described in the schema). The description adds extra semantic value by clarifying the 'contacts' parameter should come from 'a previous search or Xmagnet query,' which helps the agent understand the expected provenance of that array.

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 action ('Export a list of contacts to CSV format for download'), naming both the verb and the resource. It clearly distinguishes itself from sibling tools like search_contacts or save_contacts_to_crm by focusing on export/download.

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 specifies the context: 'Pass the contacts array from a previous search or Xmagnet query,' indicating this tool is used after a search/query to export results. It does not explicitly name alternatives or exclusions, but the guidance is clear enough for an agent to choose this tool when exporting contacts.

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

find_competitorsA
Read-only
Inspect

Find competitors of a company. Returns similar companies by industry, tech stack, and target market.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
industryNo
company_nameYes
Behavior3/5

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

Annotations already declare this as a safe read-only operation, so the description does not need to repeat that. It adds the behavioral detail that results are based on industry, tech stack, and target market, which is useful. However, it does not disclose potential quirks like pagination, error handling, or data source reliability, so only partial transparency beyond annotations.

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 extremely concise: two sentences, front-loaded with the primary purpose, and the second sentence adds essential detail without any fluff. Every word earns its place.

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?

The tool has no output schema, so the description should clarify what is returned. It says 'Returns similar companies' but does not describe the result fields, ranking, or default count. The parameter count is small and annotations cover safety, so this is adequate but not complete.

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 0% schema description coverage, the description must carry the burden of parameter meaning. It explains that industry is one of the matching criteria, and company_name and limit are reasonably inferable from their names and defaults. Yet it does not clarify the exact role of the 'industry' parameter (e.g., as a filter vs. a hint) or how 'limit' behaves. This is partial compensation.

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 clearly identifies the tool's function: finding competitors of a company. It specifies the verb ('find') and the resource ('competitors of a company'), and elaborates with the matching criteria (industry, tech stack, target market), which distinguishes it from broader search tools like 'search_companies' or 'company_intelligence'.

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?

The usage is implied: use when you need competitor companies. However, it does not explicitly state when to prefer this tool over alternatives such as 'search_companies' or 'company_intelligence', nor does it mention any exclusions or conditions. The context is clear but the guidance is not explicit.

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

find_contacts_at_companiesA
Read-only
Inspect

Find people with a specific title/role at companies matching given criteria. Returns profile-first results (up to 50, emails HIDDEN, 0 credits) β€” do NOT call it repeatedly per company; one call covers the criteria. Reveal an individual email with find_email (4 credits per verified find). Examples: 'CTOs at funded SaaS companies', 'VPs of Engineering at AWS customers'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
titleYesJob title or role to find
industryNoIndustry for company discovery (Mode B)
locationNo
company_nameNoSpecific company name (Mode A: direct exec search)
company_sizeNo
technologiesNo
hiring_growthNo
funding_statusNoe.g. funded, Series A, bootstrapped
revenue_growthNo
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context beyond annotations: returns up to 50 profile-first results, emails are hidden, costs 0 credits, and one call covers multiple criteria. This gives the agent a clear picture of side effects and limitations, though it doesn't cover every possible behavior.

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 three sentences with no fluff. It front-loads the core purpose, then adds critical usage constraints, alternatives, and examples in a compact, scannable format. Every sentence earns its place.

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?

Given the tool's complexity (10 parameters, no output schema), the description covers the essential context: what it finds, how many results, email visibility, cost, and when not to call it. It lacks a detailed description of the return structure, but 'profile-first results' gives a reasonable expectation. It adequately handles the most important operational concerns.

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 only 40%, so the description needed to compensate. It adds general meaning via examples like 'funded SaaS companies' and 'AWS customers', implying use of industry, funding_status, and technologies filters. However, it does not explain most optional parameters (limit, location, company_size, hiring_growth, revenue_growth) and relies on the schema for Mode A/B distinctions. It provides partial but not complete compensation for low schema coverage.

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 clearly states a specific verb and resource: 'Find people with a specific title/role at companies matching given criteria.' It distinguishes itself from sibling tools like find_email by noting emails are hidden and from generic search tools by focusing on people at companies. Concrete examples ('CTOs at funded SaaS companies') further clarify intent.

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?

The description explicitly provides usage guidance: 'do NOT call it repeatedly per company; one call covers the criteria' and names the alternative tool for revealing emails ('Reveal an individual email with find_email'). This is exactly the kind of when/when-not guidance needed, and it also clarifies credit costs.

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

find_emailAInspect

Reveal the verified work email for ONE profile from a search_contacts result (profile-first results hide emails until revealed). Runs a Hunter->PDL->RocketReach waterfall and charges 4 credits ONLY when a verified email is found β€” a miss is free, and a contact already revealed or in the CRM is free. Pass the profile's full_name + company (and linkedin_url if shown). To reveal several, call this once per contact; when revealing many, first tell the user it costs 4 credits each and confirm.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNoContact's company (improves match accuracy)
full_nameYesContact's full name from the search result
last_nameNo
first_nameNo
linkedin_urlNoContact's LinkedIn URL from the search result
company_domainNoCompany domain if known, e.g. acme.com
Behavior5/5

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

With minimal annotations (only readOnly/destructive hints), the description fully discloses the credit cost (4 credits only on successful find), the waterfall of Hunter->PDL->RocketReach, and free conditions (miss, already revealed, or in CRM). This goes beyond annotations and gives critical 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.

Conciseness5/5

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

The description is efficiently structured with the purpose first, followed by cost/pricing, parameters, and batching guidance. Every sentence adds necessary information without redundancy, and the em-dash list format improves readability.

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?

The description covers purpose, cost, free conditions, and usage pattern. Though there is no output schema, the description implies the tool returns the revealed email but does not explicitly state the return format or what happens on a miss (e.g., null response). This is a minor gap but acceptable given the clear primary function.

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 description adds guidance on which parameters to prioritize: 'Pass the profile's full_name + company (and linkedin_url if shown)'. This clarifies the intent of parameters and improves on the schema descriptions.

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 clearly states the tool reveals a verified work email for one profile, using the verb 'reveal' and the resource 'verified work email'. It also distinguishes from sibling tools like search_contacts (which finds profiles) and validate_email (which validates), and mentions the profile-first hiding behavior.

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 specifies usage after a search_contacts result and gives concrete guidance for revealing multiple emails (call once per contact, confirm with user about credit costs). It does not explicitly compare to alternatives like enrich_contact or validate_email, but the context is strong.

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

generate_campaign_contentA
Read-only
Inspect

AI-generate email subject lines and body content for a campaign. Describe the goal, audience, and tone.

ParametersJSON Schema
NameRequiredDescriptionDefault
toneNoe.g. professional, friendly, urgent, casual
promptYesDescribe the campaign goal, audience, and key message
num_variantsNoNumber of subject/body variants to generate
campaign_typeNomyconvo (personal) or nextgen (bulk)
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds that it's AI-generated but doesn't disclose return format or side effects, which is acceptable given the 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.

Conciseness5/5

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

The single sentence is front-loaded and information-dense. Every word contributes to understanding the tool's function and usage, with no wasted content.

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?

Given the 4-parameter schema with full descriptions and annotations, the description adequately covers the tool's purpose and basic usage. It could mention output variants or return structure, but those are implicitly handled by the schema and purpose.

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 100%, so the schema documents all parameters. The description reinforces the prompt's purpose but doesn't add meaningful new semantics beyond what the schema already provides.

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 clearly states the tool AI-generates email subject lines and body content for a campaign, using a specific verb and resource. This distinguishes it from sibling tools like create_campaign or run_ai_report, which have different purposes.

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 by instructing the user to describe the goal, audience, and tone, implying when to use it. However, it doesn't explicitly mention alternatives or exclusions, so it doesn't earn a 5.

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

get_bounce_statsA
Read-only
Inspect

Get email bounce statistics β€” hard bounces, soft bounces, bounce rate by campaign or domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
campaign_idNo
Behavior2/5

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

The description mentions filtering 'by campaign or domain,' but the schema only includes 'campaign_id'β€”there is no domain parameter, making the description misleading. It also does not disclose pagination or how the 'limit' parameter behaves. Annotations indicate read-only, but this mismatch is a transparency issue.

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 a single sentence, front-loaded with the main action and specific output categories. No redundant words or filler, making it highly concise.

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?

The tool is simple, but the description leaves gaps: the domain filter is not supported by the schema, there is no output structure described, and no usage guidelines. It is minimally complete but could mislead an agent.

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 0%, so the description must compensate. It hints that 'campaign_id' is for campaign filtering, but it does not explain 'limit' and introduces 'domain' without a corresponding parameter, adding confusion rather than clarity.

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 clearly states the tool's purpose: 'Get email bounce statistics' with specific stats (hard bounces, soft bounces, bounce rate) and dimensions (by campaign or domain). This distinguishes it from sibling tools like get_unsub_stats or get_campaign_stats, which focus on other metrics.

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 implies usage for bounce-related analysis and mentions filtering by campaign or domain, giving context for when to use it. However, it does not explicitly compare to alternatives or state exclusions, so it falls 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_campaign_statsB
Read-only
Inspect

Get performance stats for a specific campaign β€” opens, clicks, replies, bounce rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idNo
campaign_nameNo
Behavior3/5

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

Annotations already declare readOnlyHint true and destructiveHint false, so the description only adds the list of included metrics, which is useful but not extensive. It does not disclose return format, time ranges, or aggregation behavior, so it adds some context but falls short of rich behavioral detail.

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 a single sentence, front-loaded with the main idea, and includes a compact list of metrics. Every word contributes value; there is no fluff or repetition.

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?

While the description is clear about the purpose and metrics, the lack of parameter guidance and absence of an output schema leave gaps. The agent may not know how to specify the campaign or what the exact return structure is, though the listed metrics provide a partial picture.

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?

The schema has two parameters (campaign_id, campaign_name) with zero description coverage, and the tool description does not mention them at all. There is no explanation of how to identify the campaign, whether either/both parameters are needed, or their expected formats, leaving the agent without necessary guidance.

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 clearly states the verb 'Get' and the resource 'performance stats for a specific campaign', listing specific metrics (opens, clicks, replies, bounce rate). It distinguishes from sibling tools like get_dashboard_stats and get_bounce_stats by specifying campaign-level detail.

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?

Usage is implied rather than explicit: the description indicates this is for a specific campaign's stats, but it does not state when to use it over alternatives or include any exclusions. Sibling tool names provide contextual differentiation, but the description itself offers no direct guidance.

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

get_contact_detailsA
Read-only
Inspect

Get full details of a single contact by email or contact ID β€” all enriched fields, activity history, and campaign membership.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNo
contact_idNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds value by disclosing the return scope (enriched fields, activity history, campaign membership), which is helpful given no output schema. However, it doesn't discuss potential errors or response format.

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 a single, information-dense sentence with no redundant phrases. It front-loads the core action and includes compound object details efficiently.

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 simple read-only tool with two optional parameters and no output schema, the description covers the key invocation aspects (what it returns, how to specify the contact) reasonably well. It lacks explicit usage guidance among siblings, but the simplicity of the tool reduces the need for more.

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%, so the description must compensate. It identifies 'email' and 'contact ID' as the two lookup parameters, but it doesn't clarify whether they are mutually exclusive or if both are accepted together. This adds partial meaning beyond the bare schema names.

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 clearly states the action ('Get full details of a single contact') and specifies the resource ('contact') and the lookup keys ('email or contact ID'). It distinguishes this from sibling search/list tools by focusing on single-contact retrieval with enriched fields, activity history, and campaign membership.

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 implies usage when you have a specific contact identifier and need a complete record. It doesn't explicitly mention alternatives or exclusions, but the context is clear enough that it's for single-contact lookups rather than bulk operations.

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

get_credit_balanceA
Read-only
Inspect

Show the user's current credit balance β€” how many search credits remain and have been used.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds that the balance shows both remaining and used credits, but no other behavioral details (e.g., real-time nature, units, edge cases) are disclosed. This is adequate but not rich.

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 a single sentence that is front-loaded with the main action and includes just enough detail. Every word adds value, with no filler or 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?

For a simple read-only tool with zero parameters and good annotations, the description fully describes the tool's function. No output schema exists, but the return value is implied by the description (remaining and used credits). Complete for the tool's complexity.

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 is no burden on the description to explain them. The baseline for 0 params is 4, and the description correctly focuses on functionality instead of params.

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 clearly states the tool's purpose: 'Show the user's current credit balance' with specific details about remaining and used credits. This is a specific verb+resource construction, and it is distinct from all sibling tools which focus on CRM, campaigns, or contacts.

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 implies usage context (checking credit balance) and is clearly the go-to tool for that need. No explicit alternatives are mentioned, but given the lack of similar siblings, this is sufficient.

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

get_dashboard_statsA
Read-only
Inspect

Show account overview stats: total contacts, active campaigns, deals in pipeline, open rate, and recent activity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds the specific metrics returned, which is useful context but doesn't disclose any additional behavior such as rate limits, pagination, or time ranges. This meets the baseline with annotations present.

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 a single, front-loaded sentence that lists the key stats without any filler. Every word earns its place, making it highly concise and easy to parse.

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 zero-parameter read-only tool with good annotations and no output schema, the description is sufficient. It lists the major stats, though 'recent activity' is somewhat vague and could benefit from clarification. Overall, it provides enough context for an agent to use the tool 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?

There are no parameters, so the baseline is 4. The description enriches the empty schema by listing the metrics included in the response, giving the agent expectations without needing parameter explanations.

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 clearly states the tool shows account overview stats and enumerates specific metrics (total contacts, active campaigns, deals in pipeline, open rate, recent activity). This distinguishes it from sibling tools like get_campaign_stats or get_deals_pipeline, which focus on a single area.

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 phrase 'account overview stats' provides clear context for when to use this tool: when a high-level summary of account health is needed. It doesn't explicitly mention alternatives, but the scope is clear from the description and the tool's name.

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

get_deals_pipelineA
Read-only
Inspect

Show the user's Xmagnet deals pipeline with stage breakdown, values, and win rate analytics.

ParametersJSON Schema
NameRequiredDescriptionDefault
status_filterNoopen
include_analyticsNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, establishing safety. The description adds valuable behavioral context by specifying the output content (stage breakdown, values, win rate analytics) and user scoping, going beyond the annotations without contradicting them.

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 a single, perfectly sized sentence that front-loads the main purpose and key output elements. No wasted words.

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?

The tool has no output schema and only minimal parameter information in the schema. The description explains the high-level output but leaves important behavior unclear, such as how status_filter changes results (especially the default 'open' filter) and what happens when include_analytics is false. It is adequate but not fully complete.

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 0%, so the description must compensate for parameter meaning. It does not mention status_filter or include_analytics at all, leaving the agent to rely solely on the enum and defaults in the schema. This is a significant gap for a tool with two optional parameters.

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 'Show the user's Xmagnet deals pipeline with stage breakdown, values, and win rate analytics' clearly identifies a specific verb ('Show'), resource ('deals pipeline'), and includes distinguishing details (stage breakdown, values, win rate analytics) that differentiate it from sibling tools like get_ghost_pipeline or get_dashboard_stats.

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 on what the tool does and its scope (user's pipeline), allowing an agent to infer appropriate usage. However, it does not explicitly mention when not to use it or name alternative tools, so it falls 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_form_submissionsA
Read-only
Inspect

Get the list of people who filled a specific form (form leads/submissions). Use when asked 'who filled my form', 'show form leads', 'form submissions'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax submissions to return (default 20, max 50).
form_idNoID of a specific form (from list_forms). Omit to get recent submissions across all forms.
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Get the list' is consistent. The description adds the semantic nuance that results are 'people', implying contact profiles, but does not disclose behaviors like pagination limits or cross-form aggregation beyond what the schema already provides.

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?

Two short sentences, front-loaded with the description of the tool's action, followed by example queries. No waste, every word adds value.

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 low complexity (2 optional params, no output schema), a clear read operation, and annotations covering safety, the description sufficiently explains what the tool does and when to use it. Schema fills parameter details, so no gaps remain.

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 covers 100% of parameters with descriptions, so the description doesn't carry extra param semantics. The phrase 'specific form' aligns with form_id, but adds no new meaning beyond the schema. Baseline 3 is appropriate.

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 clearly states the tool retrieves list of people who filled a form (form leads/submissions), using a specific verb and resource. It distinguishes from siblings like list_forms by focusing on submissions rather than form definitions.

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?

It explicitly provides natural language triggers ('who filled my form', 'show form leads', 'form submissions') that signal when to use the tool. This is direct usage guidance, even though it doesn't name alternatives, the tool is unique enough that exclusions aren't necessary.

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

get_ghost_pipelineA
Read-only
Inspect

Find stale contacts (90+ days no follow-up) that now have fresh growth signals like hiring, funding, or job changes β€” warm re-engagement opportunities.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
signal_filterNo
min_days_staleNo
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the behavioral criteria (staleness threshold, signal types) but does not disclose other aspects like default limits, filtering behavior, or return format. This is adequate but not rich.

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 a single, well-structured sentence that front-loads the tool's purpose and key criteria. Every phrase earns its place without verbosity or repetition.

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?

The tool has 3 parameters, no output schema, and no parameter descriptions in the schema. The description conveys the core use case but leaves out details like the 'limit' parameter, potential filtering syntax, and what the returned data looks like, making it only partially complete.

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%, so the description must compensate. It explains min_days_stale (90 days implied) and signal_filter types (hiring, funding, job changes), but does not clarify the 'limit' parameter or how signal_filter is used exactly. Partial compensation.

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 uses a specific verb ('Find') with a clear resource ('stale contacts') and defines precise criteria (90+ days no follow-up, fresh growth signals). It clearly differentiates from sibling tools like search_contacts or get_dashboard_stats by focusing on warm re-engagement opportunities.

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 (identifying re-engagement opportunities from stale contacts with new signals). It does not explicitly state when not to use it or name alternatives, but the specific scenario is unambiguous.

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

get_icpA
Read-only
Inspect

Show the user's Ideal Customer Profile (ICP) β€” who they sell to, industries, titles, company size, pain points, and value prop.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds value by listing the specific data fields returned (industries, titles, company size, pain points, value prop). This gives a clear picture of what the tool exposes without contradicting annotations.

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 a single, well-structured sentence that front-loads the core purpose ('Show the user's Ideal Customer Profile') and then expands with relevant detail. There is no wasted verbiage.

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?

For a read-only tool with no parameters and no output schema, the description fully covers what the tool does and returns. The annotations handle safety traits, and the list of ICP components provides sufficient context for an agent to invoke 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 the schema provides no parameter semantics. The description compensates by explaining what data the tool returns, making the lack of parameters a non-issue. Baseline of 4 is appropriate.

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 clearly states the tool's function: 'Show the user's Ideal Customer Profile (ICP)'. It specifies the exact resource and provides a detailed breakdown of what the ICP includes (industries, titles, company size, pain points, value prop), effectively distinguishing it from sibling tools like suggest_icp which implies generating a new profile.

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?

The description implies its usage by stating it shows the user's current ICP, which is useful for viewing existing data. However, it does not explicitly mention when to use this tool versus alternatives like suggest_icp, nor does it provide any exclusion criteria.

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

get_unsub_statsA
Read-only
Inspect

Get unsubscribe statistics β€” unsubscribe rate, top unsubscribed campaigns, and unsubscribe trends.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
campaign_idNo
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description is consistent with that. However, the description adds no behavioral details beyond the safety profile, such as pagination, rate limits, or how data is scoped. It only lists output content, which is more about purpose than behavior.

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, focused sentences that immediately state the purpose and key output categories. There is no verbose or redundant wording, and it is appropriately front-loaded.

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?

The tool is simple and the description captures its core purpose, but the omission of parameter explanations and the absence of an output schema leave the agent under-informed for correct invocation. It is an adequate description for a basic stats tool but not comprehensive.

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?

The input schema has 0% description coverage, and the description does not explain the 'limit' or 'campaign_id' parameters. The agent must infer from their names: whether 'limit' applies to the number of top campaigns or trend points, and how 'campaign_id' filters results. The description fails to compensate for the schema gap.

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 clearly specifies the verb 'Get' and the resource 'unsubscribe statistics', and enumerates specific outputs: unsubscribe rate, top unsubscribed campaigns, and unsubscribe trends. This distinguishes it from sibling tools like get_bounce_stats or get_campaign_stats by focusing uniquely on unsubscribe metrics.

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?

The description states what the tool returns but provides no explicit when-to-use guidance or comparison with alternative stats tools. The use case is implied by the name and sibling context, but there is no direct statement about when to choose this over get_bounce_stats or get_campaign_stats.

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

list_campaignsA
Read-only
Inspect

List existing email campaigns with their status, sent count, open/click rates.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNoFilter by status: draft, active, completed, paused
campaign_typeNomyconvo or nextgen
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so no contradiction. The description adds value by indicating the return includes status, sent count, and open/click rates, which helps set expectations. It does not disclose pagination or filtering behavior, but these are partially covered by the schema.

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 a single concise sentence that front-loads the action and resource. It contains no redundant words and conveys the core purpose and return fields efficiently.

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 simple list tool with optional parameters and no output schema, the description is mostly adequate. It states what is listed and what metrics are returned. However, it lacks nuances like default behavior, filtering options, or differentiation from stat-focused siblings, leaving some gaps for an agent deciding between tools.

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 67% (status and campaign_type have descriptions, limit does not). The description does not explain parameter usage or add meaning beyond the schema. For instance, it does not clarify that 'limit' controls the number of returned campaigns. Baseline is 3 due to moderate schema coverage, and the description does not compensate for the missing limit semantics.

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 clearly states the verb 'List' and the resource 'existing email campaigns', and specifies the returned fields (status, sent count, open/click rates). It distinguishes from sibling tools like get_campaign_stats and list_campaign_templates by focusing on listing campaigns with their metrics.

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?

The description implies usage for listing campaigns but provides no explicit when-to-use or alternative guidance. It does not mention related tools like get_campaign_stats for single-campaign stats or list_campaign_templates. Usage is inferred from the name and schema rather than stated.

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

list_campaign_templatesA
Read-only
Inspect

List available email campaign templates (system + custom). Use for NextGen campaigns or when user says 'show templates', 'template gallery', 'use a template'. Returns templates with subject, category, and preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoOptional filter: product, lead_gen, event, webinar, follow_up, newsletter
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description only needs to add extra context. It adds that the tool returns templates with subject, category, and preview, and notes the system vs. custom distinction. This is useful behavioral detail beyond the annotations.

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 sentences long, with the first sentence stating the core purpose and the second providing usage guidance and return content. Every word is functional, and the structure is front-loaded with the action and resource.

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?

For a simple read-only list tool with one optional parameter and no output schema, the description is complete. It tells the agent what the tool does, when to use it, and what it returns. No gaps are apparent.

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 input schema has 100% description coverage for the single optional 'category' parameter, listing all filter options. The description does not add any additional parameter semantics, but because the schema fully explains the parameter, the baseline of 3 is appropriate.

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 uses the specific verb 'List' and identifies the resource as 'email campaign templates' with the scope 'system + custom'. It clearly distinguishes this from sibling tools like list_campaigns, which lists campaigns rather than templates, and save_campaign_template, which is for saving templates.

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 explicitly states when to use the tool: for 'NextGen campaigns' or when the user says 'show templates', 'template gallery', or 'use a template'. It provides clear contextual triggers, but it does not explicitly mention alternatives or exclusion cases, which prevents a perfect score.

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

list_formsA
Read-only
Inspect

List all lead capture forms with their submission counts and URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to repeat that. It adds useful context about the return fields and the 'all' scope, which is sufficient for a simple read-only tool.

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?

Single sentence with no wasted words. Front-loaded with the action and resource, and efficiently conveys what the tool returns.

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?

For a zero-parameter read-only tool with annotations, the description fully covers what the tool does and what it returns. No gaps in context for an agent to select and invoke 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?

Tool has zero parameters, so the description carries no parameter burden. Per baseline for 0 params, a score of 4 is appropriate.

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?

Clearly states it lists all lead capture forms, specifying return content (submission counts and URLs). This distinguishes it from siblings like list_landing_pages and get_form_submissions.

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 implies when to use it: when a full overview of lead capture forms is needed. However, it doesn't explicitly name alternatives or exclusions, so slight deduction for missing comparative guidance.

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

list_landing_pagesA
Read-only
Inspect

List all landing pages with their view counts and public URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, establishing a safe read operation. The description adds that view counts and public URLs are returned, providing useful output context, but it does not disclose additional behavioral traits such as pagination, ordering, or whether all landing pages include unpublished ones.

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 a single, straightforward sentence with no filler words. It efficiently conveys the operation and output fields.

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?

Given the tool's simplicity (no parameters and no output schema), the description sufficiently covers what the tool does and what it returns. It clearly indicates the resource and key fields, making it complete for its intended purpose.

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 is nothing to explain. According to the rubric, 0 parameters receives a baseline score of 4, and the description does not need to compensate for any missing parameter information.

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 clearly states the tool lists all landing pages and specifies the return fields (view counts and public URLs). This distinguishes it from sibling tools like create_landing_page and list_forms, which handle different resources or actions.

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?

The description implies usage when a user needs landing page data, but it provides no explicit alternative guidance or exclusions. Sibling tools like list_forms and list_campaigns cover other resources, but the description does not compare them or state when to prefer this tool.

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

list_segmentsA
Read-only
Inspect

List all saved contact segments (reusable audiences) for this tenant. Use when user says 'show my segments', 'list audiences', 'what segments do I have', or when offering audience options during campaign creation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read nature is established. The description adds tenant scoping and the 'reusable audiences' interpretation, but doesn't disclose return format or edge cases. With annotations covering safety, this is adequate but not rich.

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: the first defines the action and resource, the second provides memorable usage triggers. Every sentence earns its place, and it is front-loaded with the core purpose.

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 parameterless list tool with a simple purpose, the description covers the essential aspects: what is listed, the scope (tenant), and when to use it. The lack of an output schema is acceptable given the simplicity of the expected return.

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 the baseline is 4. The description correctly avoids inventing parameter details and adds no unnecessary complexity.

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 clearly states the action ('List') and the resource ('all saved contact segments'), further clarifying they are 'reusable audiences' for the tenant. This specific verb+resource combination distinguishes it from sibling tools like list_campaigns or list_forms.

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 explicit user phrases ('show my segments', 'list audiences') and a specific use case ('when offering audience options during campaign creation'). However, it does not explicitly mention alternative tools or when not to use it, so it falls short of full guidance.

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

list_sequencesA
Read-only
Inspect

List all email sequences (multi-step drip campaigns) with their status and step counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNoFilter by status: draft, active, paused, completed
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds the behavioral detail that results include status and step counts, but it doesn't mention pagination or the default limit behavior, especially since the description says 'all' while a limit parameter exists.

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 a single concise sentence that is front-loaded with the verb and resource. It contains no filler words and efficiently communicates core purpose.

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 simple list tool with read-only annotations and optional params, the description is mostly complete. It defines the resource and mentions return fields. However, the word 'all' conflicts with the limit parameter's default of 20, which could mislead about pagination. The lack of an output schema is mitigated by mentioning status and step counts.

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 50% (status has a description, limit does not). The description does not explain the limit parameter or provide any additional meaning beyond the schema. It mentions no parameters at all, failing to compensate for the gap.

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 clearly states the tool lists email sequences, clarifying they are multi-step drip campaigns. It also specifies the returned information (status and step counts), distinguishing it from sibling list tools like list_campaigns or list_forms.

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?

The description implies use for email sequences but does not explicitly contrast with alternatives like list_campaigns or list_segments. It lacks clear when-to-use or when-not-to-use guidance, though the distinct resource name provides some contextual direction.

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

load_more_companiesA
Read-only
Inspect

Load more companies from a previous search_companies result. Call this when the user says 'show more', 'load more', or 'more companies'. Pass the same criteria as the original search plus offset = number of companies already shown.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetYesNumber of companies already shown
industryYes
locationNo
company_sizeNo
technologiesNo
hiring_growthNo
funding_statusNo
revenue_growthNo
product_launchesNo
recent_acquisitionsNo
Behavior3/5

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

Annotations already declare readOnlyHint: true and destructiveHint: false, so the read-only nature is known. The description adds useful context about being a follow-up to a previous search and how offset is calculated, but does not detail return format or edge cases, which is acceptable given the annotations.

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 sentences, front-loaded with the purpose, then usage instructions. Every sentence earns its place with no unnecessary words.

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 pagination tool with no output schema and a complex parameter set, the description covers the key context: prior result dependency, trigger phrases, and offset meaning. Minor omissions like default limit or return structure are not critical since the tool is essentially a paged version of search_companies.

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 description coverage is only 9% (offset is described), but the description compensates by telling the caller to pass the same criteria as the original search, giving all 11 parameters collective meaning. It specifically explains offset as 'number of companies already shown', which is crucial for correct usage.

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 clearly states 'Load more companies from a previous search_companies result' with a specific verb and resource. It distinguishes itself from the sibling search_companies and load_more_contacts by targeting pagination of company results.

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 lists trigger phrases ('show more', 'load more', 'more companies') and instructs to pass the same criteria plus offset. It implies a prerequisite of a prior search but does not explicitly call out when not to use or name alternative tools, so it falls 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.

load_more_contactsA
Read-only
Inspect

Load more contacts from a previous search result. Call when user says 'show more', 'load more', or 'more contacts/investors'. Routes automatically: query β†’ direct waterfall; title+industry β†’ company waterfall; investor=true β†’ more investors. Pass offset = number of contacts already shown. Pass already_shown_urls for investors.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNoOriginal search query (for direct contact search load more)
titleNoJob title (for company waterfall or investor load more)
offsetNoNumber of contacts already shown
industryNoIndustry (for company waterfall load more)
investorNoSet true to load more investors
locationNo
already_shown_urlsNoLinkedIn URLs already shown (investors only)
Behavior4/5

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

Annotations declare read-only and non-destructive, and the description adds behavioral context: it requires offset and already_shown_urls, and describes automatic routing. This goes beyond the annotations without contradicting them.

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 purpose, and each sentence adds value: trigger phrases, routing, and key parameters. No wasted words.

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?

Given no output schema, the description covers routing and essential parameters well. Return format is not specified, but the tool's purpose and pagination behavior are clear.

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 covers 75% of parameters, and the description clarifies usage for offset ('number of contacts already shown') and already_shown_urls (investors only). This adds practical meaning beyond field names.

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 it loads more contacts from a previous search result with a specific verb and resource. The routing logic (direct waterfall, company waterfall, investors) distinguishes it from sibling search tools like search_contacts and search_investors.

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 lists trigger phrases ('show more', 'load more', 'more contacts/investors') and explains routing. Does not name alternatives like load_more_companies, but the trigger guidance is clear.

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

preview_upload_mappingAInspect

STEP 1 of contact upload. Given the column headers from the user's spreadsheet/CSV, returns how each column maps to an Xmagnet field (standard fields + the tenant's saved custom fields). ALWAYS call this before upload_contacts and show the mapping to the user for confirmation. Unrecognized columns are auto-assigned to free custom_field slots.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnsYesExact column header names from the user's file
Behavior4/5

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

The description discloses key behavioral traits beyond annotations: unrecognized columns are auto-assigned to free custom_field slots, and the mapping includes standard fields plus tenant custom fields. It does not explicitly state whether this call has side effects, and annotations (readOnlyHint=false) suggest it may not be purely read-only, but the described behavior is consistent and informative. A small gap is not clarifying if the mapping is persisted or just returned.

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 concise: three sentences, each earning its place. It front-loads the step context ('STEP 1'), then states the function, and finally provides an imperative usage note. No redundancy or unnecessary detail.

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?

Given the tool's simplicity (one param, no output schema), the description covers the essential details: purpose, usage, and a key behavior (auto-assignment). It mentions tenant-specific custom fields, adding useful context. It could be more complete by describing the return format or edge cases, but the absence of an output schema lowers the burden. Overall, it is adequately complete for an agent to select and invoke 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?

Schema coverage is 100% with a description for 'columns' ('Exact column header names from the user's file'). The description adds value by clarifying that these are headers from a spreadsheet/CSV and by explaining how unrecognized columns are treated. This goes beyond the raw schema, helping the agent understand the parameter's role and expected behavior.

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 clearly states the tool's function: given column headers, it returns a mapping to Xmagnet fields. It also positions it as 'STEP 1 of contact upload', distinguishing it from sibling tools like upload_contacts. The verb 'returns' and specific resource ('mapping to an Xmagnet field') make the purpose unambiguous.

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?

Explicitly instructs to 'ALWAYS call this before upload_contacts' and to 'show the mapping to the user for confirmation'. This gives a clear when-to-use directive and differentiates from the alternative upload_contacts. It also implies this is a prerequisite step, providing strong usage guidance.

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

run_ai_reportA
Read-only
Inspect

Run an AI-powered analytics report on any Xmagnet data. Ask any question in plain English β€” contacts, campaigns, deals, credits, bounces, or unsubscribes. Returns a data table with numbers. Use for: 'Show contacts by industry', 'Top campaigns by open rate', 'Deal pipeline value by stage', 'Credit usage this month', 'Bounce rate by domain', 'Contacts added this week', 'Campaign performance comparison', 'Sequence step funnel', 'Win rate by deal source'.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYesAnalytics question in plain English
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds valuable behavioral context: it is AI-powered, accepts plain English questions, and returns a data table with numbers. It also clarifies that it covers 'any Xmagnet data' with examples, which helps set expectations for scope.

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 description is suitably structured: an opening sentence states the core purpose, a second sentence defines the output, and the 'Use for:' list provides concrete examples. While the example list is long (nine items), each example earns its place by illustrating different data categories. It is front-loaded with the most important information.

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?

Given the tool's simplicity (one parameter, no output schema), the description is fairly complete. It explains what the tool does, what it returns, and provides examples. It does not mention limitations (e.g., unsupported question types) or execution details like latency, but these are not critical for a read-only analytics tool with a single input.

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 for the single 'question' parameter is 100%, so baseline is 3. The description adds meaning beyond the schema by providing concrete example questions, demonstrating the expected format and breadth of queries. This helps the agent formulate valid inputs.

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 clearly states the tool's purpose: 'Run an AI-powered analytics report on any Xmagnet data.' It specifies a verb (run), resource (analytics report), and scope (any Xmagnet data), and distinguishes itself from sibling tools like get_campaign_stats and get_dashboard_stats by emphasizing natural-language questions and broad data coverage.

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 usage context with a 'Use for:' section listing nine example questions covering various data domains (contacts, campaigns, deals, credits, bounces, unsubscribes). It implies this tool is for ad-hoc analytics questions in plain English, but it does not explicitly state when to prefer alternative specific stats tools over this one, hence not a 5.

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

save_campaign_templateAInspect

Save the current campaign content as a reusable template for future campaigns. Use when user says 'save this as template', 'create new template'.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesEmail body (HTML or plain text)
nameYesTemplate name
subjectYesEmail subject line
categoryNoCategory: product, lead_gen, event, webinar, follow_up, newsletter
Behavior3/5

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

Annotations declare write operation (readOnlyHint=false) and non-destructive (destructiveHint=false), so description doesn't need to restate that. It adds context about the template being reusable, but doesn't disclose behaviors like overwriting existing templates or whether the current campaign context is required. This is acceptable but could be more transparent.

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?

Two sentences, front-loaded with the core action and followed by usage triggers. Every word earns its place, with no redundant filler.

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 simple save operation with no output schema and full schema coverage, the description provides sufficient context. It could mention what happens on duplicate names or whether it snapshots the current campaign, but overall it's complete for the tool's simplicity.

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 100%, with all four parameters clearly described (name, subject, body, category). The description itself doesn't add parameter-level meaning, but the schema already does. Since the baseline is 3 for full schema coverage, this score is appropriate.

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 clearly states the verb ('Save') and resource ('current campaign content as a reusable template'), making it distinct from sibling tools like create_campaign or list_campaign_templates. It also includes example user triggers ('save this as template'), reinforcing the tool's exact purpose.

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 explicitly says 'Use when user says 'save this as template', 'create new template'', which provides clear context for when to invoke this tool. It doesn't mention alternatives or exclusions, but the trigger phrases are sufficient to distinguish it from other creation tools.

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

save_contacts_to_crmAInspect

Save contacts from a search result into Xmagnet. Pass the contacts array from search_contacts or find_contacts_at_companies.

ParametersJSON Schema
NameRequiredDescriptionDefault
contactsYesArray of contact objects to save
Behavior2/5

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

The description only states it saves contacts, without revealing side effects such as duplicate handling, whether existing contacts are updated, or any required fields. Annotations indicate a write operation (readOnlyHint=false), but the description adds no behavioral details beyond what 'save' implies.

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 sentences, front-loaded with the core purpose, and provides the critical input guidance without extraneous detail. Every word earns its place.

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 tool with a single parameter and no output schema, the description is adequately complete: it states the action, target system, and input source. It omits potential caveats like duplicate handling, but given the tool's simplicity, this is acceptable.

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 schema covers the contacts parameter, and the description adds value by specifying the expected array comes from search_contacts or find_contacts_at_companies. This helps the agent source the data correctly, though it does not detail the internal structure of the contact objects.

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 clearly states the tool saves contacts from a search result into Xmagnet, using a specific verb (save) and resource (Xmagnet). It also differentiates from siblings by specifying the input source (contacts array from search_contacts or find_contacts_at_companies), making its purpose unambiguous.

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 by instructing to pass the contacts array from search_contacts or find_contacts_at_companies, implying it should be used after those search tools. It does not explicitly name alternatives or exclusions, but the guidance is sufficient for typical usage.

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

scan_deal_intentA
Read-only
Inspect

Scan emails and campaigns for contacts showing buying intent. Returns ranked intent signals.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds useful context about scanning emails/campaigns and returning ranked intent signals. It does not contradict annotations and explains the data sources and output nature.

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?

Two concise sentences directly state the action and output, with no redundant wording. Every word earns its place, making it highly efficient and front-loaded.

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 read-only tool with no parameters, the description covers purpose, data sources, and return type. It could elaborate on the structure of 'intent signals', but within the given context it is sufficiently complete.

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 schema coverage is trivially 100%. The description appropriately avoids param details, meeting the baseline for zero-param tools.

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 uses the specific verb 'scan' with resources 'emails and campaigns' and outcome 'contacts showing buying intent', plus 'returns ranked intent signals', clearly distinguishing it from sibling tools like analyze_contacts or company_intelligence.

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 implies usage for identifying buying-intent contacts from email/campaign sources, providing clear context. However, it does not explicitly mention alternatives or exclusions, so it falls short of full comparative guidance.

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

search_companiesA
Read-only
Inspect

Search for companies by industry, tech stack, funding status, or growth signals. Examples: 'funded SaaS companies in NY', 'companies using Salesforce with 100+ employees'. Default limit is 5 results per page β€” use load_more_companies to get the next 5.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
industryNo
locationNo
company_sizeNo
technologiesNo
hiring_growthNo
funding_statusNo
revenue_growthNo
product_launchesNo
recent_acquisitionsNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral detail: default limit of 5 results per page and the need to use load_more_companies for additional results. This is meaningful beyond the annotations, though it doesn't describe the exact return structure.

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 extremely concise at just two sentences. It front-loads the purpose, then provides examples and pagination guidance without any wasted words.

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 search tool with no required parameters and no output schema, the description provides sufficient context to invoke the tool correctly: it explains what you can filter by, gives example queries, and mentions the pagination behavior. It doesn't describe the return fields, but that is less critical for a search tool when the name implies what is returned.

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?

Despite having 0% schema description coverage, the description compensates by introducing the key parameter categories (industry, tech stack, funding status, growth signals) and showing examples that imply parameters like location, company_size, and technologies. It also mentions the limit default. However, it does not explicitly explain all 11 parameters, so it is not a complete replacement.

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 clearly states the tool's function with a specific verb ('Search') and resource ('companies'), and lists the filtering dimensions (industry, tech stack, funding status, growth signals). It also provides two concrete examples, distinguishing it from sibling tools like search_contacts by focusing on companies.

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 usage context with examples and explicitly points to the load_more_companies tool for pagination, which is a good alternative reference. However, it does not explicitly exclude other company-related tools like company_intelligence or find_competitors, so it lacks full differentiation guidance.

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

search_contactsA
Read-only
Inspect

Search for contacts by title, company, or query. Searches saved Xmagnet contacts first (free, instant), then a profile-first prospecting page of up to 50 profiles (free, emails HIDDEN). Examples: 'CTOs in Denver', 'John Smith at Google', 'VPs of Sales at SaaS startups'. Emails are not included β€” to reveal one, call find_email for that person (4 credits per verified find). Use load_more_contacts for the next page.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesNatural language search query
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses that saved contact searches are free and instant, the profile page hides emails, revealing emails costs credits, and load_more_contacts handles pagination. This provides rich behavioral context for side effects and costs.

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 four sentences long, each adding distinct value: operation, behavior, examples, and alternatives. It is front-loaded with the most important information and contains no filler.

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?

Despite lacking an output schema, the description thoroughly explains the two-phase search, hidden emails, credit cost for reveal, and pagination, giving the agent a complete picture of expected results and follow-up actions.

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 query parameter is well illustrated with natural language examples, and the description implies the limit's role via 'up to 50 profiles' and pagination guidance. However, the limit parameter's ability to go up to 200 is not explicitly described, leaving a small ambiguity.

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 opens with a clear statement: 'Search for contacts by title, company, or query.' It provides concrete example queries and distinguishes itself from sibling tools by explicitly mentioning find_email for email reveals and load_more_contacts for pagination.

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?

Usage guidance is explicit: it notes that saved Xmagnet contacts are searched first, then a free profile page; it instructs to call find_email for email reveal and load_more_contacts for subsequent pages. This clearly delineates when to use this tool versus alternatives.

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

search_crm_contactsA
Read-only
Inspect

Search contacts already saved in Xmagnet. ALWAYS call this tool immediately when the user asks to show, list, or retrieve their contacts/people. Call with empty parameters {} to return all contacts (up to 50). Includes enriched fields: company, title, industry, city, country, LinkedIn, skills, lifecycle stage, score. No credits deducted β€” reads from saved Xmagnet contacts only.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
limitNo
queryNoFree-text search across name/email/company/title
offsetNoSkip N contacts for pagination / load more
skillsNo
companyNo
countryNo
industryNo
job_titleNo
contact_statusNo
exclude_bouncedNo
lifecycle_stageNoe.g. lead, prospect, customer
exclude_unsubscribedNo
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds valuable context beyond that: no credits are deducted, it reads only from saved Xmagnet contacts, returns up to 50 contacts with empty params, and includes enriched fields. This gives a clear picture of cost, scope, and behavior without contradicting annotations.

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 three sentences, front-loaded with the most critical directive ('ALWAYS call this tool immediately'). Every sentence adds value: purpose, usage guidance, and key behavioral details. No fluff or redundancy.

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?

Given the tool's complexity (13 params, no output schema), the description covers the essentials: core use case, default behavior, credit implications, and what data is included. It could be more complete by mentioning pagination details or filter combination, but the strong annotations and clear usage guidance make it sufficient for most cases.

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 only 23%, so the description should compensate for undocumented parameters. It does add useful high-level guidance (empty params returns all contacts), and the parameter names (city, company, skills) are self-explanatory. However, it doesn't explain filter behavior or relationships between parameters, leaving room for ambiguity with 13 parameters.

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 clearly states the tool searches contacts saved in Xmagnet, with a specific verb ('Search') and resource ('contacts'). It explicitly differentiates from siblings by noting 'reads from saved Xmagnet contacts only' and 'No credits deducted', making it distinct from external search tools like search_contacts or find_contacts_at_companies.

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 explicit when-to-use guidance: 'ALWAYS call this tool immediately when the user asks to show, list, or retrieve their contacts/people.' It also advises calling with empty parameters to return all contacts. However, it doesn't explicitly mention when not to use it or alternatives, so it falls short of a full 5 by the rubric.

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

search_investorsA
Read-only
Inspect

Find VCs and angel investors by stage, sector, or geography. Credits are deducted per search.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
titleNoinvestor
industryNo
locationNo
Behavior4/5

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

Annotations already mark the tool as read-only and non-destructive; the description adds important cost information ('Credits are deducted per search'), which is valuable behavioral context beyond the annotations.

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 redundancy. Every word adds value: the purpose and the cost warning are both front-loaded and clear.

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?

For a simple search tool, the description provides core purpose and cost but omits parameter semantics and output expectations. Given no output schema and minimal annotations, it is adequate but leaves room for more detail.

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 0%, so the description must compensate. It roughly maps 'sector' to industry and 'geography' to location, but leaves 'limit' and 'title' unexplained, and mentions 'stage' which has no corresponding schema parameter.

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 clearly states the tool finds VCs and angel investors, with a specific verb ('Find') and criteria (stage, sector, geography). This distinguishes it from sibling tools like search_companies and search_contacts.

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?

The use case is implied (when you need investors), but there is no explicit guidance on when to prefer this over alternatives or when not to use it. No exclusions or alternative tool references are provided.

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

show_suggestionsA
Read-only
Inspect

Display a menu of common xmagnet actions β€” search contacts, find companies, view pipeline, manage campaigns, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds content context ('common xmagnet actions') but no additional behavioral traits like pagination or permissions, which is acceptable for a simple menu tool.

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 a single, front-loaded sentence that efficiently conveys purpose with relevant examples. Every word earns its place β€” no redundancy or filler.

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?

For a zero-parameter tool with no output schema and read-only annotations, the description fully explains what the tool does. It is complete for an agent to select and invoke 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 schema coverage is trivially 100%. The baseline for 0 parameters is 4, and the description adds meaning by specifying what the menu displays.

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 clearly states the tool displays a menu of common xmagnet actions, with specific examples. This distinguishes it from sibling tools like search_contacts or find_companies, which perform the actions themselves.

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 context is clear: use this tool to show a menu of available actions. It does not explicitly state when not to use it or name alternatives, but the menu nature is self-explanatory.

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

suggest_icpA
Read-only
Inspect

Analyze the user's account and generate an ICP suggestion based on their website, existing contacts, and campaign history.

ParametersJSON Schema
NameRequiredDescriptionDefault
websiteNoCompany website URL
descriptionNoWhat the company sells
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is established. The description adds that the tool analyzes the account and leverages website, contacts, and campaign history, providing useful context beyond the annotations, but doesn't disclose additional behaviors like response format or potential delays.

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 a single, concise sentence that front-loads the primary action and resource. Every clause adds value, with no filler or repetition.

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?

Given the read-only nature, complete schema coverage, and simple parameter set, the description adequately explains the tool's function. However, with no output schema, it doesn't describe the structure of the suggested ICP, which is a minor gap for an agent expecting a specific return value.

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 covers both parameters with descriptions (100% coverage), so the baseline is 3. The description mentions 'website' and 'campaign history' but does not add detail about the 'description' parameter or how to format the inputs beyond what's already in the schema.

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 uses specific verbs 'analyze' and 'generate' with a clear resource (ICP suggestion) and articulates the data sources (website, existing contacts, campaign history). This distinguishes it from siblings like 'get_icp' which would retrieve an existing ICP, and 'analyze_contacts' which focuses on contacts.

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?

The description implies the tool is for generating ICP suggestions using account data, but does not explicitly state when to use it over alternatives or when not to use it. It provides context about the inputs but no exclusionary guidance.

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

update_contactAInspect

Update a contact's fields in Xmagnet β€” job title, company, lifecycle stage, status, notes, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNo
notesNo
phoneNo
companyNo
job_titleNo
last_nameNo
contact_idYes
first_nameNo
linkedin_urlNo
contact_statusNo
lifecycle_stageNoe.g. lead, prospect, customer, churned
Behavior2/5

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

Annotations indicate this is a mutating but non-destructive operation (readOnlyHint=false, destructiveHint=false). The description adds no behavioral context beyond the purpose, such as whether partial updates are supported, what happens if the contact does not exist, or any side effects. Given the annotations, the bar is lower, but the description still fails to disclose any meaningful behavioral traits.

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 a single, front-loaded sentence that efficiently conveys the tool's purpose. Every word earns its place, and there is no redundant information.

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?

With 11 parameters, no output schema, and low schema coverage, this description is too minimal. It does not mention the required contact_id, whether fields are optional, or any behavioral details like overwrite semantics. Given the tool's complexity, the description is incomplete and would leave an agent with significant uncertainty.

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 9%, so the description must compensate. It mentions several field names (job title, company, lifecycle stage, status, notes) but uses 'etc.' and omits key fields like email, phone, and names. It does not explain the meaning of contact_id or that other fields are optional, doing little to clarify the parameters beyond what the schema already shows.

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 clearly states the action ('Update') and the resource ('a contact's fields in Xmagnet'), and it lists several specific fields, distinguishing it from create/add/search/get sibling tools. The verb 'update' is unique among the listed tools, making its purpose unambiguous.

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 implies the tool is for modifying an existing contact's fields, which provides clear context. However, it does not explicitly mention alternatives or exclusions (e.g., 'use create_contact for new contacts'), so it misses the explicit guidance needed for a 5.

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

upload_contactsAInspect

STEP 2 of contact upload. Inserts contacts into Xmagnet using the field_mappings confirmed from preview_upload_mapping. Each contact must include the original column names as keys. Requires email per row. Max 500 per call. NEVER call before preview_upload_mapping.

ParametersJSON Schema
NameRequiredDescriptionDefault
contactsYesRows as objects keyed by the ORIGINAL column headers
field_mappingsYes{original_column: db_field} from preview_upload_mapping
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the write nature is known. The description adds valuable behavioral context: 'Requires email per row', 'Max 500 per call', and the hard precondition about preview_upload_mapping. These constraints are not present in the annotations, and there is no contradiction.

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 extremely concise: four short sentences, each earning its place. It front-loads the step position ('STEP 2'), then explains the action, then states critical requirements. There is no fluff or redundancy.

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?

Given the tool's moderate complexity (multi-step upload, nested array parameter) and lack of an output schema, the description covers the essential context: purpose, step dependency, key requirements, and limits. It does not describe the return value or error behavior, which would improve completeness, but it is sufficient for basic correct usage.

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 description coverage is 100%, so the baseline is 3. The description adds operational semantics beyond the schema: it reinforces that contacts must use original column names as keys, and introduces new constraints ('Requires email per row', 'Max 500 per call') that are not in the schema. This adds meaningful value for correct invocation.

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 clearly states the tool's function: 'Inserts contacts into Xmagnet using the field_mappings confirmed from preview_upload_mapping.' It explicitly labels itself as 'STEP 2 of contact upload', distinguishing it from sibling tools like preview_upload_mapping and add_contacts. The verb 'inserts' and resource 'contacts into Xmagnet' are specific and unambiguous.

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 a strong usage guideline with 'NEVER call before preview_upload_mapping' and positions itself as 'STEP 2'. It doesn't explicitly discuss alternatives (e.g., when to use add_contacts instead), but the step context and the explicit precondition give clear situational guidance.

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

validate_emailA
Read-only
Inspect

Validate whether one or more email addresses are deliverable. For a single email use 'email'. For bulk (up to 50) use 'emails' array. Checks MX records, identifies disposable/role addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoSingle email address to validate
emailsNoList of email addresses for bulk validation (up to 50)
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds behavioral detail about checking MX records and identifying disposable/role addresses, which reveals the tool's internal checks. It also states the bulk limit, which is a useful constraint beyond the schema.

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 three short sentences, front-loaded with the core purpose. Every sentence provides distinct information: purpose, parameter selection, and validation checks. No filler or redundancy.

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?

Given the tool's simplicity (two optional params, no output schema), the description covers the essential behavioral aspects: what it validates, the batch limit, and the type of checks performed. It could mention the response format, but that is not critical for selection. Overall, it is sufficient for an agent to decide when to use it.

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 schema already documents both parameters (email and emails), so baseline is 3. The description adds the distinction between single and bulk usage and reinforces the 50-email limit, clarifying when to use each parameter. This adds semantic value beyond the schema's descriptions.

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 uses the verb 'Validate' with a clear resource ('email addresses') and specifies 'deliverable', making the tool's purpose unmistakable. It also distinguishes between single and bulk usage, which aligns with the two parameters. This clearly separates it from sibling tools like find_email or enrich_contact.

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 explicitly says 'For a single email use email. For bulk (up to 50) use emails array', providing concrete guidance on parameter selection. It implies the use case (checking deliverability) but does not explicitly contrast with alternatives like find_email. A clear alternative statement would elevate this, but the guidance is sufficient.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    Enables B2B prospecting from natural language: detect buying signals, score leads against ICP, enrich decision-makers, and draft personalized outreach messages via Claude.
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    Exposes CRM tools from HubSpot to Claude and other agents, enabling pipeline analysis, deal risk detection, and automated follow-up drafting.
    681
    MIT
  • A
    license
    -
    quality
    F
    maintenance
    Connects Claude Desktop to GoHighLevel CRM, providing 269+ tools across 19 categories for complete contact management, messaging, sales, marketing, e-commerce, and business operations through AI automation.
    18
    190
    ISC

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources