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/5 across 48 of 48 tools scored. Lowest: 2.9/5.

Server CoherenceA
Disambiguation4/5

Most tools have clear, distinct purposes (e.g., search_contacts vs search_crm_contacts, add_contacts vs save_contacts_to_crm). A few overlapping functions exist (e.g., multiple ways to add contacts), but descriptions provide enough differentiation.

Naming Consistency5/5

Tool names consistently follow a verb_noun pattern with underscore separation (e.g., add_contacts, search_companies, create_campaign). No mixed conventions, making it easy for agents to infer behavior from names.

Tool Count3/5

48 tools is on the high side, but the server covers a broad CRM domain (contacts, campaigns, deals, analytics, reporting). The count is borderline acceptable, though some consolidation (e.g., merging add_contacts and create_contact) could improve focus.

Completeness3/5

The tool surface covers many core CRM operations (CRUD for contacts, campaigns, deals, forms, landing pages) and includes analytics, enrichment, and sequences. However, it lacks obvious delete operations (e.g., delete_contact, delete_campaign) and some update functions (e.g., update_deal), leaving minor gaps.

Available Tools

48 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
Behavior4/5

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

Annotations provide readOnlyHint=false (write) and destructiveHint=false (non-destructive). The description adds that it supports up to 200 contacts and automatically deduplicates (upsert behavior), which is valuable behavioral context 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 concise with four sentences, all meaningful. It is front-loaded with the core purpose and progressively adds usage, constraints, and behavior. No unnecessary words or redundancy.

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 tool with a single parameter and no output schema, the description covers all essential aspects: purpose, usage, constraints (200 limit), and behavior (dedup/upsert). It leaves no important gaps for the agent.

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%, so the schema already documents the 'contacts' array and its items. The description adds 'Each contact needs at least an email' which matches the schema's required field, but does not provide additional detail beyond what the schema offers. 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 'Add multiple contacts to Xmagnet in one call,' specifying the verb (add), resource (contacts), and bulk nature. This distinguishes it from sibling tools like create_contact (single) and upload_contacts (likely file-based).

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 says 'Use when user provides a list of contacts to add/import,' providing clear context. It does not explicitly state when not to use, but the bulk scenario is well-defined and distinct from alternatives.

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
Behavior4/5

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

Annotations indicate a safe write operation. The description adds crucial two-step behavior for dropdown fields (returns needs_confirmation with AI suggestions), which annotations do not cover. 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.

Conciseness4/5

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

The description is a single paragraph that efficiently conveys purpose, types, and important workflow. It is front-loaded with the main action and provides necessary detail without fluff.

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 (5 params, conditional behavior) and lack of output schema, the description covers the core workflow and important notes. It omits error handling but is complete for typical 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 covers 60% of parameters with descriptions. The description adds meaning by explaining the interplay of field_type, options, and confirm for the dropdown workflow, which is beyond 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 clearly states the tool adds a custom column to contacts or companies, specifies two field types (text and dropdown), and distinguishes it from sibling tools like add_contacts or create_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 gives explicit guidance: when user wants a lookup column, ask if they prefer dropdown or text; for dropdown without options, call with no options to get AI suggestions, then call again with confirm=true. It lacks explicit exclusions but provides clear context.

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
Behavior4/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds that the tool performs AI-driven breakdowns, which is consistent and adds context about the analytical nature. However, it does not disclose edge cases (e.g., empty results, handling of inaccessible contacts).

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, concise sentence that front-loads the purpose and lists key breakdown dimensions. No extraneous information.

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?

With no output schema, the description hints at return content (breakdown by categories) but omits structural details (e.g., whether results are grouped, raw counts, or percentages). It also doesn't clarify the default scope (e.g., all contacts vs. user's contacts). Moderate completeness given the 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?

Input schema has 100% description coverage, so parameters are well-documented. The description lists breakdown categories but does not explicitly link them to the query or campaign_id parameters. It adds minimal semantic value beyond 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 clearly states the verb ('analysis') and the resource ('contact list'), and lists specific breakdown dimensions (industry, title, company size, location, engagement level). It distinguishes from sibling tools like search_contacts and get_contact_details by focusing on aggregate analysis rather than individual records.

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 high-level analysis of contacts, but does not explicitly specify when to use this tool versus alternatives (e.g., search_contacts for individual details, get_campaign_stats for campaign-level stats). No exclusions or prerequisites are given.

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 already indicate readOnlyHint=false and destructiveHint=false. The description adds that it adds contacts as recipients, implying a mutation, but does not detail idempotency, error cases, or prerequisites beyond segment existence.

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 context. 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 the input and usage context well. However, it lacks any mention of return value or success/failure indicators, which would enhance completeness.

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 already documents each parameter well. The description does not add new semantic meaning beyond what the schema 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 explicitly states the action: 'apply a saved segment to an existing campaign draft, adding all segment contacts as recipients.' This clearly distinguishes it from sibling tools like list_segments 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 Guidelines4/5

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

The description provides clear when-to-use guidance: 'Use after list_segments when user picks a segment to add to a draft.' It does not explicitly mention alternatives or when not to use, but the context is sufficient.

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
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 does not need to repeat that. However, it adds no additional behavioral context such as data freshness, rate limits, or result granularity beyond the listed categories.

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, well-structured sentence that front-loads the core action ('Deep research') and efficiently lists the research dimensions without unnecessary 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 description lists types of information returned but lacks any indication of the output format (structured fields vs free text) or behavior with missing data, which is important for agent processing.

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 0% schema description coverage, the description should clarify parameter usage, but it only mentions the company name implicitly and omits the website parameter entirely, leaving the agent to infer parameter meaning from the tool's purpose.

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?

Description clearly states 'Deep research on a company' and lists specific information categories (funding, leadership, tech stack, etc.), distinguishing it from sibling tools like search_companies or find_competitors.

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 comprehensive company research but does not provide explicit when-to-use or when-not-to guidance, nor does it mention alternative sibling tools for simpler or competitor-focused tasks.

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 non-read-only and non-destructive. The description adds crucial behavioral details: it is a multi-step wizard that guides the user through steps, saves only as draft, and never sends emails. It also explains the dynamic behavior based on user choices (engine picker, category chips, template gallery). 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 well-structured with a clear high-level statement, numbered wizard steps, and a rules section. Every sentence adds value, and it is comprehensive without being verbose for a tool with 11 parameters and a complex workflow.

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 complexity of the wizard and number of parameters, the description covers all necessary aspects: the overall purpose, step-by-step flow, parameter usage rules, and constraints. It also describes the tool's outputs at each step (engine picker, category chips, template gallery). No output schema needs no further explanation.

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?

With 100% schema coverage, the description still adds significant value beyond the parameter descriptions. It explains the wizard step at which each parameter is relevant, which parameters are optional or omitted on first call, and relationships between parameters (e.g., campaign_type and campaign_category). This extra context makes parameter usage clear.

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

Purpose5/5

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

The description clearly states the tool creates a DRAFT email campaign via a programmatic wizard. It outlines the wizard steps and distinguishes from siblings like generate_campaign_content by emphasizing the multi-step guided process.

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 provides explicit rules: reuse contacts from prior search, pass total_contacts from search result's total_in_crm, and that it saves as DRAFT only. It also specifies when parameters should be omitted (e.g., campaign_type on first call, campaign_category until step 2). Although it doesn't explicitly say 'use X instead', the rules and step-by-step guidance effectively convey usage context.

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?

Annotations show non-destructive and non-read-only. Description adds that the tool updates an existing contact if email matches, which is key behavioral information beyond annotations. No contradictions.

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, no fluff. First sentence states action and trigger. Second sentence covers requirements, supported fields, and upsert behavior. Every sentence 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?

With 14 parameters and no output schema, the description covers parameter list and key behavior (upsert), but does not mention return value (e.g., created contact ID) or error scenarios. It is adequate but leaves some gaps for a complete context.

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 21% (email and lifecycle_stage have descriptions). The description lists many parameters and provides allowed values for lifecycle_stage (lead/prospect/customer/churned), adding meaning beyond the schema. It compensates well for low 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 the tool adds a single contact to Xmagnet, with verb 'Add' and resource 'contact'. It distinguishes from siblings like 'add_contacts' (bulk) and 'upload_contacts' by specifying single contact. The upsert behavior is also highlighted.

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 tells when to use: when user says 'add', 'create', or 'save' a contact. It provides usage context but does not explicitly exclude bulk operations, though sibling 'add_contacts' implies that. Good guidance but could be more precise.

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?

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description's statement of creation is consistent but adds no extra behavioral context (e.g., data validation, duplication behavior, or required permissions).

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?

A single sentence that is efficiently front-loaded and free of fluff. However, it could be slightly expanded without losing conciseness.

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 omits important context such as return behavior (e.g., whether it returns the created deal object) or side effects. The tool is a create operation, so this information is critical.

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 low (43%), and the description does not compensate by explaining the meaning of parameters like 'notes', 'priority', 'company_name', or 'contact_name'. It adds no value beyond 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 'Create a new deal in the Xmagnet pipeline' uses a specific verb (create) and resource (deal), and distinguishes the tool from siblings like 'create_campaign' or 'create_contact'.

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 on when to use this tool versus alternatives (e.g., 'get_deals_pipeline' for viewing or 'scan_deal_intent'). The description does not mention any prerequisites or context.

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

create_formBInspect

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
Behavior2/5

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

Annotations already indicate it is not read-only. The description adds no behavioral details beyond creation, such as side effects, permissions, or rate limits. 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.

Conciseness4/5

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

The description is a single concise sentence that front-loads the verb and resource. It is efficient but could be slightly expanded to mention optional parameters without harming conciseness.

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, the description should at least hint at the return value. It says 'generates the form' but does not specify the form's format, structure, or what the agent will receive. Lacks completeness for an AI agent.

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 parameter descriptions. The description reinforces the 'prompt' parameter's role in AI generation but adds little additional semantic meaning beyond 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 clearly states the verb 'Create', the resource 'lead capture form', and the method 'using AI'. It distinguishes from sibling tools like create_campaign or create_deal by specifying the type of form and AI generation.

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 AI-generated lead capture forms but offers no explicit when-to-use or alternatives. No exclusions or comparisons with sibling tools 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 are neutral; the description adds 'using AI', indicating a generative mutation, but lacks details on what happens to the page (e.g., publishing, requiring edits) or any 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.

Conciseness4/5

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

Extremely concise at one sentence, front-loaded with action. Could mention the optional template_type briefly, but overall efficient.

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, the description should hint at return value (e.g., page ID); also missing mention of required vs optional parameters. Leaves agent guessing after invocation.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond 'describe what you need' matching the prompt 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 creates a landing page using AI from a user description, distinguishing it from siblings like 'create_campaign' or 'list_landing_pages'.

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 implies when to use: when you need an AI-generated landing page. However, no explicit when-not-to-use or alternatives are given, though no direct sibling conflict exists.

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 already indicate readOnlyHint=false and destructiveHint=false, so the description adds value by specifying the tool creates a draft (not final) and returns the sequence ready to activate. This contextualizes the write operation without being destructive. No contradictions 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 consists of two concise sentences with no wasted words. The first sentence front-loads the primary purpose, and the second adds a key outcome. It is appropriately sized for the tool's simplicity.

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?

Given no output schema, the description does not specify the return format beyond 'ready to activate'. It also omits details on what 'draft' entails idempotency, or side effects. While adequate for a simple tool, it leaves gaps in understanding the full behavior.

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 schema has 4 parameters with only 50% description coverage; campaign_name and campaign_type lack descriptions. The description does not mention any parameters, so it adds no semantic value beyond the schema. With low coverage, the description should compensate but fails to do so.

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 creates a draft multi-step email sequence for an existing campaign, specifying the verb 'create', the resource 'draft multi-step email sequence', and the context 'for an existing campaign'. It distinguishes itself from siblings like create_campaign (which creates a campaign) and list_sequences (which lists existing sequences) by focusing on drafting a sequence within a 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 mentions the prerequisite 'for an existing campaign', indicating when to use. However, it does not explicitly state when not to use the tool or list alternatives such as create_campaign for creating a new campaign first. The usage context is implied but lacks explicit exclusions or comparisons to siblings.

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, but the description does not clarify whether enrichment modifies the contact in place or simply returns enriched data. The mention of contact_id (described in schema as 'enrich in-place') is not echoed in the description, leaving ambiguity about the tool's 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?

The description is extremely concise: two sentences that front-load the purpose and then state input requirements. Every word earns its place, with no redundancy or 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?

Given the tool has 6 parameters with no required ones and no output schema, the description covers the core functionality and input hints. It lacks details on return format and error cases, but for a simple enrichment tool it is largely adequate.

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 description adds value beyond the schema by explaining that either email or (first_name + last_name + company) is required, and it mentions LinkedIn. This helps interpret the optional parameters, especially since schema coverage is only 33%. However, not all parameters are addressed.

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 enriches a contact with specific data (work email, phone, LinkedIn, company details, social profiles). It uses a specific verb ('enrich') and resource ('contact'), and the list of data types distinguishes it from sibling tools like validate_email or update_contact.

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 provides input requirements ('Provide email or full name + company'), which serves as basic usage guidance. However, it does not explicitly state when to use this tool versus alternatives like validate_email or search_contacts, nor does it mention any prerequisites or context-specific scenarios.

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
Behavior3/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 that it exports to CSV and expects a pre-existing contacts array, but does not reveal additional behavioral traits like download mechanism or file expiry.

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-loaded with the core purpose, and no unnecessary words.

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 (2 parameters, no output schema), the description fully covers what the agent needs to know: input source, output format, and the filename parameter.

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 100% schema coverage, the schema already describes both parameters. The description adds value by clarifying that the contacts array should come 'from a previous search or Xmagnet query', which is not obvious from the schema alone.

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

Purpose5/5

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

Clearly states the action (export), resource (contacts), and format (CSV). Distinguishes from sibling tools like 'add_contacts' or 'create_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?

Provides guidance on input source ('from a previous search or Xmagnet query'), which helps the agent understand where to obtain the contacts array. Does not explicitly contrast with alternatives, but the context implies a retrieval-then-export workflow.

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
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. The description adds valuable context by specifying the matching dimensions (industry, tech stack, target market), but does not mention default behavior for limit or 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?

Two concise sentences, front-loaded with the action and key criteria, no unnecessary 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?

Given the lack of output schema and parameter descriptions, the description is too brief. It does not explain the return format, result fields, or any ordering, which an agent needs to effectively use the tool.

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 0% schema coverage, the description should compensate by explaining parameters, but it only indirectly references company_name. It does not describe the 'limit' or 'industry' parameters, leaving the agent to infer their purpose from 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 clearly states the tool finds competitors of a company and specifies similarity criteria (industry, tech stack, target market), distinguishing it from siblings like search_companies 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 Guidelines3/5

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

The description implies usage for competitive analysis but does not explicitly state when to prefer this tool over siblings or provide exclusion criteria such as 'Use search_companies for broader searches'.

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. Credits are deducted per search. 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, so the description's mention of credit deduction adds useful behavioral context beyond annotations. However, it does not disclose other aspects like result limits (e.g., max 50 via limit parameter) or potential pagination, which would be helpful.

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 plus examples, extremely concise and front-loaded. Every word serves a purpose with no fluff.

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?

Given the tool has 10 parameters and no output schema, the description provides a basic overview but lacks details on parameter interactions (e.g., how Mode A vs Mode B work) and expected return format. It is adequate but not comprehensive for guiding an agent's full understanding.

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 40% (only 4 of 10 parameters have descriptions). The description provides examples that hint at combining title with company_name, industry, funding_status, and technologies, but it does not explain parameters like location, company_size, hiring_growth, or revenue_growth. The examples add some value but do not fully compensate for the 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 the tool finds people with a specific title/role at companies matching criteria, with examples like 'CTOs at funded SaaS companies'. This distinguishes it from sibling tools like search_contacts (general contact search) and search_companies (company-only search).

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 mentions credits are deducted per search, providing cost awareness. It implies two modes via examples (Mode A: direct company search, Mode B: industry-based) but does not explicitly state when to use this tool over alternatives like search_contacts or when not to use it. More explicit guidance on mode selection and exclusions would improve this dimension.

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

generate_campaign_contentB
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)
Behavior1/5

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

The description says 'AI-generate' suggesting a write operation, but annotations claim readOnlyHint=true, creating a contradiction. No disclosure of side effects or limits. Annotation contradiction flagged.

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, front-loaded with action word 'generate', no waste. Efficient and to the point.

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?

No output schema, description does not explain what the tool returns. Behavioral contradiction undermines completeness. For a generation tool, return format is critical.

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 descriptions for all 4 parameters. The description adds context for the prompt parameter ('describe goal, audience, tone') but does not add value beyond schema for other 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 verb (generate), resource (email subject lines and body content), and context (for a campaign). It distinguishes from sibling tools like 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 for generating campaign content when needing AI help with goal, audience, tone, but lacks explicit when-not-to-use or alternative tools like create_campaign or manual drafting.

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

get_bounce_statsB
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?

Annotations indicate safe read-only operation; description adds detail about bounce types and grouping, but misleadingly claims grouping by domain, which is unsupported in schema. This creates confusion about tool capabilities.

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?

Single sentence, efficient, but could be improved by explicitly listing parameters and clarifying the domain grouping discrepancy.

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?

For a stats tool with no output schema and two parameters, description is incomplete: no mention of output format, how limit works, or how to filter by domain (unsupported). Requires more detail to be self-contained.

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?

Description mentions 'by campaign or domain' but only campaign_id is in schema, with no explanation of limit parameter. Schema coverage is 0%, and description fails to clarify parameters—actually misleads.

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?

Description clearly states verb 'Get', resource 'email bounce statistics', and provides specific types and grouping options, distinguishing from sibling tools like get_campaign_stats.

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?

Implies use for bounce-specific analytics by campaign or domain, but no explicit when-to-use, when-not-to-use, or alternative tool guidance.

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
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 value by specifying the exact metrics returned (opens, clicks, replies, bounce rate), going beyond the annotations. No behavioral contradictions or hidden traits (like rate limiting or pagination) are disclosed, but for a simple read-only stats endpoint, this is adequate.

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 immediately states the purpose and lists the key metrics. Every word adds value; there is no redundancy or extraneous information. It is perfectly concise for the tool's simplicity.

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?

Given the tool's low complexity (2 optional params, no output schema), the description covers the main purpose and metrics. However, it does not explain parameter usage (e.g., if both provided, which takes precedence?) or mention any default behavior (e.g., returns stats for a time range). Some contextual details are missing, making it adequate but not complete.

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 input schema has two optional parameters (campaign_id, campaign_name) with 0% description coverage. The tool description does not explain how to use these parameters (e.g., are they mutually exclusive? Both required? What if both provided?). Without schema descriptions, the burden falls on the description to clarify, which it fails to do. The parameter semantics are completely opaque.

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: getting performance stats (opens, clicks, replies, bounce rate) for a specific campaign. It uses a specific verb 'Get' and resource 'campaign stats', effectively distinguishing it from siblings like list_campaigns (lists all campaign names) and create_campaign (creates new campaigns).

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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., existing campaign), typical scenarios, or when not to use it (e.g., for aggregated stats across campaigns). Among siblings, tools like get_deals_pipeline or list_campaigns exist, but no comparisons are made.

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 mark it as read-only and non-destructive. The description adds that it returns 'all enriched fields, activity history, and campaign membership,' providing valuable behavioral context beyond annotations. No contradictions.

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 sentence that efficiently communicates purpose, lookup methods, and output scope. No wasted words, front-loaded with the core action.

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 the main functionality and output, but lacks details on error handling (e.g., when both parameters are omitted or lookup fails). Given the simplicity and no output schema, it is mostly complete but could be slightly more robust.

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

Parameters3/5

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

The schema has 0% description coverage, but the description at least indicates that both email and contact ID are intended as lookup keys. However, it does not explain parameter formats, precedence, or behavior when both are omitted. More detail would be beneficial.

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 full details of a single contact by email or contact ID, listing specific output fields (enriched fields, activity history, campaign membership). This distinguishes it from sibling tools like search_contacts (list) and update_contact (modify).

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 (retrieve one contact's details) but does not explicitly exclude cases like no identifier provided or suggest alternatives (e.g., search_contacts for multiple contacts). However, the context is still clear enough for an agent to infer appropriate use.

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, indicating a safe read operation. The description adds the specific state being read (current balance) but provides no additional behavioral context beyond what annotations 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 a single sentence that immediately conveys the purpose and details. No unnecessary words, front-loaded with the key 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 zero-parameter read-only tool, the description is fully complete. It explains what the tool returns (remaining and used credits) without needing an output schema. The context of sibling tools and annotations further clarifies its role.

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 no parameters, so the description does not need to explain parameter meaning. According to guidelines, baseline is 4 for 0 parameters, which 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 'show' and the resource 'current credit balance', and specifies what details are included (remaining and used credits). It is distinct from all sibling tools, which focus on contacts, campaigns, deals, etc.

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 implicitly tells the agent to use this tool when the user's credit balance is needed. Since no other sibling tool deals with credits, the context is clear. However, it does not explicitly state 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.

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 description's main added value is listing the included stats. There is no contradiction, but the description does not disclose potential behavioral nuances like data freshness or latency.

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 efficiently communicates purpose and content. It is front-loaded with the verb 'Show' and immediately details the stats. No extraneous 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 the tool has no inputs and no output schema, the description provides a reasonable list of output ingredients. However, it omits format details or whether all fields are always present, which could be useful but is not critical for a simple dashboard 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?

With zero parameters and 100% schema coverage, the description adds meaning by enumerating the output fields (e.g., total contacts, open rate), which is valuable since there is no output schema. This justifies a score above the baseline 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 verb 'Show' and specifies 'account overview stats' with enumerated items like total contacts, active campaigns, etc. It distinguishes this dashboard from sibling tools like get_campaign_stats or get_deals_pipeline by indicating it's an aggregated overview.

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 a high-level dashboard view but does not explicitly contrast with alternatives. It lacks guidance on when to use this tool versus other stats tools like get_bounce_stats or get_unsub_stats, leaving the agent to infer based on context.

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
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 the tool shows stage breakdown, values, and win rate analytics, but does not disclose additional behavioral traits like data freshness or pagination. 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 a single sentence that is concise and front-loaded. 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 read-only pipeline tool with two simple parameters and good annotations, the description adequately mentions key outputs. It could be more complete by noting filtering behavior or user scoping, but overall it is sufficient.

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%, meaning the description does not explain the parameters (status_filter and include_analytics) at all. The schema itself provides defaults and enums, but the description adds no value beyond that, failing to compensate for the lack of 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 the tool shows the user's deals pipeline with stage breakdown, values, and win rate analytics. It uses a specific verb ('show') and resource ('deals pipeline'), and distinguishes it from sibling tools like get_ghost_pipeline.

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 pipeline overview but provides no explicit guidance on when to use it vs alternatives such as get_ghost_pipeline or search_crm_contacts. No when-not-to-use or alternative mentions.

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?

The annotations already declare readOnlyHint=true and destructiveHint=false, so the tool's safety profile is clear. The description adds no additional behavioral context (e.g., pagination, rate limits) beyond what the annotations and schema already convey. It is consistent but adds no extra value.

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 consists of two concise sentences that are front-loaded with the core purpose followed by usage cues. Every word earns its place, and there is no unnecessary 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?

For a simple read-only tool with two optional parameters and no output schema, the description covers the core purpose and usage context. It does not mention the return format or the fact that it is read-only (though annotations cover that), but it is largely complete. Minor gap: no mention of pagination limits beyond the schema description.

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% coverage with clear descriptions for both limit and form_id. The description does not add any additional meaning or constraints beyond the schema, 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 clearly states 'Get the list of people who filled a specific form' with a specific verb and resource. It also provides alternative phrasings like 'who filled my form', 'show form leads', 'form submissions', which helps differentiate from sibling tools such as list_forms or get_contact_details.

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 asked...' and gives concrete example queries, providing clear context for when to invoke the tool. However, it does not mention when not to use it or specify alternatives, so it stops short of a perfect score.

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, so the agent knows the tool is safe. The description adds the core behavior (finding stale contacts with signals) but does not disclose additional traits like authorization needs or rate limits. Given annotations cover safety, a score of 3 is appropriate.

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 with no wasted words. It efficiently communicates the tool's purpose and context.

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 filtered list tool with three optional parameters and no output schema, the description covers the main purpose and typical use case. It could hint at return values, but the overall completeness is high given the tool's simplicity.

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 0%, so the description must compensate. It hints at parameter meanings: '90+ days no follow-up' for min_days_stale (default 90) and 'hiring, funding, or job changes' for signal_filter. This adds value, though explicit mappings would be better.

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 'Find', the resource 'stale contacts', and the condition 'with fresh growth signals like hiring, funding, or job changes'. It distinguishes itself from siblings like get_icp or get_deals_pipeline by targeting a specific re-engagement use case.

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 clear context for when to use the tool (stale contacts with new signals for warm re-engagement). However, it does not explicitly exclude alternatives or provide direct comparisons to siblings like search_contacts.

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

Behavior3/5

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

Annotations already provide readOnlyHint=true. Description adds context on what is shown but no additional behavioral details like auth needs or error 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?

Single sentence, 20 words, front-loaded with key verb 'Show' and resource 'ICP'. Every word earns its place.

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?

Tool is simple with no params and no output schema. Description fully covers what the tool does for a read-only retrieval.

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?

No parameters exist, so description cannot add meaning beyond schema. Baseline for 0 params is 4, and description is adequate.

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 the user's ICP and lists specific attributes (industries, titles, etc.), distinguishing it from sibling suggest_icp which helps define ICP.

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?

No explicit guidance on when to use this tool versus alternatives like suggest_icp. Usage is implied (view ICP), but lacks when-not-to or conditions.

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

get_unsub_statsB
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 mark it as read-only and non-destructive. The description adds that it returns specific statistics but does not disclose other behavioral traits like aggregation scope, data freshness, or pagination behavior. With annotations covering safety, the description adds marginal value.

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, front-loaded with the verb 'Get', and no wasted words. 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?

For a simple statistics tool with two optional parameters and clear annotations, the description covers the main purpose but omits parameter documentation, leaving the tool only partially complete for an agent to use correctly.

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?

Schema description coverage is 0% and the description does not explain what 'limit' or 'campaign_id' parameters do. The description only lists output types, leaving the agent to guess parameter 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 tool gets unsubscribe statistics and lists specific outputs: rate, top campaigns, and trends. It uniquely identifies the tool's purpose among siblings like get_bounce_stats and get_campaign_stats.

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 on when to use this tool versus alternatives (e.g., get_campaign_stats, get_dashboard_stats). Lacks context on prerequisites, typical use cases, 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.

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 indicate the tool is read-only and non-destructive. The description adds value by specifying the output includes status, sent count, and rates, giving the agent a behavioral expectation of what the response contains.

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 sentence that is front-loaded with the core purpose and output fields. Every word earns its place; no redundancy or fluff.

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 purpose and returned fields, but lacks details on pagination (though 'limit' is present), ordering, or the full response structure. Without an output schema, more detail on what the output contains would improve completeness.

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%, and the description does not elaborate on the parameters beyond what the schema already provides. The baseline of 3 is appropriate as the schema carries most of the parameter context.

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), the resource (email campaigns), and what information is returned (status, sent count, open/click rates). It effectively distinguishes from siblings like 'create_campaign' (creation) and 'get_campaign_stats' (likely a single campaign's detailed stats).

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?

While the description implies usage for listing campaigns with basic stats, it does not provide explicit guidance on when to use this tool versus alternatives (e.g., 'get_campaign_stats' for deeper analytics), nor does it mention any prerequisites or limitations.

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?

Description adds value beyond annotations by specifying output includes 'subject, category, and preview.' Annotations already declare readOnlyHint=true and destructiveHint=false, so 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?

Two sentences, action-first, no wasted words. Appropriate length for a simple list tool.

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 single optional parameter and no output schema, description sufficiently covers return values and purpose. No gaps.

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 one parameter 'category' fully described. Description does not add extra meaning beyond what schema provides, so baseline 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?

Description clearly states 'List available email campaign templates (system + custom).' Verb 'list' and resource 'email campaign templates' are specific, distinguishing 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?

Explicitly states use cases: 'Use for NextGen campaigns or when user says show templates, template gallery, use a template.' Provides clear context for when to invoke.

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. The description adds that it returns submission counts and URLs, providing context beyond annotations. For a zero-parameter read-only tool, this is sufficient.

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 concise sentence that front-loads the key information. Every word is necessary, with no redundancy.

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 no parameters and no output schema, the description explains what the tool returns (submission counts and URLs), which is complete for a simple list operation. No gaps are present.

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?

No parameters exist, and schema coverage is 100%. The baseline score for zero parameters is 4, and the description does not need to add parameter-specific 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 verb 'list', the resource 'lead capture forms', and specifies what is included (submission counts and URLs). This distinguishes it from sibling tools like create_form and list_campaigns.

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 forms but does not explicitly state when to use this tool versus alternatives like search functions or other list tools. No exclusions or when-not-to-use guidance is provided.

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. Description adds that the tool returns view counts and public URLs, but does not disclose any other behavioral traits (e.g., pagination, ordering, or scope).

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, front-loaded with action and resource. All information is relevant and no redundant text.

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 list tool with no parameters, the description sufficiently covers what the tool does and what it returns. No output schema exists, but the description notes the return fields. Annotations cover behavioral safety.

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

Parameters4/5

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

Zero parameters, so the schema provides no additional meaning. The description adds value by specifying the output fields (view counts, public URLs), which is not required but helpful.

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?

Clear verb (List) and resource (landing pages), with specific output fields (view counts, public URLs). Distinct from sibling list tools that operate on other entities.

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 on when to use this tool versus alternatives (e.g., other list tools). The description assumes the agent infers usage from the name alone.

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

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so description carries low burden. It adds context about 'this tenant' and 'reusable audiences', enhancing understanding of scope and semantics.

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 achieve maximum clarity with no redundancy. First sentence states core purpose, second provides usage guidance. Every word earns its place.

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 list tool, the description fully explains what it lists and when to use it. No further context is needed.

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?

No parameters exist, schema coverage is 100% by default. Description properly omits parameter details as none are needed. Baseline 4 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?

Description explicitly states verb 'list', resource 'saved contact segments', and scope 'for this tenant'. Distinct from sibling tool 'apply_segment_to_campaign' which uses segments but is not a list operation.

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?

Provides concrete user phrases triggering this tool ('show my segments', 'list audiences', etc.) and a specific use case 'during campaign creation'. No need for when-not guidance given simplicity.

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 indicate read-only and non-destructive behavior. Description adds that it returns status and step counts, but does not disclose ordering, pagination behavior, or potential empty results. With readOnlyHint=true, the burden is lower, but additional context would improve transparency.

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 of 14 words, front-loaded with the verb and resource, no redundant information. Very efficient and easy to parse.

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 listing tool with two optional parameters and no output schema, the description covers the basic purpose but omits return format details (e.g., whether results are paginated, sorted, or contain additional fields). It is functional 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?

Description does not mention any input parameters. The schema describes status param with a description, but limit (default 20) lacks any description. Since schema coverage is only 50% and description adds nothing for parameters, the agent receives minimal guidance beyond 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?

Description clearly states the tool lists email sequences (multi-step drip campaigns) and what information it returns (status, step counts). The verb 'list' and resource 'email sequences' are specific, and it distinguishes itself from siblings like list_campaigns and list_forms by focusing on sequences.

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?

No explicit guidance on when to use this tool versus alternatives. While the name and sibling tools imply usage for querying sequences, the description does not provide context like 'use this to see available sequences before starting a campaign' or mention 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.

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
Behavior4/5

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

The description adds value beyond annotations by explaining that the tool uses the same search criteria, which helps the agent understand behavior. Annotations already indicate it's read-only, so 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?

Two concise sentences: first states purpose, second gives usage. No unnecessary words, highly efficient.

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 11 params and no output schema, the description adequately covers key behavioral and usage aspects. Missing return format is not critical here.

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 low schema coverage (9%), the description compensates by stating to reuse original search criteria, implying the role of other parameters. This adds meaning beyond 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 clearly states the verb 'load more' and resource 'companies', and specifies it is from a previous search_companies result, which distinguishes it from the sibling tool search_companies.

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 provides trigger phrases ('show more', 'load more', 'more companies') and instructs to pass the same criteria as the original search plus offset, giving clear when and how to use.

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)
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context such as the automatic routing based on parameter combinations and that 'already_shown_urls' is only for investors. No contradictions.

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 concise and front-loaded with the main purpose. Every sentence adds value, though a slightly more structured format (e.g., bullet points for routing) could improve readability. Still, it's effective.

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 has 8 parameters, no output schema, and moderate complexity, the description covers usage scenarios, parameter roles, and routing logic comprehensively. It does not explain return values, but that is acceptable without an output schema.

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?

Schema description coverage is 75%, and the description goes beyond by explaining how parameters interact (e.g., query triggers direct waterfall, title+industry triggers company waterfall, investor=true triggers investor load more). It also clarifies that offset should be the count of already-shown contacts and that already_shown_urls is investor-only.

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 contacts from a previous search result', specifying the verb and resource. It also distinguishes from siblings like 'search_contacts' and 'load_more_companies' by providing explicit usage triggers (e.g., 'show more', 'more contacts/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?

The description explicitly lists when to use the tool ('user says show more, load more, or more contacts/investors') and explains routing logic based on parameters. While it doesn't mention when not to use it, the guidance is clear and context-rich.

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 notes that unrecognized columns are auto-assigned, adding behavioral context beyond annotations. Annotations indicate non-destructive, non-read-only behavior, but description does not address state changes (e.g., whether it saves mappings).

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, each essential and front-loaded with the key purpose. No wasted words; conciseness achieved without losing critical 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?

For a multi-step upload process, the description correctly positions this as Step 1 and clarifies what it returns (mapping). While no output schema exists, the conceptual return is explained. Sibling tools like 'upload_contacts' provide further context.

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 clear description for the single parameter 'columns.' The tool-level description explains how the parameter is used (input columns drive mapping), adding value beyond 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 clearly states it is 'STEP 1 of contact upload' and specifically returns how each column maps to an Xmagnet field. It distinguishes itself from the sibling 'upload_contacts' by outlining its role in the pipeline.

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 show the mapping to the user for confirmation,' providing clear when-to-use and a dependency directive.

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
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 that it 'Returns a data table with numbers,' which provides basic output context but no additional behavioral traits like rate limits or query limitations.

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 a single paragraph with a bullet-like list of examples, front-loading the core purpose. It is efficient but could be slightly more compact without the example list; still good.

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 tool with no output schema, the description minimally states 'Returns a data table with numbers.' More detail on the format or typical columns would improve completeness, but it's adequate given the AI-powered nature.

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

Parameters3/5

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

Schema coverage is 100% and the question parameter is well-described as 'Analytics question in plain English'. The description adds examples but no new semantic meaning beyond the schema, hitting the baseline.

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?

Description clearly states the tool runs an AI-powered analytics report on Xmagnet data, accepts plain English questions, and lists diverse examples. It distinguishes itself from sibling tools that provide specific stats (e.g., get_bounce_stats) by being a general-purpose query tool.

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 explicit examples like 'Show contacts by industry' and 'Top campaigns by open rate'. It implies when to use (ad-hoc questions) but does not explicitly state when not to use or mention alternatives, though 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.

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 already indicate a mutation (readOnlyHint=false) and non-destructive action (destructiveHint=false). The description reinforces that it saves template content but does not elaborate on behaviors such as whether it overwrites existing templates or requires specific permissions. With annotations present, the description adds marginal value.

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 no filler. Front-loaded with the main action, then usage examples. Every word is purposeful.

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 simplicity of the tool (4 uncomplicated parameters, no output schema), the description covers the core functionality and usage. It could briefly note that 'category' is optional, but overall it is complete enough.

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 descriptions for all four parameters. The description mentions 'current campaign content' but does not add extra meaning beyond the schema, such as clarifying the optional nature of 'category' or providing format constraints. 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's purpose: saving current campaign content as a reusable template. It uses a specific verb ('Save') and resource ('campaign content as a reusable template'), and distinguishes from sibling tools like list_campaign_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 provides explicit usage examples ('save this as template', 'create new template'), giving clear guidance on when to invoke the tool. It lacks explicit when-not or alternatives, but the examples suffice for basic differentiation.

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
Behavior3/5

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

Annotations already indicate non-readonly and non-destructive; description adds that it saves but doesn't disclose merge, overwrite, or error 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?

Two concise sentences with essential information, 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 simple 1-param tool, description covers usage. Could add more on behavior (e.g., duplicate handling) but adequate overall.

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 basic description. Tool description adds value by specifying the exact source of the contacts 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?

Clearly states action 'Save contacts' and specific target 'into Xmagnet'. Distinguishes from siblings like create_contact for single 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?

Explicitly instructs to pass contacts array from search_contacts or find_contacts_at_companies, providing clear when-to-use context.

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

Behavior3/5

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

The description adds that it returns ranked intent signals, which is behavioral context beyond the readOnlyHint and destructiveHint annotations. However, it does not detail side effects, data sources, or processing time, which would improve transparency.

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 with no superfluous text. The most critical information (scanning for intent and returning ranked signals) is 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?

The description covers the core functionality without output schema. It could elaborate on the return format but remains adequate for a zero-parameter read-only 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?

The input schema has zero parameters and 100% coverage, so schema alone is sufficient. The description adds no extra parameter info but a baseline of 4 is appropriate given no parameters exist.

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 it scans emails and campaigns for buying intent and returns ranked signals, using a specific verb and resource. It distinguishes from sibling tools like create_campaign or search_contacts, 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 Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as search_contacts or get_deals_pipeline. The description lacks context about typical use cases or exclusions.

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. Description adds pagination behavior (default limit 5) and hints at returning multiple results. No contradictions.

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 with examples, front-loaded with the core purpose. No 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?

No output schema and 11 parameters with zero description coverage. The description fails to explain parameter interactions, response format, or edge cases, making the tool under-described for effective agent use.

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%, and the description only broadly lists parameter categories (industry, tech stack, etc.) without explaining values or constraints for any of the 11 parameters. Insufficient detail 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?

Description uses a specific verb 'Search for companies' and lists distinct criteria (industry, tech stack, funding, growth signals), clearly distinguishing from siblings like find_competitors and load_more_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?

Provides examples and mentions default limit (5) with pagination sibling (load_more_companies). Lacks explicit when-not-to-use guidance, but context is clear.

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. ALWAYS searches saved Xmagnet contacts first (free, instant). Only calls external API if Xmagnet returns 0 results (costs credits). Examples: 'CTOs in fintech', 'John Smith at Google', 'VPs of Sales at SaaS startups'. Default limit is 50 saved results. External API fallback returns 5 per page with load_more_contacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesNatural language search query
Behavior5/5

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

Annotations indicate read-only; description adds details on credit costs, default limit, and external API pagination. Provides clear behavioral context 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.

Conciseness4/5

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

Description is clear and front-loaded, but slightly verbose with multiple sentences. Each sentence adds value, but could be more concise.

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?

Covers purpose, search strategy, examples, limit behavior, and links to external API pagination. No output schema, but description is sufficient for 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.

Parameters5/5

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

Schema has query with description but limit lacks description. Description compensates with examples for query and explains limit default/behavior and external API pagination. Adds significant meaning.

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 it searches for contacts by title, company, or query, with examples. It distinguishes from siblings like 'load_more_contacts' by explaining the internal vs external search strategy.

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 clear guidance on when each search source is used (saved Xmagnet first, external API as fallback) and cost implications. Does not explicitly compare with all sibling tools like 'find_contacts_at_companies'.

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
Behavior3/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 that no credits are deducted and reads from saved Xmagnet contacts only, and lists enriched fields. This adds some value beyond annotations but does not disclose other behaviors like pagination limits beyond the default.

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 purpose and usage urgency. Every sentence adds value without redundancy. Very concise and well-structured.

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?

Given 13 parameters and no output schema, the description covers essential usage but omits details on pagination (max limit 200), combining filters, or return format. Adequate but not comprehensive.

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 low (23%). The description compensates by explaining that empty parameters return all contacts (up to 50) and lists enriched fields, but does not detail other filter parameters or how they interact. Minimal additional semantics beyond 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 clearly states the tool searches contacts saved in Xmagnet, with a specific verb ('search') and resource ('contacts already saved'). It distinguishes from siblings like 'search_contacts' by emphasizing it's for saved contacts and includes a usage directive to call it for any show/list/retrieve request.

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 instructs when to use: 'ALWAYS call this tool immediately when the user asks to show, list, or retrieve their contacts/people.' It provides guidance on empty parameters for all contacts. It lacks explicit when-not-to-use, but the context is clear.

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
Behavior3/5

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

Annotations indicate a safe read operation. The description adds that credits are deducted, which is a behavioral trait, but does not detail return format or pagination, so it adds value beyond annotations but not significantly.

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 of 10 words, achieving maximum conciseness without waste.

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?

The description lacks details on output or return structure (no output schema), does not explain the purpose of the 'title' parameter with default 'investor', and omits search behavior details, making it incomplete for practical use.

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%, and the description does not explain any parameters individually. It mentions filter criteria (stage, sector, geography) only vaguely, failing to map them to the schema properties (industry, location, title).

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' and specifies filtering by 'stage, sector, or geography,' which 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 description implies usage for investor searches and notes credit deduction, but it does not explicitly state when to use this tool versus alternatives or provide exclusion criteria.

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

show_suggestionsB
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 indicate read-only behavior. The description adds that it displays a menu, which is consistent. It does not add further behavioral details (e.g., whether it returns options for user selection).

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, front-loaded, with clear examples. Every word serves a purpose.

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?

Given no parameters and no output schema, the description is adequate but could be improved by stating that this is for guiding user interaction or that it provides a pick list.

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?

No parameters exist, and schema coverage is 100%. The description adds context that the menu lists common actions, but does not need to explain parameters.

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

Purpose4/5

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

The description clearly states it displays a menu of common xmagnet actions and lists examples. It is a specific verb+resource, though it could better differentiate from siblings by noting it's a navigational helper.

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 explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or suggest other tools for specific tasks.

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
Behavior4/5

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

Annotations already indicate read-only (readOnlyHint=true) and non-destructive (destructiveHint=false). The description adds value by revealing it uses account data beyond provided inputs (contacts, campaign history), which is useful behavioral context not in annotations.

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 a single sentence that clearly states the action and inputs. It is concise and front-loaded with the verb 'Analyze'. However, it could be slightly more structured by separating the action from the data sources.

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 purpose and inputs but does not mention what the output (ICP suggestion) looks like or its format. Since there is no output schema, this information would be helpful for completeness. 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.

Parameters3/5

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

Schema has 100% description coverage for both parameters (website, description). The description adds no additional meaning beyond what the schema already provides, 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 clearly states the tool analyzes the user's account and generates an ICP suggestion using website, contacts, and campaign history. It distinguishes from sibling tools like get_icp (which likely retrieves existing ICP) by focusing on generation.

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 provides context (uses website, existing contacts, campaign history) but does not explicitly state when to use this tool vs alternatives like get_icp or show_suggestions. No exclusion criteria are given.

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

update_contactCInspect

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 non-readOnly and non-destructive; description adds no further behavioral context (e.g., whether updates are partial, idempotent, auth requirements, error handling).

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?

Single sentence efficiently conveys the tool's purpose with examples. No unnecessary words, though could be structured with bullet points for clarity.

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?

Given 11 parameters, no output schema, and minimal annotations, the description lacks details on success/error behavior, partial updates, required permissions, and operational context.

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 only 9% schema coverage, the description lists some fields (job title, company, lifecycle stage, status, notes) but omits semantics for others like email, phone, contact_id, etc. It adds marginal value over 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 clearly states the tool updates a contact's fields in Xmagnet and lists examples like job title, company, lifecycle stage, status, and notes, distinguishing it from create or enrich tools.

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 explicit guidance on when to use this vs. alternatives (e.g., create_contact, enrich_contact). While 'update' implies existing contacts, no when-not or exclusions are given.

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 indicate readOnlyHint=false and destructiveHint=false. The description adds behavioral context: it inserts contacts (mutation, not destructive), requires email per row, limits to 500 rows, and depends on prior field_mapping. This goes beyond annotations by detailing operational constraints.

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 (3 sentences), front-loaded with 'STEP 2 of contact upload', and every sentence provides essential information: action, requirements, constraints, and prerequisite. 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 the tool's complexity (nested objects, required params, no output schema) and the context of sibling tools (many contact-related), the description covers the necessary step order, constraints, and prerequisites. It lacks only a mention of what the function returns (e.g., success count or error details), but since there's no output schema, 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?

Schema coverage is 100%, so baseline is 3. The description adds value by clarifying that 'contacts' must be keyed by original column headers and 'field_mappings' must come from preview_upload_mapping. This explains the structure of the nested objects beyond the schema's generic 'object' type.

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 as STEP 2 of contact upload, inserting contacts using confirmed field mappings. It uses specific verbs ('inserts contacts') and identifies the resource (Xmagnet contacts). It also distinguishes from siblings by referencing prerequisite step preview_upload_mapping, making it unique among contact-related tools.

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 ('STEP 2', after preview_upload_mapping) and when not to ('NEVER call before preview_upload_mapping'). It provides constraints (email per row, max 500 per call). However, it does not mention alternatives among siblings (e.g., add_contacts) or when to use this vs. other upload/create tools.

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?

The description adds behavioral context beyond the readOnlyHint and destructiveHint annotations by stating it checks MX records and identifies disposable/role addresses. This helps the agent understand the tool's non-destructive, read-only nature and its specific checks.

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 with three sentences. The first sentence states the purpose clearly, and subsequent sentences provide parameter usage guidance. No extraneous 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 is simple with no output schema, the description covers the main functionality and usage. It could be more complete by mentioning the return format, but for a validation tool, it provides sufficient context.

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 input schema has 100% description coverage. The tool description adds semantic value by explaining the distinction between single and bulk usage (email vs emails array), which is not fully captured in the schema alone.

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

Purpose5/5

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

The description clearly states the tool validates deliverability of email addresses. It specifies the verb 'validate', the resource 'email addresses', and the result 'deliverable'. It distinguishes well from sibling tools like 'enrich_contact' or 'add_contacts' which serve 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 explicit guidance on when to use the 'email' parameter for a single address and the 'emails' array for bulk up to 50. It does not explicitly mention when not to use the tool or provide alternatives, but the context is clear enough for an AI agent.

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!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources