Skip to main content
Glama
BusyBee3333

Keap MCP Server

by BusyBee3333

Keap MCP Server

Complete Model Context Protocol server for Keap (formerly Infusionsoft) with 111 tools and 22 React apps.

Features

šŸ› ļø Comprehensive Tool Coverage (111 tools)

  • Contacts: Full CRUD, search, tagging, custom fields, bulk operations, merge, email opt status

  • Companies: CRUD, search, company-contact associations

  • Opportunities: Complete sales pipeline (CRUD, stages, stage moves, search, bulk operations)

  • Tasks: CRUD, completion tracking, search, bulk updates

  • Appointments: CRUD, scheduling, calendar integration, search

  • Campaigns: CRUD, sequence management, contact additions, achievement tracking

  • Tags: CRUD, category management, contact tagging/untagging, bulk operations

  • Notes: CRUD, contact/opportunity associations, search

  • Emails: Send transactional and marketing emails, templates, tracking, opt status

  • Files: Upload, retrieve, associate with contacts/companies

  • E-commerce: Products, orders, subscriptions, payments, refunds, transaction history

  • Automations: Campaign builder sequences, goal tracking, link triggers

  • Settings: Account info, user management, custom fields, settings configuration

  • Affiliates: Program management, commissions, payouts, clawbacks, summaries

šŸŽØ MCP Apps (22 React Apps)

  1. Contact Dashboard - Contact list with metrics and search

  2. Contact Detail - Comprehensive contact profile view

  3. Contact Grid - Data grid with filtering and bulk actions

  4. Contact Timeline - Activity timeline and interaction history

  5. Company Dashboard - Company overview and metrics

  6. Company Detail - Detailed company information

  7. Company Grid - Companies data grid with search

  8. Deal Dashboard - Sales pipeline overview

  9. Deal Detail - Opportunity details and stage tracking

  10. Pipeline Kanban - Visual drag-and-drop pipeline management

  11. Pipeline Funnel - Conversion funnel visualization

  12. Task Manager - Task list with priorities and due dates

  13. Appointment Calendar - Calendar view with scheduling

  14. Campaign Dashboard - Campaign performance metrics

  15. Campaign Detail - Campaign sequence and analytics

  16. Email Composer - Rich email composition interface

  17. Tag Manager - Tag organization and bulk tagging

  18. Automation Dashboard - Campaign builder overview

  19. Product Catalog - E-commerce product management

  20. Order Dashboard - Order tracking and fulfillment

  21. Order Detail - Detailed order information

  22. Revenue Dashboard - Revenue analytics and reporting

Related MCP server: plunk-mcp

Installation

npm install @mcpengine/keap

Configuration

Environment Variables

KEAP_API_KEY=your_personal_access_token

Personal Access Token Setup

  1. Log in to your Keap account

  2. Navigate to Admin → Settings → Application

  3. Click on API tab

  4. Generate a new Personal Access Token

  5. Copy the token and use it as KEAP_API_KEY

MCP Settings (Claude Desktop)

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "keap": {
      "command": "npx",
      "args": ["-y", "@mcpengine/keap"],
      "env": {
        "KEAP_API_KEY": "your_personal_access_token"
      }
    }
  }
}

Usage Examples

Create a Contact

{
  "tool": "keap_create_contact",
  "arguments": {
    "given_name": "John",
    "family_name": "Doe",
    "email": "john.doe@example.com",
    "phone": "555-0123",
    "company_name": "Acme Corp",
    "job_title": "CTO",
    "tag_ids": [123, 456]
  }
}

Search Contacts

{
  "tool": "keap_search_contacts",
  "arguments": {
    "email": "john@example.com",
    "given_name": "John",
    "order": "email",
    "limit": 50
  }
}

Create an Opportunity

{
  "tool": "keap_create_opportunity",
  "arguments": {
    "title": "New Website Project",
    "contact_id": 12345,
    "stage_id": 789,
    "projected_revenue": 15000,
    "opportunity_notes": "Interested in complete redesign"
  }
}

Move Opportunity Stage

{
  "tool": "keap_move_opportunity_stage",
  "arguments": {
    "opportunity_id": 98765,
    "stage_id": 790,
    "notes": "Proposal sent, awaiting review"
  }
}

Tag Contacts

{
  "tool": "keap_apply_tags_to_contacts",
  "arguments": {
    "contact_ids": [123, 456, 789],
    "tag_ids": [10, 20]
  }
}

Send Email

{
  "tool": "keap_send_email",
  "arguments": {
    "contact_ids": [12345],
    "subject": "Welcome to our service!",
    "html_content": "<h1>Welcome!</h1><p>Thank you for joining us.</p>",
    "text_content": "Welcome! Thank you for joining us."
  }
}

Create a Product

{
  "tool": "keap_create_product",
  "arguments": {
    "product_name": "Premium Subscription",
    "product_price": 99.99,
    "product_desc": "Monthly premium access",
    "sku": "PREM-001",
    "status": 1
  }
}

Create an Order

{
  "tool": "keap_create_order",
  "arguments": {
    "contact_id": 12345,
    "order_items": [
      {
        "product_id": 456,
        "quantity": 2,
        "price": 99.99
      }
    ],
    "order_title": "Q1 Subscription"
  }
}

Tool Reference

Contact Tools (19 tools)

  • keap_create_contact - Create new contact

  • keap_get_contact - Get contact by ID

  • keap_update_contact - Update contact details

  • keap_delete_contact - Delete contact

  • keap_list_contacts - List all contacts (paginated)

  • keap_search_contacts - Search contacts by criteria

  • keap_get_contact_emails - Get contact's email addresses

  • keap_create_contact_email - Add email to contact

  • keap_update_contact_email - Update email address

  • keap_delete_contact_email - Remove email address

  • keap_apply_tags_to_contact - Tag a single contact

  • keap_remove_tags_from_contact - Remove tags from contact

  • keap_get_contact_tags - List contact's tags

  • keap_merge_contacts - Merge duplicate contacts

  • keap_apply_tags_to_contacts - Bulk tag multiple contacts

  • keap_remove_tags_from_contacts - Bulk remove tags

  • keap_get_contact_opt_status - Check email opt-in status

  • keap_opt_in_contact - Opt in contact for emails

  • keap_opt_out_contact - Opt out contact from emails

Company Tools (5 tools)

  • keap_create_company - Create new company

  • keap_get_company - Get company by ID

  • keap_update_company - Update company details

  • keap_list_companies - List all companies (paginated)

  • keap_search_companies - Search companies by criteria

Opportunity Tools (9 tools)

  • keap_create_opportunity - Create new opportunity

  • keap_get_opportunity - Get opportunity by ID

  • keap_update_opportunity - Update opportunity details

  • keap_list_opportunities - List opportunities (paginated)

  • keap_search_opportunities - Search opportunities by criteria

  • keap_move_opportunity_stage - Move opportunity to new stage

  • keap_get_opportunity_pipeline - Get pipeline stages

  • keap_bulk_update_opportunities - Update multiple opportunities

  • keap_get_opportunity_stage_details - Get stage information

Task Tools (8 tools)

  • keap_create_task - Create new task

  • keap_get_task - Get task by ID

  • keap_update_task - Update task details

  • keap_delete_task - Delete task

  • keap_list_tasks - List tasks (paginated)

  • keap_search_tasks - Search tasks by criteria

  • keap_complete_task - Mark task as complete

  • keap_bulk_update_tasks - Update multiple tasks

Appointment Tools (6 tools)

  • keap_create_appointment - Create new appointment

  • keap_get_appointment - Get appointment by ID

  • keap_update_appointment - Update appointment details

  • keap_delete_appointment - Delete appointment

  • keap_list_appointments - List appointments (paginated)

  • keap_search_appointments - Search appointments by criteria

Campaign Tools (7 tools)

  • keap_create_campaign - Create new campaign

  • keap_get_campaign - Get campaign by ID

  • keap_list_campaigns - List campaigns (paginated)

  • keap_add_contact_to_campaign - Add contact to campaign sequence

  • keap_remove_contact_from_campaign - Remove contact from campaign

  • keap_get_campaign_sequence - Get campaign sequence details

  • keap_get_campaign_achievements - Get campaign completion data

Tag Tools (5 tools)

  • keap_create_tag - Create new tag

  • keap_get_tag - Get tag by ID

  • keap_list_tags - List all tags

  • keap_create_tag_category - Create tag category

  • keap_list_tag_categories - List tag categories

Note Tools (6 tools)

  • keap_create_note - Create new note

  • keap_get_note - Get note by ID

  • keap_update_note - Update note content

  • keap_delete_note - Delete note

  • keap_list_notes - List notes (paginated)

  • keap_search_notes - Search notes by criteria

Email Tools (7 tools)

  • keap_send_email - Send email to contacts

  • keap_create_email_template - Create email template

  • keap_get_email_template - Get template by ID

  • keap_list_email_templates - List email templates

  • keap_send_template_email - Send templated email

  • keap_get_email_stats - Get email sending statistics

  • keap_check_email_deliverability - Check email configuration

File Tools (4 tools)

  • keap_upload_file - Upload file to Keap

  • keap_get_file - Download file by ID

  • keap_list_files - List uploaded files

  • keap_delete_file - Delete file

E-commerce Tools (15 tools)

  • keap_create_product - Create new product

  • keap_get_product - Get product by ID

  • keap_update_product - Update product details

  • keap_delete_product - Delete product

  • keap_list_products - List products (paginated)

  • keap_create_order - Create new order

  • keap_get_order - Get order by ID

  • keap_update_order - Update order details

  • keap_list_orders - List orders (paginated)

  • keap_create_subscription - Create recurring subscription

  • keap_get_subscription - Get subscription by ID

  • keap_cancel_subscription - Cancel subscription

  • keap_create_payment - Record payment

  • keap_refund_payment - Process refund

  • keap_get_transaction_history - Get payment history

Automation Tools (6 tools)

  • keap_create_campaign_sequence - Create automation sequence

  • keap_get_campaign_sequence - Get sequence details

  • keap_update_campaign_sequence - Update sequence

  • keap_create_campaign_goal - Create campaign goal

  • keap_get_campaign_goals - List campaign goals

  • keap_trigger_link_click - Trigger link-based automation

Settings Tools (5 tools)

  • keap_get_account_info - Get account information

  • keap_list_users - List account users

  • keap_get_user - Get user details

  • keap_list_custom_fields - List custom fields

  • keap_create_custom_field - Create custom field

Affiliate Tools (9 tools)

  • keap_create_affiliate - Create affiliate account

  • keap_get_affiliate - Get affiliate by ID

  • keap_list_affiliates - List affiliates (paginated)

  • keap_update_affiliate - Update affiliate details

  • keap_get_affiliate_commissions - Get commission history

  • keap_create_affiliate_payout - Create payout

  • keap_create_affiliate_clawback - Reverse commission

  • keap_get_affiliate_summary - Get performance summary

  • keap_search_affiliates - Search affiliates by criteria

Architecture

src/
ā”œā”€ā”€ server.ts              # MCP server setup
ā”œā”€ā”€ main.ts                # Entry point
ā”œā”€ā”€ clients/
│   └── keap.ts           # Keap API client (REST API, rate limiting, error handling)
ā”œā”€ā”€ tools/                 # Tool definitions (14 files)
│   ā”œā”€ā”€ contacts-tools.ts
│   ā”œā”€ā”€ companies-tools.ts
│   ā”œā”€ā”€ opportunities-tools.ts
│   ā”œā”€ā”€ tasks-tools.ts
│   ā”œā”€ā”€ appointments-tools.ts
│   ā”œā”€ā”€ campaigns-tools.ts
│   ā”œā”€ā”€ tags-tools.ts
│   ā”œā”€ā”€ notes-tools.ts
│   ā”œā”€ā”€ emails-tools.ts
│   ā”œā”€ā”€ files-tools.ts
│   ā”œā”€ā”€ ecommerce-tools.ts
│   ā”œā”€ā”€ automations-tools.ts
│   ā”œā”€ā”€ settings-tools.ts
│   └── affiliates-tools.ts
ā”œā”€ā”€ types/
│   └── index.ts          # TypeScript interfaces
└── ui/
    └── react-app/        # MCP Apps (22 apps)
        ā”œā”€ā”€ contact-dashboard/
        ā”œā”€ā”€ contact-detail/
        ā”œā”€ā”€ contact-grid/
        ā”œā”€ā”€ contact-timeline/
        ā”œā”€ā”€ company-dashboard/
        ā”œā”€ā”€ company-detail/
        ā”œā”€ā”€ company-grid/
        ā”œā”€ā”€ deal-dashboard/
        ā”œā”€ā”€ deal-detail/
        ā”œā”€ā”€ pipeline-kanban/
        ā”œā”€ā”€ pipeline-funnel/
        ā”œā”€ā”€ task-manager/
        ā”œā”€ā”€ appointment-calendar/
        ā”œā”€ā”€ campaign-dashboard/
        ā”œā”€ā”€ campaign-detail/
        ā”œā”€ā”€ email-composer/
        ā”œā”€ā”€ tag-manager/
        ā”œā”€ā”€ automation-dashboard/
        ā”œā”€ā”€ product-catalog/
        ā”œā”€ā”€ order-dashboard/
        ā”œā”€ā”€ order-detail/
        └── revenue-dashboard/

API Coverage

  • āœ… Contacts API (complete)

  • āœ… Companies API (complete)

  • āœ… Opportunities API (complete)

  • āœ… Tasks API (complete)

  • āœ… Appointments API (complete)

  • āœ… Campaigns API (complete)

  • āœ… Tags API (complete)

  • āœ… Notes API (complete)

  • āœ… Emails API (complete)

  • āœ… Files API (complete)

  • āœ… E-commerce API (complete - products, orders, subscriptions, payments)

  • āœ… Automations API (campaign sequences, goals, triggers)

  • āœ… Settings API (account info, users, custom fields)

  • āœ… Affiliates API (complete)

Rate Limiting

The Keap API enforces rate limits:

  • Burst limit: 10 requests per second

  • Daily limit: 10,000 requests per day (may vary by plan)

The MCP client automatically handles rate limiting with:

  • Exponential backoff on 429 responses

  • Request queuing

  • Automatic retry logic

Error Handling

All tools provide comprehensive error messages:

{
  "isError": true,
  "content": [
    {
      "type": "text",
      "text": "Error: Contact not found (ID: 12345)"
    }
  ]
}

Common error scenarios:

  • Invalid authentication (401)

  • Rate limit exceeded (429)

  • Resource not found (404)

  • Validation errors (400)

  • Server errors (500)

Development

Build from source

git clone https://github.com/BusyBee3333/mcpengine
cd mcpengine/servers/keap
npm install
npm run build

Run in development mode

npm run dev

Type checking

npx tsc --noEmit

Build React apps

cd src/ui/react-app
npm install
npm run build

Best Practices

Contact Management

  1. Use tags effectively: Organize contacts with meaningful tags for segmentation

  2. Custom fields: Leverage custom fields for industry-specific data

  3. Merge duplicates: Regularly use keap_merge_contacts to maintain data quality

  4. Opt-in compliance: Always check opt status before sending marketing emails

Sales Pipeline

  1. Consistent stage moves: Use keap_move_opportunity_stage to track progression

  2. Revenue tracking: Keep projected revenue updated for accurate forecasting

  3. Pipeline hygiene: Regularly review and close stale opportunities

Automation

  1. Campaign sequences: Build automated follow-up sequences for lead nurturing

  2. Goal tracking: Set clear goals to measure campaign effectiveness

  3. Link triggers: Use link-based triggers for behavior-based automation

E-commerce

  1. Product catalog: Maintain accurate SKUs and pricing

  2. Order tracking: Use order IDs consistently across systems

  3. Subscription management: Monitor subscription status and renewal dates

  4. Payment reconciliation: Regular transaction history reviews

Keap Plans & Features

Different Keap plans provide varying API capabilities:

  • Lite: Basic contact and email tools

  • Pro: Full CRM, sales pipeline, and automation

  • Max: E-commerce, advanced automations, affiliate management

  • Max Classic: Legacy features, additional e-commerce capabilities

Ensure your plan supports the features you intend to use via the API.

Troubleshooting

Authentication Issues

# Verify your API key
curl -H "X-Keap-API-Key: YOUR_API_KEY" https://api.infusionsoft.com/crm/rest/v1/account/profile

Rate Limiting

If you encounter frequent rate limits:

  1. Reduce concurrent request volume

  2. Implement longer delays between operations

  3. Consider upgrading your Keap plan for higher limits

Contact Not Found

Ensure contact IDs are valid:

// First search for the contact
const result = await keap_search_contacts({
  email: "user@example.com"
});
// Then use the returned ID

Migration from Infusionsoft XML-RPC

If migrating from the legacy XML-RPC API:

  1. Authentication: Replace legacy keys with Personal Access Tokens

  2. Endpoints: Update from XML-RPC to REST API patterns

  3. Data format: Convert XML structures to JSON

  4. Field mappings: Review custom field IDs (may have changed)

License

MIT

Support

For issues and feature requests, please visit: https://github.com/BusyBee3333/mcpengine/issues

Changelog

Version 1.0.0

  • Initial release

  • 111 tools across 14 categories

  • 22 React apps for visual interfaces

  • Full Keap REST API coverage

  • Rate limiting and error handling

  • Comprehensive TypeScript types

Available Tools

111 tools
keap_add_contact_to_campaignC

Add a contact to a campaign sequence

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID
campaign_idYesCampaign ID

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits like idempotency, error handling, or side effects. It only states the basic action, leaving the agent unaware of important behaviors such as what happens if the contact is already in the campaign.

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

Conciseness3/5

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

The description is a single sentence with no extraneous content, but it sacrifices necessary details for brevity. While concise, it is under-specification and not optimally informative.

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 tool's simplicity and lack of output schema, the description fails to explain the expected outcome or return value. It is incomplete, leaving the agent without sufficient context for correct invocation.

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

Parameters3/5

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

The schema provides descriptions for both parameters, achieving 100% coverage. The description adds no additional meaning beyond the schema, so it meets the baseline but does not enhance understanding of parameter semantics.

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 the action 'Add a contact to a campaign sequence', which is a specific verb and resource. However, it does not differentiate from the sibling tool 'keap_add_contact_to_sequence', which could cause confusion as both involve adding a contact to a sequence or campaign.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool over alternatives, such as 'keap_add_contact_to_sequence' or 'keap_remove_contact_from_campaign'. The description lacks any context about prerequisites or usage scenarios.

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

keap_add_contact_to_sequenceC

Add a contact to a specific campaign sequence

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID
sequence_idYesSequence ID

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only states 'Add a contact' but does not disclose whether adding is idempotent, if there are side effects, error conditions, or what happens if the contact is already in the sequence. The description adds minimal value beyond the tool name.

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

Conciseness3/5

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

The description is a single sentence, which is compact but lacks necessary detail. It is not front-loaded with critical context. While concise, it sacrifices completeness.

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 simplicity of the tool (2 params, no output schema), the description could still benefit from explaining return values, potential errors, or idempotency. The sibling tools suggest alternatives but the description does not clarify how this tool fits. It leaves the agent underinformed.

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 baseline is 3. The description does not add any extra meaning to the parameters beyond 'Contact ID' and 'Sequence ID'. It does not explain format, constraints, or how to obtain these IDs.

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 the action (Add) and the target (contact to a campaign sequence). It distinguishes from siblings like keap_add_contact_to_campaign and keap_remove_contact_from_sequence by specifying the resource (sequence) and the operation (add). However, it lacks nuance like explaining that a sequence is part of 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 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 keap_add_contact_to_campaign. There are no prerequisites, exclusions, or context hints. The agent is left to infer 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.

keap_apply_tag_to_contactB

Apply one or more tags to a contact

ParametersJSON Schema
NameRequiredDescriptionDefault
tag_idsYesArray of tag IDs to apply
contact_idYesContact ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations present; description lacks disclosure of behavioral traits like idempotency, whether tags are appended or replaced, or authorization requirements.

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, no fluff. Appropriate for a simple tool, but could include more detail without being verbose.

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 fails to mention return values, error handling, or any additional context for a mutation tool.

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 baseline is 3. The description adds no additional 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 action (apply), resource (tags), and target (contact). It effectively distinguishes from sibling tools like keap_remove_tag_from_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., keap_add_contact_to_campaign). No prerequisites or context provided.

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

keap_complete_taskB

Mark a task as completed

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID
completion_dateNoCompletion date (ISO format)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states 'mark as completed' without mentioning side effects, permissions, reversibility, or whether the task is removed from lists. This is minimal and insufficient for a mutation tool.

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 very concise, consisting of a single phrase with no wasted words. However, it is arguably too terse and could benefit from additional context without becoming verbose. It is efficient but minimally informative.

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 absence of an output schema and annotations, the description should provide more context about the effect of completing a task, such as whether it updates related records or triggers workflows. The current description is incomplete for a mutation tool with no supplementary metadata.

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

Parameters3/5

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

The input schema has 100% description coverage for both parameters (task_id and completion_date), so the schema already explains their meanings. The description does not add any additional semantic context beyond what the schema provides, yielding a baseline score of 3.

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

Purpose5/5

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

The description 'Mark a task as completed' uses a specific verb ('mark') and resource ('task'), and clearly distinguishes from siblings like keap_create_task, keap_update_task, and keap_delete_task.

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 when-to-use or when-not-to-use guidance is provided. The description does not mention alternatives, though the sibling tools (e.g., keap_update_task) could imply that this tool is specifically for completing a task. The context is implied but not explicit.

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

keap_create_affiliateC

Create a new affiliate

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesAffiliate code
nameYesAffiliate name
parent_idNoParent affiliate ID
contact_idYesContact ID for this affiliate
track_leads_forNoNumber of days to track leads

TDQS

C2.7/5.0
Behavior1/5

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

Without annotations, the description carries full burden for behavioral traits, but it is silent on side effects, permissions, or data impact. It only says 'create', implying mutation, but no additional detail.

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

Conciseness5/5

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

The description is one sentence of four words—extremely concise with no redundant information. For a simple creation tool, this level of brevity is appropriate.

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 five parameters, the description should at least hint at return behavior (e.g., returns created affiliate ID). It provides no such information, making it incomplete for an 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 description coverage is 100%, so the schema fully documents parameters. The description adds no extra meaning beyond what is in the input schema, earning a baseline score of 3.

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 'Create a new affiliate' clearly states the verb and resource, making it obvious what the tool does. However, it does not distinguish this tool from other create tools among siblings, though the resource name 'affiliate' is unique.

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 or when not to use this tool, nor any mention of alternatives. The agent receives no context for selection among siblings.

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

keap_create_appointmentB

Create a new appointment in Keap

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesAppointment title
all_dayNoIs this an all-day event?
user_idNoAssigned user ID
end_dateYesEnd date/time (ISO format)
locationNoLocation
contact_idNoAssociated contact ID
start_dateYesStart date/time (ISO format)
descriptionNoAppointment description
remind_timeNoReminder time in minutes before appointment

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but offers no behavioral information such as side effects, error handling, permission requirements, or constraints like date validation. The one-line description is insufficient for a mutation tool.

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

Conciseness3/5

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

The description is very concise (six words) and front-loaded, but it sacrifices necessary detail. It is not verbose, but it is under-specific for a tool with 9 parameters and no output schema.

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 tool has 9 parameters, no output schema, and no annotations, the description is incomplete. It fails to explain return values, side effects, or how parameters like remind_time or location relate to the appointment creation process.

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 baseline is 3. The description adds no additional meaning beyond the schema; it does not explain parameter interactions, format requirements, or optionality trade-offs.

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 it creates an appointment in Keap, using a specific verb and resource. It clearly distinguishes itself from sibling tools like keap_update_appointment, keap_delete_appointment, and keap_create_task.

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 given on when to use this tool versus alternatives, prerequisites (e.g., need a user_id or contact_id), or when not to use it. The description provides no contextual usage advice.

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

keap_create_companyC

Create a new company in Keap

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity
emailNoCompany email
notesNoNotes about the company
phoneNoCompany phone
stateNoState/Region
countryNoCountry code
websiteNoCompany website
postal_codeNoPostal code
company_nameYesCompany name
address_line1NoStreet address

TDQS

C2.8/5.0
Behavior1/5

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

With no annotations, the description must carry behavioral disclosure. It only says 'Create a new company' without addressing permissions, uniqueness constraints, side effects, or error conditions. This is insufficient.

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 one short sentence, which is highly concise. It is front-loaded with the key action. Could be slightly more structured but achieves clarity efficiently.

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

Completeness1/5

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

For a creation tool with 10 parameters and no output schema, the description is too brief. It does not explain return values, duplicate handling, or required fields beyond schema. Incomplete for safe 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 each parameter is described in the schema. The description adds no further meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Create' and the resource 'company in Keap', distinguishing it from update tools like keap_update_company. It is specific and unambiguous.

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

Usage 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. No mention of conditions, prerequisites, or when not to use it. The description lacks context for decision-making.

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

keap_create_contactB

Create a new contact in Keap with email, name, phone, address, tags, and custom fields

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity
emailNoPrimary email address
phoneNoPrimary phone number
stateNoState/Region
countryNoCountry code (e.g., US)
tag_idsNoArray of tag IDs to apply
owner_idNoUser ID of contact owner
job_titleNoJob title
given_nameNoFirst name
family_nameNoLast name
postal_codeNoPostal/ZIP code
company_nameNoCompany name
address_line1NoStreet address line 1
address_line2NoStreet address line 2
custom_fieldsNoCustom field values [{id, content}]
opt_in_reasonNoReason for opt-in (required for GDPR)

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only states the creation action without mentioning side effects, duplicate handling, authentication needs, or error conditions.

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

Conciseness5/5

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

The description is a single concise sentence of 15 words, front-loading the action and avoiding redundancy. Every word is informative.

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 tool with 16 parameters and no output schema, the description lacks information about return values, validation rules, and behavioral contexts, making it insufficient for confident agent use.

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 baseline is 3. The description enumerates broad categories (email, name, phone, address, tags, custom fields) but does not add meaning beyond the schema's detailed descriptions.

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

Purpose5/5

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

The description clearly states the tool creates a new contact, specifying key fields like email, name, phone, address, tags, and custom fields. It distinguishes from sibling tools like keap_update_contact and keap_merge_contacts by emphasizing creation.

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. For example, it does not mention handling existing contacts, prerequisites, or scenarios where keap_update_contact would be more appropriate.

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

keap_create_contact_credit_cardB

Add a new credit card to a contact

ParametersJSON Schema
NameRequiredDescriptionDefault
card_typeNoCard type (Visa, Mastercard, etc.)
contact_idYesContact ID
card_numberYesCredit card number
name_on_cardNoName as shown on card
expiration_yearYesExpiration year (YYYY)
expiration_monthYesExpiration month (MM)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the action without revealing key behaviors like validation, storage, return value, or handling of duplicate cards.

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 is efficient and front-loaded. However, it could be slightly more informative without becoming wordy.

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 tool dealing with sensitive financial data, the description lacks important context such as security measures, validation, return value (e.g., card ID), and behavior when multiple cards exist. No output schema is provided to fill the gap.

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 all parameters. The description adds no extra meaning beyond what the schema provides, earning a baseline score of 3.

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

Purpose5/5

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

The description 'Add a new credit card to a contact' uses a specific verb ('Add') and clearly identifies the resource ('a new credit card') and the target ('a contact'). It distinguishes from siblings, such as keap_get_contact_credit_cards, which retrieves data.

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, such as keap_get_contact_credit_cards to check existing cards. No prerequisites (e.g., contact must exist) or conditions for use are mentioned.

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

keap_create_contact_emailB

Add a new email address to a contact

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address
fieldNoField type (EMAIL1, EMAIL2, EMAIL3)EMAIL1
contact_idYesContact ID

TDQS

B3/5.0
Behavior2/5

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

No annotations provided. The description does not disclose side effects or limitations, such as how adding an email interacts with existing email fields (e.g., does it replace or append?), or whether contact must exist.

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

Conciseness3/5

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

Single sentence, no unnecessary words, but omits important details. Adequate conciseness but at the cost of completeness.

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 return values or success indicators. For a creation tool with 3 parameters, more context is needed (e.g., what happens if email already exists).

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 baseline 3. The description adds no extra meaning beyond the schema descriptions. The field parameter's purpose (EMAIL1, EMAIL2, EMAIL3) is not clarified in the description.

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 'Add', resource 'new email address', and target 'contact'. It distinguishes from siblings like keap_create_contact (creates whole contact) and keap_delete_contact_email (removes email).

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 vs alternatives (e.g., keap_update_contact for changing primary email) or prerequisites like an existing contact. The description lacks usage context.

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

keap_create_email_templateC

Create an email template

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTemplate name
subjectYesEmail subject
html_contentNoHTML content
text_contentNoPlain text content

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden. It merely repeats the tool's action ('Create') without disclosing side effects, idempotency, rate limits, or what happens on duplicate names.

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

Conciseness2/5

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

Excessively concise (one sentence) but omits critical information. Brevity at the cost of completeness is a detriment.

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

Completeness1/5

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

With no output schema, no annotations, and 4 parameters, the description provides almost no context. Missing: return value, required permissions, how created template is used, validation rules.

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 tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose4/5

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

Description states 'Create an email template' which is a clear verb+resource pair. It distinguishes from sibling tools like 'keap_list_email_templates' and 'keap_send_email' but adds no additional context beyond the tool's name.

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., 'keap_list_email_templates' for listing, 'keap_send_email' for sending). No prerequisites or context provided.

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

keap_create_hookB

Create a REST hook for automation (webhook)

ParametersJSON Schema
NameRequiredDescriptionDefault
hookUrlYesWebhook URL to call
eventKeyYesEvent key (e.g., contact.add, opportunity.add)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description fails to mention behavioral traits such as side effects, error handling, or authentication requirements. It only indicates creation without elaboration.

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 extremely concise, consisting of a single phrase. While efficient, it could benefit from slight expansion for clarity without losing brevity.

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 simple tool with 2 parameters and no output schema, the description lacks completeness. It does not explain what a REST hook does, when it triggers, or how to verify creation. Additional context would improve usability.

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

Parameters3/5

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

Schema description coverage is 100% with clear descriptions for both parameters. The tool description adds no additional meaning beyond the schema, so 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 the verb 'Create' and resource 'REST hook for automation (webhook)', distinguishing it from sibling tools like keap_list_hooks, keap_delete_hook, etc.

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 like keap_update_hook or keap_verify_hook. It only states what it does, not the context or prerequisites.

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

keap_create_noteB

Create a note for a contact

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesNote content
typeNoNote type (Appointment, Call, Email, etc.)
titleNoNote title
user_idNoUser ID who created the note
contact_idYesContact ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits beyond creation. Missing details include whether the note is associated with the current user, error handling for invalid contact IDs, 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.

Conciseness5/5

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

The description is a single, concise sentence with no wasted words. It is front-loaded and 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 and 5 parameters, the description does not explain what the tool returns (e.g., the created note or its ID). For a creation tool, this is a significant gap in 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 input schema already explains each parameter. The description adds no additional meaning beyond what is in the schema. 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 'Create a note for a contact' uses a specific verb (create) and resource (note for a contact), clearly distinguishing it from sibling tools like update, delete, get, and list notes.

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 keap_update_note or keap_list_notes. The description only states the action, leaving the agent to infer usage from the name.

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

keap_create_opportunityB

Create a new sales opportunity/deal in Keap

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idNoUser ID (owner of opportunity)
stage_idYesPipeline stage ID
contact_idYesContact ID associated with this opportunity
custom_fieldsNoCustom fields
next_action_dateNoNext action date (ISO format)
next_action_notesNoNext action notes
opportunity_notesNoNotes about this opportunity
opportunity_titleYesDeal/opportunity title
estimated_close_dateNoEstimated close date (ISO format)
projected_revenue_lowNoLow revenue estimate
projected_revenue_highNoHigh revenue estimate

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, and the description does not disclose behavioral traits such as side effects, required permissions, or responses. The minimal description fails to inform the agent beyond the basic function.

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 effectively communicates the tool's purpose. It is front-loaded and contains no unnecessary verbiage.

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

Completeness2/5

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

With 11 parameters, no output schema, and no annotations, the description is insufficient. It lacks details on constraints, defaults, or validation rules, making it incomplete for complex usage.

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 itself provides full parameter details. The description adds no additional meaning beyond what is already in the schema.

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

Purpose5/5

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

The description clearly states the action ('Create') and the resource ('new sales opportunity/deal in Keap'). It is specific and distinct from sibling tools like keap_create_contact or keap_create_order.

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 vs alternatives provided. Among siblings, there are update and delete opportunity tools, but no exclusions or context are given.

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

keap_create_orderC

Create a new order in Keap

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID
order_typeNoOrder type (Online, Offline)Online
order_itemsYesArray of order items
order_titleYesOrder title
promo_codesNoPromo codes to apply

TDQS

C2.7/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It merely states 'Create a new order' without revealing side effects (e.g., whether it triggers workflows), required permissions, or any irreversible actions. This is insufficient for a mutation tool.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It is as concise as possible while still conveying the core purpose.

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?

Despite high schema coverage, the description lacks completeness for a creation tool. It does not explain the significance of the order (e.g., financial implications), the default behavior (order_type defaults to 'Online'), or any context about how the order is processed. The absence of an output schema further underscores the need for more descriptive context.

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 input schema already documents all parameters. The description adds no additional semantics beyond the schema, making the baseline score of 3 appropriate.

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 'Create a new order in Keap' clearly indicates the verb (create) and resource (order). It distinguishes from sibling tools like keap_get_order (retrieval) and keap_delete_order (deletion), but lacks additional detail about the type of order or context that would further differentiate it from other creation 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 usage guidelines are provided. The description does not specify when to use this tool versus alternatives like keap_create_subscription or keap_create_opportunity, nor does it mention prerequisites (e.g., the contact must already exist) or constraints (e.g., order items format).

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

keap_create_productB

Create a new product in Keap

ParametersJSON Schema
NameRequiredDescriptionDefault
skuNoSKU code
urlNoProduct URL
product_descNoFull description
product_nameYesProduct name
product_priceYesProduct price
subscription_onlyNoIs subscription-only product
product_short_descNoShort description

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the basic action. No disclosure of idempotency, side effects, authentication needs, rate limits, or behavior on duplicate product names.

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 with no wasted words, but it is under-specified for the tool's complexity.

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 is too minimal for a tool with 7 parameters and no output schema. It does not explain return value, behavior of subscription_only, or any other context.

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 each parameter, so the description adds no extra meaning beyond the schema. 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?

The description 'Create a new product in Keap' clearly states the verb (create) and resource (product), distinguishing it from sibling tools like get, list, update, and delete product 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 guidance on when to use this tool versus alternatives, no prerequisites, no error handling or when-not-to-use information provided.

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

keap_create_subscriptionC

Create a subscription for a contact

ParametersJSON Schema
NameRequiredDescriptionDefault
quantityNoQuantity
contact_idYesContact ID
product_idYesProduct ID
billing_amountNoBilling amount
credit_card_idNoCredit card ID for payment
subscription_plan_idYesSubscription plan ID

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as side effects (e.g., billing initiation), required permissions, or error conditions. The agent is left to infer behavior from the name alone.

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

Conciseness3/5

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

The description is extremely concise (one sentence) but lacks structure; it does not include any additional details or bullets that could aid understanding. It is not verbose but also not optimally informative.

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 absence of an output schema and annotations, the description should explain what a subscription creation involves (e.g., recurring billing, plan details). It fails to provide sufficient context for an agent to understand the tool's full impact.

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% coverage with parameter descriptions, but the tool description adds no additional context beyond the schema. Baseline score of 3 is appropriate as no extra semantic value is provided.

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 the action ('Create a subscription') and the target resource ('for a contact'). It distinguishes from other create tools like keap_create_order, though it does not explicitly differentiate among sibling create 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 guidance on when to use this tool versus alternatives such as keap_create_order or keap_apply_tag_to_contact. The description lacks context about prerequisites or typical use cases.

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

keap_create_tagC

Create a new tag in Keap

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTag name
category_idNoTag category ID
descriptionNoTag description

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only states the basic action. No behavioral traits (e.g., uniqueness constraints, case sensitivity, idempotency) are disclosed.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks sufficient detail for a complete tool definition. It is appropriately minimal but sacrifices behavioral context.

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 creation tool with no annotations or output schema, the description is incomplete. Missing details on response format, error conditions, and side effects reduce its utility 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 clear parameter descriptions in the schema. The description adds no additional meaning beyond what the schema provides, meeting the baseline but not exceeding it.

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 the action ('Create') and resource ('tag') in Keap, differentiating it from sibling tools like keap_create_tag_category. However, it lacks elaboration on what a tag represents in the Keap system.

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 (e.g., keap_apply_tag_to_contact) or any prerequisites. The agent receives no context for appropriate usage.

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

keap_create_tag_categoryB

Create a tag category

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCategory name
descriptionNoCategory description

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only repeats the action. It omits details like whether it returns an ID, permissions needed, or side effects.

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

Conciseness4/5

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

The description is a single concise sentence with no fluff, effectively stating the purpose. It could add minor behavioral context without becoming verbose.

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 no annotation support. The description does not explain return values, error conditions, or what happens upon creation. For a simple create tool, key context is missing.

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

Parameters3/5

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

Schema description coverage is 100%, providing basic descriptions for name and description. The tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description 'Create a tag category' clearly states the action (create) and resource (tag category), distinguishing it from siblings like keap_create_tag (creates a tag) and keap_list_tag_categories (lists categories).

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, prerequisites, or when not to use. The description only states the action without context.

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

keap_create_taskC

Create a new task in Keap

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoTask type
titleYesTask title
user_idNoAssigned user ID
due_dateNoDue date (ISO format)
priorityNoPriority (1-5)
contact_idNoAssociated contact ID
descriptionNoTask description
remind_timeNoReminder time in minutes before due date

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It only says 'Create a new task', implying mutation but no details on authentication requirements, side effects, default behaviors, or outcomes. For a create tool, this is insufficient transparency.

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

Conciseness2/5

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

The description is extremely concise at 8 words, but this brevity under-specifies the tool's purpose and behavior given its 8 parameters. It does not earn its place because it adds minimal value beyond the tool name. Front-loading is not a concern as there is only one sentence.

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

Completeness1/5

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

For a tool with 8 parameters, no output schema, and no annotations, the description is woefully incomplete. It fails to mention return values, side effects, or any usage context. A create operation typically needs to indicate what the response contains (e.g., created task ID).

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

Parameters3/5

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

The input schema has 100% description coverage, so each parameter already has basic meaning. The tool description adds no extra semantic information beyond the schema. Thus, baseline 3 is maintained; the description does not enhance parameter understanding.

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 'Create a new task in Keap' clearly states the action (create) and the resource (task). It is straightforward and avoids tautology by adding 'in Keap'. However, it does not differentiate from sibling create tools like 'keap_create_note' or 'keap_create_appointment', so it misses the top score.

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 like 'keap_update_task' or 'keap_complete_task'. There is no mention of prerequisites, contexts, or when not to use it. It is a single sentence with no usage direction.

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

keap_delete_appointmentB

Delete an appointment

ParametersJSON Schema
NameRequiredDescriptionDefault
appointment_idYesAppointment ID to delete

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits (e.g., irreversibility, permissions, cascading effects). It only states 'Delete an appointment,' which is insufficient to inform the agent of side effects or requirements.

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 extremely concise and front-loaded, with no wasted words. While bare, it is appropriately sized for a simple tool, but could include a sentence on usage or behavior.

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 delete tool with one parameter and no output schema, the description is minimal but covers the core action. However, without annotations, it lacks completeness on behavioral aspects like consequences of deletion.

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 single parameter 'appointment_id' is fully described in the schema (100% coverage). The description adds no extra meaning beyond the schema, meeting the baseline for high 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 action ('Delete') and the resource ('an appointment'), directly reflecting the tool's name. It is specific and unambiguous.

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

Usage 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 like update_appointment or create_appointment. The agent receives no context for decision-making.

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

keap_delete_contactA

Permanently delete a contact from Keap

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID to delete

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description bears full responsibility for behavioral information. The term 'permanently' reveals irreversibility, which is a key behavioral trait. However, it omits details about required permissions, cascading effects (e.g., related data deletion), or idempotency behavior.

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

Conciseness5/5

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

The description is a single 6-word sentence that efficiently conveys the tool's core purpose. It is front-loaded with the verb and resource, with no 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?

For a simple tool with one parameter and no output schema, the description is minimally adequate. It covers the core action but does not address behavioral aspects like authorization or error states, which would aid 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?

The input schema provides 100% coverage with a description for the single parameter ('Contact ID to delete'). The tool description adds no additional meaning 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 states 'Permanently delete a contact from Keap', which clearly identifies the verb (delete), resource (contact), and includes the additional qualifier 'permanently' to emphasize irreversibility. It is specific and distinct among sibling delete 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?

There is no guidance on when to use this tool versus alternatives (e.g., opt-out, remove tag, or other delete tools). The description lacks context about prerequisites, consequences, 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.

keap_delete_contact_emailB

Remove an email address from a contact

ParametersJSON Schema
NameRequiredDescriptionDefault
email_idYesEmail ID to remove
contact_idYesContact ID

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only says 'Remove', but fails to indicate side effects, permission requirements, or whether the removal is permanent or reversible. Minimal transparency.

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, front-loading the purpose. However, it could include slightly more detail without being verbose. Still, it is well-structured and efficient.

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 simple nature (delete operation with 2 parameters, 100% schema coverage, no output schema), the description is minimally adequate but does not explain nuances like whether the email record is deleted or just disassociated, or if the contact must exist.

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 both parameters (contact_id and email_id). The description adds no additional semantic meaning beyond what the schema provides; baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Remove') and the resource ('email address from a contact'), distinguishing it from siblings like keap_create_contact_email and keap_get_contact_emails.

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, nor any prerequisites or context for invocation. The description lacks 'when to use' and 'when not to use' information.

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

keap_delete_fileC

Delete a file from Keap

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYesFile ID to delete

TDQS

C2.8/5.0
Behavior1/5

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

No annotations provided, and the description only states the action without disclosing behavioral traits such as consequences, permissions, error handling, or idempotency.

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

Conciseness3/5

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

The description is only one sentence, which is concise but lacks structure. It could benefit from additional context without being verbose.

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 simple tool with one parameter and no output schema, the description does not address what happens after deletion, any prerequisites, or error situations, leaving 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% and the schema description for 'file_id' ('File ID to delete') is clear. The tool description adds no additional parameter information beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description 'Delete a file from Keap' uses a specific verb and resource, clearly distinguishing from sibling tools like upload, get, and list. It is unambiguous.

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., when to delete vs. update or upload). No exclusions or prerequisites mentioned.

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

keap_delete_hookC

Delete a REST hook

ParametersJSON Schema
NameRequiredDescriptionDefault
hook_keyYesHook key to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral traits. 'Delete a REST hook' implies a destructive operation, but it doesn't disclose whether deletion is irreversible, if it requires specific permissions, or what side-effects occur (e.g., cancelling pending events). Minimal transparency.

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, clear sentence. Conciseness is high, though a bit more context (e.g., 'irreversibly removes a webhook endpoint') could be added without sacrificing 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?

Given the tool's simplicity (1 param, no output schema), the description is still incomplete. It lacks details on what happens after deletion, any return value, error handling, or prerequisites. The sibling tools list includes related hooks (create, update, verify) but no cross-reference.

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% (hook_key described in schema). The tool description adds no extra meaning beyond the parameter's own description ('Hook key to delete'). Baseline 3 for high coverage, but no added value.

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 'Delete a REST hook' clearly states the verb (delete) and the resource (REST hook). However, it does not differentiate from other delete tools (e.g., keap_delete_appointment) or provide additional context about what a REST hook is.

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 vs alternatives. For instance, it doesn't mention that one might list or verify hooks before deletion, or any prerequisites. The description is purely operational.

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

keap_delete_noteB

Delete a note

ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYesNote ID to delete

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose behavioral traits like irreversibility, required permissions, or impact on related data. The agent has no context beyond the action itself.

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

Conciseness3/5

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

The description is extremely concise but could benefit from additional context to be more helpful. It is not overly long, but misses opportunities to add value.

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 delete operation with one parameter, the description is adequate but lacks important context about side effects and usage. Without an output schema, more description would be warranted.

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 provides 100% coverage with a clear description for the single parameter. The description adds no additional meaning beyond the schema, meeting baseline expectations.

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 'Delete a note' clearly states the verb and resource, directly distinguishing it from sibling delete tools for 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 is provided on when to use this tool versus alternatives, such as when to delete vs. update a note, or any prerequisites.

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

keap_delete_opportunityC

Delete an opportunity

ParametersJSON Schema
NameRequiredDescriptionDefault
opportunity_idYesOpportunity ID to delete

TDQS

C2.8/5.0
Behavior1/5

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

No annotations exist, so the description carries the full burden. It only says 'Delete an opportunity' with no disclosure about irreversibility, associated data impact, permission requirements, or error states. This is insufficient for a mutation.

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

Conciseness3/5

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

At one sentence, it is concise, but it lacks any structural elements like warnings or contextual notes. It could be more informative without sacrificing 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?

For a simple delete operation with one parameter and no output schema, the description is minimally complete, but it omits critical safety context (e.g., irreversible action, need for existing record). This is inadequate for a write tool without annotations.

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, and the parameter description in the schema is clear ('Opportunity ID to delete'). The tool description adds no further 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 explicitly states 'Delete an opportunity', which is a specific verb (delete) and resource (opportunity). This clearly distinguishes it from sibling tools like keap_create_opportunity, keap_update_opportunity, etc.

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, no prerequisites (e.g., opportunity must exist), and no mention of when not to use it. It simply states what it does.

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

keap_delete_orderC

Delete an order

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesOrder ID to delete

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral context. It only says 'Delete an order', omitting critical details such as permanence, required permissions, side effects on related entities, or idempotency behavior.

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

Conciseness3/5

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

The description is extremely concise (three words) but lacks structure. While it is not verbose, it fails to include any additional context that could aid the agent, making it borderline under-specified.

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 tool performs a destructive operation and has only one parameter with no output schema, the description does not adequately cover context such as return values, error states, or post-deletion effects. It is incomplete for an AI agent to use confidently.

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 description of the order_id parameter ('Order ID to delete') is clear but adds no extra meaning beyond the schema. Baseline score of 3 applies.

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 'Delete an order' clearly states the action (delete) and the resource (order), matching the tool name. It is specific enough to distinguish from other deletion operations like keap_delete_contact, though it doesn't explicitly differentiate.

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., keap_update_order to modify instead of delete). No prerequisites, warnings, or context about irreversible actions are provided.

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

keap_delete_productB

Delete a product

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesProduct ID to delete

TDQS

B3/5.0
Behavior2/5

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

No annotations provided; description fails to disclose behavioral details like irreversibility, dependencies, or authorization needs.

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

Conciseness3/5

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

Concise but overly minimal; could be more informative without sacrificing brevity.

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 deletion tool, the description is incomplete; it should mention permanence or effects on related data.

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% for the single parameter, so description adds no extra value beyond the schema. 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?

Description clearly states 'Delete a product' with a specific verb and resource, distinguishing it from create and update 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 guidance on when to use this tool, prerequisites, or when not to use it. Lacks context for decision-making.

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

keap_delete_taskB

Delete a task

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID to delete

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose behavioral traits like irreversibility, side effects, or dependencies. It merely states 'Delete a task' without further context.

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

Conciseness3/5

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

The description is very concise (three words) but under-specified. It is not wasteful, but lacks useful context, earning a middle score.

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 single-parameter deletion tool, the description is minimally acceptable but missing details like deletion behavior or consequences.

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?

Parameter coverage is 100% via schema, which already describes task_id. The description adds no extra meaning, 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 'Delete a task' clearly states the action and resource. It distinguishes this tool from siblings like keap_create_task and keap_complete_task.

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 keap_complete_task or keap_update_task. No prerequisites or exclusions are mentioned.

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

keap_get_account_profileA

Get the account profile information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It only says 'Get', implying a read operation, but does not confirm it is read-only, nor does it describe any other behavioral traits such as data returned or side effects.

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

Conciseness5/5

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

The description is a single concise sentence that directly states the purpose. Every word is necessary and front-loaded.

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

Completeness3/5

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

For a simple read tool with no parameters and no output schema, the description is minimally adequate. However, it does not elaborate on what 'account profile information' includes, which could help the agent understand expected output.

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

Parameters4/5

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

There are no parameters, so the description adds no extra meaning beyond the empty schema. According to guidelines, baseline is 4 for zero 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 action (Get) and the resource (account profile information). It is specific and distinguishes from sibling tools like keap_update_account_profile.

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 or when not to use it. The description is too brief to offer any usage context.

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

keap_get_affiliateB

Retrieve an affiliate by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
affiliate_idYesAffiliate ID

TDQS

B3.2/5.0
Behavior2/5

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

Without annotations, the description carries full burden for behavioral disclosure. It states 'Retrieve' indicating a read operation but does not mention potential outcomes (e.g., returns nothing for invalid ID), permissions, rate limits, or response structure. The description is minimal and lacks behavioral context beyond the verb.

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 clear sentence with no extraneous information. It is front-loaded and 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?

Given the tool has only one parameter and no output schema, the description should provide additional context about the return value or error handling. It does not, leaving agents without guidance on what to expect from the call. The description is insufficiently complete for a tool with no output schema.

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%, meaning the input schema already describes the parameter ('Affiliate ID') adequately. The description adds no additional meaning beyond what is in the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description 'Retrieve an affiliate by ID' uses a specific verb ('retrieve') and resource ('affiliate') and specifies the method ('by ID'). It clearly distinguishes from sibling tools like 'keap_list_affiliates' (lists many) and other get-affiliate tools that retrieve specific subsets (clawbacks, commissions, etc.).

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 usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like 'keap_list_affiliates' for listing all affiliates or other get-affiliate tools for specific data. There is no context about prerequisites or scenarios where this tool is appropriate.

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

keap_get_affiliate_clawbacksB

Get all clawbacks for an affiliate

ParametersJSON Schema
NameRequiredDescriptionDefault
affiliate_idYesAffiliate ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided and the description lacks behavioral details such as pagination, data limits, or any side effects. Minimal disclosure beyond the core action.

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 with no unnecessary words. It is front-loaded and efficient, though very brief.

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 get tool with one parameter and no output schema, the description is minimally adequate but could be improved by noting return format or scope.

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 already described as 'Affiliate ID'. The description adds no new meaning beyond what is already in the input 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 'Get all clawbacks for an affiliate' with a specific verb and resource, distinguishing it from sibling tools like keap_get_affiliate_commissions or keap_get_affiliate_payments.

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. The description does not mention when to choose this over other affiliate-related get tools.

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

keap_get_affiliate_commissionsC

Get all commissions for an affiliate

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
sinceNoCommissions after this date
untilNoCommissions before this date
affiliate_idYesAffiliate ID

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'Get all commissions', but the schema reveals pagination and date filtering. The description does not explain these behaviors (e.g., whether 'all' means paginated, default limit, or order).

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

Conciseness3/5

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

The description is one sentence, which is concise but under-specifies the tool. It could be improved by front-loading key details without being verbose. Current length trades off informativeness.

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 tool has 4 parameters and no output schema, the description is too minimal. It does not explain filtering capabilities, pagination, or expected return format. The schema partially fills the gap, but context for a complete usage scenario is lacking.

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 all parameters. The description adds no additional meaning beyond 'Get all commissions', which is a verbatim title. Baseline 3 is appropriate as the description does not compensate for any gaps.

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 the action ('Get') and the resource ('commissions for an affiliate'), but it does not differentiate from sibling tools like 'keap_list_commissions' or 'keap_get_affiliate_payments', which could cause confusion.

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 (e.g., 'keap_get_affiliate_summary', 'keap_list_commissions'). The description lacks context on prerequisites or preferred use cases.

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

keap_get_affiliate_paymentsB

Get all payments for an affiliate

ParametersJSON Schema
NameRequiredDescriptionDefault
affiliate_idYesAffiliate ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; description does not disclose any behavioral traits such as pagination, rate limits, or side effects.

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

Conciseness5/5

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

Single, clear sentence with no unnecessary words; perfectly 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?

Adequate for a simple one-parameter tool, but lacks any detail about the response format or pagination, which would help an 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% for affiliate_id, and the description adds no additional meaning beyond what the schema already provides.

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

Purpose5/5

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

Description clearly states the verb 'Get', resource 'payments', and scope 'for an affiliate', distinguishing it from sibling tools like keap_get_affiliate_commissions.

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 or prerequisites beyond affiliate_id.

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

keap_get_affiliate_summaryC

Get summary stats for an affiliate

ParametersJSON Schema
NameRequiredDescriptionDefault
affiliate_idYesAffiliate ID

TDQS

C2.8/5.0
Behavior1/5

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

With no annotations, the description must convey behavioral traits, but it only says 'Get summary stats for an affiliate'. It does not disclose whether the tool is read-only, requires special permissions, or what the 'summary stats' entail, leaving the agent uncertain.

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

Conciseness3/5

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

The description is a single sentence, very concise. However, it lacks additional context that could be added without verbosity, such as the scope of the summary. It earns a middle score for being succinct but not thorough.

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 simplicity (1 param, no output schema, no annotations), the description is incomplete. It fails to specify what the summary includes or how the returned data is structured, which could lead to incorrect tool selection among sibling affiliate tools.

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

Parameters3/5

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

The schema has one parameter 'affiliate_id' with a description, achieving 100% coverage. The tool description adds no extra meaning beyond the schema. Baseline 3 is appropriate since the description doesn't compensate or enhance parameter understanding.

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 'Get summary stats for an affiliate' clearly states the verb and resource. Among siblings like keap_get_affiliate, keap_get_affiliate_clawbacks, etc., the specification of 'summary stats' distinguishes this tool from those that retrieve specific details.

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 like keap_get_affiliate or keap_get_affiliate_commissions. The description lacks context about what scenarios warrant a summary vs detailed data.

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

keap_get_application_configurationC

Get application configuration settings

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states it gets configuration settings but does not describe the nature of the operation (read-only), potential limitations, or what specific settings are included.

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 extremely concise at one sentence. It is not verbose, but the brevity may sacrifice necessary detail. Still, it earns a 4 for being front-loaded and 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?

Given the lack of output schema and annotations, the description is incomplete. It does not explain what the return values are, what 'configuration settings' encompasses, or any contextual details needed for correct invocation.

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

Parameters3/5

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

With no parameters and 100% schema description coverage, the baseline is 3. The description adds no additional parameter information since none exist, which is acceptable but not helpful.

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 retrieves application configuration settings, using a specific verb+resource. However, it does not differentiate from sibling get tools that retrieve specific entities (e.g., contact, company), making it generic.

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. It does not specify context, prerequisites, or when a different tool might be more appropriate.

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

keap_get_appointmentA

Retrieve an appointment by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
appointment_idYesAppointment ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, error handling, or return structure. For a simple get tool, it could at least mention that it is read-only.

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, concise, and front-loaded. Every word is necessary.

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 low complexity (one parameter, no output schema), the description is somewhat adequate but lacks information about the return value or expected format, which an agent might need.

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 a single parameter already described as 'Appointment ID'. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description 'Retrieve an appointment by ID' clearly states the verb (retrieve) and resource (appointment). It distinguishes from sibling tools like create, delete, update, and list appointments.

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 when-to-use or when-not-to-use guidelines. However, the purpose is straightforward enough that usage is implied (when you need appointment details by ID).

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

keap_get_appointment_modelA

Get the appointment model schema

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description bears full burden. It implies a read-only operation with no side effects, but lacks details on what the schema contains or how it should be interpreted. The description is minimal but not misleading.

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

Conciseness5/5

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

The description is a single, concise sentence that directly states the tool's purpose without any extraneous 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?

Given the lack of annotations and output schema, the description is adequate but sparse. It does not explain what the schema is used for or what the return value will be, which could leave an agent uncertain. However, for a simple schema retrieval, it meets minimal viability.

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

Parameters4/5

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

There are no parameters, and schema coverage is 100% trivially. The baseline for 0 parameters is 4. The description adds no additional parameter information, which is acceptable since there are none.

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 'Get the appointment model schema' uses a specific verb 'Get' and clearly identifies the resource as the appointment model schema, distinguishing it from siblings like keap_get_appointment which retrieves an actual appointment instance.

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 context is provided on when to use this tool versus alternatives, such as before creating an appointment or understanding the required fields. No usage exclusions or alternatives are mentioned.

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

keap_get_campaignA

Get campaign details by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesCampaign ID

TDQS

A3.5/5.0
Behavior3/5

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

Without annotations, the description carries the full burden. It states the basic read behavior, but does not disclose error handling, return format, or any side effects. For a simple get, this is adequate but not thorough.

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, front-loaded with the action. It is efficient with no wasted words, but could be slightly more descriptive without significant additional length.

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

Completeness4/5

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

Given the tool's simplicity (one required parameter, no output schema), the description is mostly complete. It conveys the essential purpose, though it could mention that it returns full campaign details.

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 the parameter already described as 'Campaign ID'. The tool description adds no further meaning beyond what the schema 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 'Get campaign details by ID' clearly states the action (get) and resource (campaign details), and differentiates from sibling tools like keap_list_campaigns and keap_get_campaign_sequences.

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 that for a list of campaigns, keap_list_campaigns should be used, nor any exclusions or prerequisites.

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

keap_get_campaign_sequencesB

Get all sequences for a specific campaign

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesCampaign ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations, so description must disclose behavior. It implies a read operation but lacks details on rate limits, pagination, authentication, or response format.

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

Conciseness5/5

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

Single sentence, no redundancy, directly states 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?

Simple tool with one param, but no output schema; description doesn't hint at return value structure (e.g., list of sequence IDs or objects). Acceptable 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 coverage is 100% for campaign_id (required, type number). Description adds no extra meaning beyond schema, so baseline 3 applies.

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 the tool retrieves all sequences for a specific campaign, with a specific verb and resource. It distinguishes itself from sibling tools like keap_get_campaign and keap_add_contact_to_sequence.

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 vs alternatives, no prerequisites or context provided.

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

keap_get_companyB

Retrieve a company by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idYesCompany ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements, rate limits, or response shape. It is minimally informative.

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, front-loaded sentence that efficiently states the purpose. However, it could include more detail without sacrificing conciseness.

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 simplicity of the tool (one required parameter, no output schema), the description is minimally adequate but lacks context on return values or any prerequisites.

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 description does not add any additional meaning beyond what the schema provides for 'company_id'. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Retrieve a company by ID,' which is a specific verb+resource. It distinguishes from sibling tools like keap_list_companies and keap_get_company_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?

No explicit when-to-use or when-not-to-use guidance is provided. Usage is implied but not differentiated from alternatives like keap_list_companies.

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

keap_get_company_contactsB

Get all contacts associated with a company

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results
offsetNoPagination offset
company_idYesCompany ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided. The description lacks behavioral details such as pagination (despite 'limit' and 'offset' parameters), read-only nature, or return format. It does not disclose that results are paginated or that it is a safe read operation.

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, concise and front-loaded. It could benefit from a bit more context without becoming verbose.

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 exists, so the description should explain what the tool returns. It does not mention that the result is a paginated list of contact objects. The pagination parameters (limit, offset) are not explained in the description context.

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 description does not need to add much. It does not provide additional context beyond what the schema already offers (e.g., format or 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 verb 'Get', the resource 'contacts', and the scope 'associated with a company'. It distinguishes this tool from siblings like 'keap_list_contacts' (all contacts) and 'keap_get_contact' (single 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 implies usage for fetching contacts for a specific company, but does not explicitly state when to use this over alternatives (e.g., 'keap_list_contacts' or 'keap_search_contacts'). No exclusions or prerequisites are mentioned.

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

keap_get_contactA

Retrieve a contact by ID with all details including tags, custom fields, and company

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID
optional_propertiesNoAdditional fields to include

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden for behavioral disclosure. It clearly indicates a read-only operation ('Retrieve') with a defined scope, which is accurate and sufficient for a simple retrieval. No contradictions or misleading information.

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

Conciseness5/5

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

A single, clear sentence that conveys the essential information without extraneous words. Every word is meaningful.

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 retrieval tool with well-documented parameters and no output schema, the description adequately covers the tool's purpose and output structure. It provides enough context for an agent to understand what the tool returns.

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 for both parameters. The description adds value by clarifying that the default response includes tags, custom fields, and company, which is not specified in the parameter descriptions. This enhances understanding 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 action ('Retrieve'), the resource ('contact by ID'), and the scope ('all details including tags, custom fields, and company'). This distinguishes it from sibling tools that focus on specific subsets (e.g., keap_get_contact_tags) or searches (keap_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 when a full contact record is needed by ID, but it does not explicitly mention when to use this tool versus alternatives like keap_get_contact_tags or keap_get_contact_custom_fields. There is no when-not guidance.

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

keap_get_contact_credit_cardsB

Get all credit cards on file for a contact

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose whether the response includes sensitive data, if pagination is needed, or any idempotency/rate limits. The description is limited to stating the action.

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, front-loaded sentence with no extraneous information. It is efficient but could potentially include more actionable detail without being verbose.

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 tool has one parameter and no output schema, the description should provide at least a hint about the return format or limitations (e.g., 'returns credit card objects with masked numbers'). It does not, making it inadequate for an agent to fully understand the tool's behavior.

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

Parameters3/5

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

Schema description coverage is 100% (contact_id described as 'Contact ID'). The description adds no additional meaning beyond the schema, so baseline of 3 is appropriate.

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

Purpose5/5

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

The description 'Get all credit cards on file for a contact' uses a specific verb ('Get'), resource ('credit cards'), and scope ('for a contact'). It clearly distinguishes from sibling tool keap_create_contact_credit_card, which is a write operation.

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., keap_get_contact might include some credit card info). No prerequisites, when-not-to-use, or context are provided. The description only implies usage for retrieving credit cards of a contact.

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

keap_get_contact_custom_fieldsA

Retrieve custom field values for a contact

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must handle behavioral disclosure. It states 'Retrieve' indicating read-only, but does not mention error handling, rate limits, or authentication needs. The simplicity mitigates the gap, but more context would help.

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

Conciseness5/5

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

The description is a single concise sentence with no unnecessary words, effectively front-loading the purpose.

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

Completeness4/5

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

For a simple get tool with one parameter and no output schema, the description provides adequate context. It could mention return structure (e.g., list of field names/values), but overall it is sufficient.

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 description adds no extra meaning beyond what the schema already provides for contact_id. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'Retrieve' and resource 'custom field values' for a contact, clearly distinguishing it from siblings like keap_get_contact (which retrieves standard contact info) and keap_list_custom_fields (which lists field definitions).

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 vs alternatives. Usage is implied by the name, but it lacks prerequisites or exclusions (e.g., must have custom fields defined, contact must exist).

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

keap_get_contact_emailsB

Get all email addresses associated with a contact

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states it retrieves email addresses. No disclosure of authorization needs, rate limits, or response format. Minimal behavioral insight beyond the basic read operation.

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 7 words, front-loading key information with no fluff. Every word is meaningful and earns its place.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description is adequate but lacks detail on return structure or prerequisites. Could be improved by mentioning that the result is a list of email objects or strings.

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 parameter contact_id is described in the schema as 'Contact ID'. The description adds 'associated with a contact' but that is implied. The description does not add significant 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 'Get', the resource 'email addresses', and the scope 'associated with a contact'. It effectively distinguishes from sibling tools like keap_create_contact_email and keap_delete_contact_email.

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 vs alternatives. Does not mention when to use keap_get_contact or keap_create_contact_email instead. Implied usage but no clear context.

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

keap_get_contact_modelA

Retrieve the contact model schema including all available custom fields

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, and description only states the action without disclosing whether it's read-only, any side effects, rate limits, 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.

Conciseness5/5

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

Single sentence, 12 words, directly states purpose. No unnecessary content.

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

Completeness4/5

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

No output schema, but description indicates return includes schema and custom fields. Adequately sets expectations for a zero-parameter tool, though could be more specific.

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 does not need to add information. Baseline score of 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 clearly states it retrieves the contact model schema including custom fields, distinguishing it from tools that get contact instances or specific field values.

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 like keap_get_contact_custom_fields or keap_get_contact. No mention of prerequisites or context.

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

keap_get_contact_tagsA

Get all tags applied to a specific contact

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID

TDQS

A3.6/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the full burden. It correctly identifies the operation as a read, but does not disclose any behavioral traits such as authentication requirements, rate limits, or response format. The description is adequate but minimal.

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 with no unnecessary words. It is concise and front-loaded, but could be slightly more descriptive without becoming verbose.

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 absence of an output schema and annotations, the description is minimal. It conveys the core purpose but lacks details about the response format or any constraints. For a simple read tool, this is adequate but not complete.

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

Parameters3/5

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

The schema already provides a description for contact_id ('Contact ID') with full coverage (100%). The tool description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (Get) and the resource (tags applied to a specific contact). It effectively distinguishes from sibling tools like keap_apply_tag_to_contact and keap_list_tags, which perform different operations.

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. Usage is implied (when needing tags for a specific contact), but no context about when not to use it or which alternative might be better.

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

keap_get_emailC

Retrieve an email by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
email_idYesEmail ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose any behavioral traits such as read-only nature, return format, or access restrictions. The agent must infer basic behavior from the tool name.

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 clear sentence with no unnecessary words. It is front-loaded and efficient.

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 simplicity of a get-by-ID tool with one parameter and no output schema, the description is minimally complete but lacks details on what the returned email object contains.

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 description adds no additional meaning beyond what the input schema already provides (the parameter name and type are self-explanatory).

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 specifies the action (retrieve), resource (email), and identifier (by ID). It clearly distinguishes from list tools like keap_list_emails and keap_get_contact_emails.

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 siblings, no prerequisites or conditions stated. The description is purely declarative.

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

keap_get_fileB

Retrieve file metadata by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYesFile ID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It only states a read operation but does not disclose what happens on errors, authorization needs, 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?

Single sentence, concise and front-loaded. No wasted words, though could be slightly expanded for completeness.

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?

Despite low complexity, the description does not explain what 'file metadata' includes, nor error handling or relationship to similar tools like keap_list_files.

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% (one parameter), so baseline is 3. The description adds no meaning beyond the schema's 'File ID' description.

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 'Retrieve file metadata by ID' uses a specific verb (Retrieve) and resource (file metadata by ID), clearly distinguishing it from sibling tools like upload, list, delete.

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 such as keap_list_files or keap_upload_file. The description does not mention context or exclusions.

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

keap_get_noteB

Retrieve a note by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYesNote ID

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the basic action without disclosing what the tool returns (e.g., note details) or any side effects. For a read operation, the lack of return value information is a significant gap.

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

Conciseness3/5

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

The description is extremely concise (one short phrase) with no wasted words. However, it is too brief to be informative, lacking necessary details. Conciseness is good, but at the expense of completeness.

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 no output schema and a simple tool, the description should at least hint at the return value (e.g., 'returns note details'). It fails to do so, making it incomplete for an agent to understand the tool's output.

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 'note_id' described as 'Note ID'. The description does not add any further meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description 'Retrieve a note by ID' clearly states the action (retrieve) and the resource (note) and the key parameter (by ID). It is unambiguous and distinguishes itself from sibling tools like 'keap_get_note_model' and 'keap_list_notes'.

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 vs alternatives. Siblings like 'keap_list_notes' (for listing) and 'keap_get_note_model' (for schema) exist but are not mentioned. The description provides no context for tool selection.

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

keap_get_note_modelB

Get the note model schema

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only states it's a retrieval operation, but lacks details on side effects, authorization needs, or return format. No output schema defined to supplement.

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, front-loaded, no wasted words. Efficient but perhaps at the expense of completeness. Still well-structured for a simple tool.

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, no output schema, and no annotations, the description is minimal. It doesn't specify what the schema is used for or its format. Could be improved by stating it returns note field definitions, aiding agent understanding.

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, so schema coverage is 100%. Description doesn't need to add param info. Baseline 4 is appropriate, though it could provide slightly more context on what the schema output contains.

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?

Description 'Get the note model schema' clearly states the tool retrieves the schema/model for a note. It distinguishes from keap_get_note (which retrieves a specific note). However, it doesn't explain what 'model schema' entails (e.g., field definitions), leaving some ambiguity.

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 vs alternatives like keap_get_note or other model getters. Missing context like 'use before creating a note to understand required fields'.

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

keap_get_opportunityB

Retrieve an opportunity by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
opportunity_idYesOpportunity ID
optional_propertiesNoAdditional fields to include

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, and description only states 'Retrieve an opportunity by ID' without disclosing behavioral traits like error handling, return structure, or read-only nature.

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 is efficient and front-loaded, but could include more detail without being verbose.

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 description fails to explain return value or usage of 'optional_properties' parameter; incomplete for agent selection.

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 parameter descriptions are provided, but the tool description adds no extra 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?

Description clearly states the action (retrieve) and resource (opportunity by ID), distinguishing it from related tools like create, update, delete, and list.

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 vs alternatives like keap_list_opportunities or keap_get_opportunity_model.

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

keap_get_opportunity_modelA

Get the opportunity model schema with custom fields

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It correctly indicates a read operation but does not disclose any additional behavioral traits like authentication requirements or rate limits, which for a schema retrieval may be acceptable but lacks explicit confirmation.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the key action and resource, containing no unnecessary words and efficiently conveying the tool's function.

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 tool with no parameters and no output schema, the description adequately specifies what is returned (model schema with custom fields). It could mention what the schema excludes, but completeness is sufficient 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?

With zero parameters, the description adds meaning by specifying it returns the schema with custom fields, aligning with the baseline of 4 for no parameter information needed beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states it retrieves the opportunity model schema including custom fields, directly indicating its purpose and distinguishing it from tools like keap_get_opportunity which returns actual opportunities.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives such as keap_get_opportunity or keap_get_opportunity_stage_pipeline, leaving the usage context implied rather than explicit.

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

keap_get_opportunity_stage_pipelineB

Get details of a specific pipeline stage

ParametersJSON Schema
NameRequiredDescriptionDefault
stage_idYesStage ID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does not state that the operation is read-only, nor does it mention any prerequisites, side effects, or data returned. The description is minimal and leaves significant ambiguity about 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?

A single sentence that contains no fluff. It is appropriately front-loaded and efficient for a simple getter tool.

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

Completeness3/5

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

The tool is simple (one required parameter, no output schema). The description mentions 'details' but does not specify the structure or content of the return value. In the absence of an output schema, the description should provide more context about what 'details' means. Adequate but with a clear gap.

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 a clear description for 'stage_id' ('Stage ID'). The description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.

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 'Get details of a specific pipeline stage' clearly states the action and resource. It distinguishes from the sibling 'keap_list_opportunity_stage_pipeline' which lists all stages, but does not explicitly differentiate from other get tools like 'keap_get_opportunity'.

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. Does not specify that it is for a single stage by ID, nor does it mention not to use it for listing or updating stages.

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

keap_get_orderB

Retrieve an order by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesOrder ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided. Description only states basic action; does not disclose idempotency, permissions, error behavior, or any side effects. Full burden on description but insufficient.

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 concise sentence with no redundancy. Could include slightly more context without becoming verbose.

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?

No output schema; description doesn't hint at the order's structure or fields. Complete for a basic get-by-ID but lacks context about return value.

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

Parameters3/5

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

Schema has 100% coverage with order_id description. Description adds no extra meaning beyond the schema, so baseline 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?

Description uses specific verb 'Retrieve' and resource 'order' with method 'by ID', clearly distinguishing from list and create operations among siblings.

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 vs alternatives like keap_list_orders or keap_get_order?when to use for multiple orders. Lacks contextual differentiation.

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

keap_get_productB

Retrieve a product by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesProduct ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It only states 'Retrieve a product by ID' without mentioning error behavior (e.g., not found), side effects, or read-only nature. This is insufficient for a tool with no 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, front-loaded sentence with no unnecessary words. It is appropriately sized for a simple tool, though it could optionally include more behavioral context without becoming verbose.

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 get-by-ID operation with one parameter and no output schema, the description is minimally complete. However, missing behavioral transparency (e.g., error handling) and usage guidance leaves gaps 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% (product_id described). The description adds no extra meaning beyond the schema, merely restating the retrieval by ID. With high schema coverage, baseline is 3, and no additional value is provided.

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

Purpose5/5

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

The description clearly states a specific action ('Retrieve') and resource ('a product by ID'). It effectively distinguishes from sibling tools like keap_list_products (retrieves multiple) and keap_create/update/delete_product.

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 when to use (when you need a single product by ID) but does not explicitly mention alternatives or when not to use it. Sibling keap_list_products exists for listing, but no guidance is provided.

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

keap_get_subscriptionA

Retrieve a subscription by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYesSubscription ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description lacks details on error handling, response format, or any side effects. The minimal description does not adequately disclose behavioral traits.

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

Conciseness5/5

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

Extremely concise with one sentence that is front-loaded and contains no wasted words.

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

Completeness3/5

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

Given the low complexity and no output schema, the description is minimally sufficient but could be improved by indicating the type of data returned.

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% for the single parameter; the tool description adds no extra meaning beyond the schema, so baseline score 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 the verb 'Retrieve' and the resource 'subscription by ID', distinguishing it from siblings like keap_list_subscriptions and keap_create_subscription.

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, but the simple 'get by ID' nature makes the usage context somewhat implied.

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

keap_get_tagA

Retrieve a tag by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
tag_idYesTag ID

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It states a simple read operation, which is accurate, but does not disclose error behavior or return value. Adequate for a straightforward tool but missing behavioral details.

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, short sentence that is immediately clear. No unnecessary words, well 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?

Given the low complexity (1 parameter, no output schema), the description is sufficient for a basic retrieval. However, it could mention that the returned tag object can be used with other tools (e.g., keap_apply_tag_to_contact).

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 covers 100% of parameters with a description for tag_id. The tool description adds no extra meaning beyond the schema. Baseline score is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Retrieve'), the resource ('tag'), and the method ('by ID'). It is specific and distinguishes from sibling tools like keap_list_tags and keap_create_tag.

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 (e.g., keap_list_tags for listing all tags). The description lacks context for when retrieval is appropriate.

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

keap_get_taskA

Retrieve a task by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided, and the description lacks behavioral details such as error conditions, permissions, or response format. For a read operation, additional context would be beneficial.

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 key action and resource, no unnecessary words. Perfectly concise.

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 (one parameter, no output schema), the description is adequate. It clearly states what the tool does, though it could mention return type or potential errors for full 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 100% with 'task_id' having a description. The description adds no extra meaning beyond what is in the input schema, so baseline score 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 uses specific verb 'retrieve' and resource 'task by ID', clearly indicating the action and scope. It distinguishes well from sibling tools like keap_create_task, keap_delete_task, and keap_list_tasks.

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?

While no explicit when-to-use or alternatives are mentioned, the purpose is straightforward for a simple retrieval tool. The description is clear enough for an agent to infer usage context.

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

keap_get_task_modelB

Get the task model schema

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It implies a read operation but lacks details about what the schema includes (fields, types, relationships). Minimal transparency beyond basic purpose.

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, efficient phrase. While it could benefit from slightly more detail (e.g., 'including field names and types'), it avoids verbosity and is clearly front-loaded.

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 exists, so the description should explain the output. It does not clarify what 'schema' means (e.g., field definitions, relationships), leaving the agent underinformed about return format.

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?

No parameters exist (input schema is empty), so description adds no parameter semantics. The schema coverage is 100%, making further description unnecessary.

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 'Get the task model schema' clearly states the verb (get), resource (task model schema), and scope, distinguishing it from siblings like keap_get_task which retrieves a specific task.

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., keap_get_task, keap_create_task). The description does not mention prerequisites or context, leaving the agent to infer usage.

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

keap_get_transactionA

Retrieve a transaction by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_idYesTransaction ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. The description only states 'Retrieve', implying a read operation, but does not disclose potential side effects, required permissions, error conditions, or response shape. For a tool with no annotation coverage, more detail is needed.

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, no filler, front-loaded with the action. Every word earns its place.

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

Completeness3/5

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

No output schema exists, and the description only says 'Retrieve a transaction by ID'. It does not describe the return structure (e.g., transaction details, fields). Adequate for a simple getter but could be more 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?

Input schema has 100% coverage with one parameter 'transaction_id' described as 'Transaction ID' (tautological). The description adds no meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description 'Retrieve a transaction by ID' clearly states the action (get) and the resource (transaction by ID), distinguishing it from siblings like keap_list_transactions which lists multiple transactions.

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 (e.g., keap_list_transactions for paginated collections, or keap_get_order for transaction context). It's a standard getter, but lacks usage context.

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

keap_list_affiliatesC

List all affiliates with filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
offsetNoPagination offset
statusNoFilter by status (0=inactive, 1=active)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states it lists affiliates with filtering but does not mention pagination behavior, performance considerations, or that it is read-only. The return format is not described.

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 clear sentence with no wasted words. It is appropriately concise and front-loaded with the tool's core purpose.

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 tool has 3 parameters and no output schema, the description lacks important context: what data is returned, how pagination works, and default filters. It is too minimal for a list operation that may return many results.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for all three parameters. The description adds no additional meaning beyond 'filtering', so the baseline score of 3 is appropriate.

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 the tool lists affiliates with filtering, using a specific verb and resource. It distinguishes from sibling tools like keap_create_affiliate or keap_get_affiliate, which are for creating or retrieving single affiliates.

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 like keap_get_affiliate for a single affiliate or other list tools. There are no explicit when-to-use or when-not-to-use instructions.

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

keap_list_appointmentsB

List appointments with filtering and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
sinceNoAppointments after this date
untilNoAppointments before this date
offsetNoPagination offset
user_idNoFilter by user
contact_idNoFilter by contact

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It mentions 'filtering and pagination', hinting at capabilities, but does not disclose details like default ordering, response format, or potential side effects. For a read-only list tool, this is adequate but not thorough.

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 avoids unnecessary words, though it could be expanded without becoming verbose. It earns its place but lacks depth.

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 6 parameters, no output schema, and no annotations, the description is insufficient. It does not explain pagination behavior (e.g., offset/limit semantics), return format, or how filters work together. More context is needed for an agent to use it effectively.

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 all parameters have descriptions in the schema. The description adds no additional meaning beyond the generic phrase 'filtering and pagination'. Baseline 3 is appropriate since the schema already documents 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 the verb 'List' and the resource 'appointments', but it does not explicitly distinguish from siblings like `keap_get_appointment` which retrieves a single appointment. The phrase 'with filtering and pagination' adds specific scope, making it clear enough for a list tool.

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., `keap_get_appointment` for a single appointment). Also no information about prerequisites or context such as required permissions.

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

keap_list_campaignsB

List all campaigns with pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
orderNoOrder by field
offsetNoPagination offset
search_textNoSearch in campaign name/description

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It adds the pagination context beyond the schema, but doesn't disclose other behavioral traits like read-only nature, performance implications, or rate limits. The mention of pagination provides some transparency, hence a score of 3.

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?

Extremely concise: a single sentence that is front-loaded with purpose. Every word earns its place with no redundancy.

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

Completeness2/5

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

Despite the simplicity of the tool (list with pagination), the description lacks details on return format, pagination behavior (e.g., total count, max limit), and filtering via search_text. It is insufficient for an agent to fully understand usage without consulting the schema.

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 baseline is 3. The description adds 'with pagination' which aligns with limit/offset parameters, but doesn't add additional meaning beyond the schema descriptions. No significant added value.

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

Purpose5/5

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

The description clearly states the tool lists all campaigns with pagination, using a specific verb and resource. It distinguishes from sibling 'keap_get_campaign' which retrieves a single campaign.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. For example, it doesn't mention that for a single campaign, 'keap_get_campaign' should be used, or that search filtering is available via parameters.

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

keap_list_commissionsC

List all commissions with filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
sinceNoCommissions after this date
untilNoCommissions before this date
offsetNoPagination offset
contact_idNoFilter by contact
affiliate_idNoFilter by affiliate

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'list all commissions with filtering', omitting scope (global vs per affiliate), authentication needs, pagination behavior beyond parameter names, or potential performance implications.

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 with 5 words, very concise. However, it could benefit from slightly more detail to justify its brevity. Still, it is front-loaded and efficient.

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 6 parameters are fully described in the schema, the description is adequate but incomplete. It does not clarify the exact scope of commissions (e.g., only affiliate commissions), and there is no output schema to document return format.

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 each parameter has a schema description. The tool description adds no extra semantic value beyond 'with filtering', so baseline 3 is appropriate.

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

Purpose4/5

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

The description uses a specific verb 'list' and resource 'commissions', and notes filtering capability. However, it does not distinguish from the sibling tool 'keap_get_affiliate_commissions', which might return similar data for a specific affiliate.

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 like 'keap_get_affiliate_commissions' or other list tools. The description lacks explicit when/when-not and alternative suggestions.

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

keap_list_companiesB

List all companies with pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
orderNoOrder by field
offsetNoPagination offset
company_nameNoFilter by company name

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the burden but only states 'list' which implies read-only, yet it does not explicitly confirm no side effects, or mention any behavioral constraints like rate limits or data scope. Minimal 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 with no filler. Every word is necessary and informative. Highly concise.

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?

Missing output schema and annotations. The description does not mention what the response contains (e.g., list of company objects with fields), potential limitations, or default ordering. Incomplete for a list tool.

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 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 'List all companies with pagination' clearly states the verb (list) and resource (companies), and distinguishes from sibling tools like keap_get_company and other list tools. It is specific and unambiguous.

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

Usage 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 such as keap_list_contacts or keap_search_contacts. No conditions, prerequisites, or exclusions are provided.

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

keap_list_contact_notesB

Get all notes for a specific contact

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results
offsetNoPagination offset
contact_idYesContact ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It fails to disclose that this is a read operation, whether pagination is supported (despite parameters), or any permission requirements. The minimal description does not compensate for the lack of 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 one sentence and very concise. It is front-loaded with the core purpose. However, it could include more information without being overly long.

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 tool has 3 parameters and no output schema, the description is insufficient. It does not explain pagination behavior, return format, or what 'all notes' means in terms of scope. The sibling list shows many list tools, so more context is needed.

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 description coverage is 100%, so the parameters are already well-documented. The description adds no additional meaning beyond what the schema provides. Baseline is 3.

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

Purpose5/5

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

The description uses a specific verb 'Get' and identifies the resource 'all notes for a specific contact,' clearly distinguishing it from sibling tools like 'keap_get_note' (single note) and 'keap_list_notes' (all notes).

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 that this filters by contact, which differentiates it from 'keap_list_notes', nor does it specify prerequisites or when not to use it.

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

keap_list_contactsC

List contacts with pagination, filtering, and sorting options

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoFilter by email address
limitNoNumber of results per page (max 200)
orderNoField to order by (e.g., date_created, email)date_created
sinceNoFilter contacts created/updated after this ISO date
untilNoFilter contacts created/updated before this ISO date
offsetNoOffset for pagination
given_nameNoFilter by first name
family_nameNoFilter by last name
order_directionNoSort direction

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description should disclose behavioral traits such as rate limits, authentication requirements, or pagination behavior. It only mentions options without any behavioral context.

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 is front-loaded and concise. It covers the essence without waste, though it could benefit from slightly more detail.

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 does not explain what the tool returns (e.g., a list of contact objects with specific fields). Since there is no output schema, the description should provide this context.

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 all parameters. The description adds no additional meaning beyond grouping them as 'filtering and sorting options.' Baseline 3 is appropriate.

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 lists contacts with pagination, filtering, and sorting options. However, it does not differentiate from the sibling tool keap_search_contacts, which might have similar functionality.

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 like keap_search_contacts or keap_get_contact. The description does not mention any specific 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.

keap_list_custom_fieldsC

List all custom fields for a given entity type

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_typeYesEntity type (Contact, Company, Opportunity, etc.)

TDQS

C2.7/5.0
Behavior1/5

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

No annotations are present, and the description does not disclose behavioral traits such as authentication needs, read-only status, pagination, or data volume. The agent cannot infer safety or performance characteristics.

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

Conciseness2/5

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

The description is a single sentence, which is concise but lacks structure. It omits critical information such as return format or usage notes, making it under-specified rather than efficiently concise.

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 explain what the tool returns, but it does not. It also lacks details on pagination or filters. The description is incomplete for a tool that lists potentially many custom fields.

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

Parameters3/5

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

The input schema has 100% description coverage for the single parameter. The description does not add meaning beyond the schema's 'Entity type (Contact, Company, Opportunity, etc.)', earning the baseline score of 3.

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

Purpose5/5

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

The description clearly states 'List all custom fields for a given entity type,' which specifies the action (list) and resource (custom fields). It distinguishes from sibling tools like keap_get_contact_custom_fields by clarifying the scope is per entity type, not per 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 is provided on when to use this tool versus alternatives (e.g., keap_get_contact_custom_fields for per-contact fields) or any prerequisites. The agent lacks context for proper tool selection.

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

keap_list_emailsC

List emails with filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
sinceNoEmails sent after this date
untilNoEmails sent before this date
offsetNoPagination offset
contact_idNoFilter by contact

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist. Description does not disclose whether this is read-only, required permissions, response structure, or pagination behavior beyond schema defaults.

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 (4 words), no filler. However, could be expanded with critical context 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?

No output schema, no annotations. Description is minimal for a tool with 5 optional parameters; lacks details on return type, result set size, or behavior with no filters.

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% coverage describing all 5 parameters. Description adds only the word 'filtering', which is redundant. Baseline 3 is appropriate.

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?

Description clearly states it lists emails with filtering, which distinguishes it from other keap tools like send, get, or update.

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 siblings (e.g., keap_get_email for single, keap_search_contacts for different entity). No prerequisites or context provided.

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

keap_list_email_templatesC

List all email templates

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It fails to disclose pagination behavior, default order, rate limits, or data returned. The limit parameter hints at pagination but is not explained.

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 short sentence with no fluff. It is efficient, though it sacrifices completeness for brevity.

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 no output schema and simple parameters, the description should explain what data is returned. It lacks context on response format, pagination details, and typical usage scenarios.

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% for the single parameter 'limit', so baseline is 3. The description adds no extra meaning beyond the schema, but also does not detract.

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 the verb 'List' and the resource 'email templates', distinguishing it from other list tools by resource name. However, it does not elaborate on scope or filtering, slightly limiting clarity.

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 like keap_create_email_template or keap_send_email. The description is purely functional without contextual advice.

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

keap_list_filesC

List files with filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
offsetNoPagination offset
contact_idNoFilter by contact

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only states 'List files', lacking details on read-only nature, pagination, authentication, or rate limits. The schema hints at pagination but description does not clarify.

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

Conciseness3/5

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

Very concise single phrase, but lacks structure. Appropriate for minimal info but could benefit from explicit details.

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, no description of return format or fields. Lacking completeness for a list operation.

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 baseline is 3. Description adds 'filtering' which maps to contact_id, but does not elaborate on limit/offset beyond schema. No additional semantics.

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?

Clearly states the tool lists files with filtering, which distinguishes it from retrieve single file (keap_get_file) or upload file (keap_upload_file). However, could be more specific about filter types.

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 vs. alternatives like keap_get_file or keap_upload_file. Lacks context for selection.

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

keap_list_hook_event_typesA

List all available hook event types

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only states what it lists, not how it behaves (e.g., no side effects, no auth requirements, no pagination info). Users are left uninformed about the output format or any 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 a single, clear sentence with no wasted words. It is front-loaded and efficiently conveys the 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 output schema and simple task, the description is minimally complete. It explains the action but lacks return information (e.g., list of strings). Could be improved by noting typical use cases, like configuring hooks.

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

Parameters4/5

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

The tool has zero parameters and schema coverage is 100%. Per guidelines, 0 parameters baseline is 4. The description adds no parameter info, which is acceptable as none 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 the tool lists 'all available hook event types.' The verb 'list' and resource 'hook event types' are specific. It distinguishes from siblings like keap_list_hooks (which lists hook instances) by focusing on event types.

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

Usage Guidelines4/5

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

The description implies usage: use this tool when you need to know available hook event types. No explicit when-not or alternatives are given, but the simplicity makes it clear. A slight improvement would be to mention it's a read-only operation.

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

keap_list_hooksA

List all REST hooks

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'list all,' implying a read operation but not disclosing potential limitations (e.g., pagination, rate limits). It does not add behavioral context beyond the name.

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, efficient sentence with no wasted words. It front-loads the core 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 output schema, the description could hint at what is returned (e.g., 'list of hooks with details'). It is adequate for a simple list but not fully complete.

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

Parameters4/5

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

With zero parameters and 100% schema coverage, the description need not add parameter info. It meets the baseline of 4 by not introducing confusion.

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 'List all REST hooks' clearly states the action and resource, distinguishing it from sibling tools like keap_list_hook_event_types. It is specific and not a tautology.

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 vs alternatives like keap_create_hook or keap_verify_hook. No context about prerequisites or suitable scenarios is given.

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

keap_list_notesC

List notes for a contact

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
offsetNoPagination offset
user_idNoFilter by user who created notes
contact_idNoContact ID

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description carries full burden. It does not disclose any behavioral traits such as pagination limits, ordering, or side effects. For a read-only list operation, this is minimally adequate but lacks detail.

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

Conciseness3/5

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

The description is very concise (one sentence), but it is under-specified. While it is front-loaded, it lacks structure and does not fully utilize the available space.

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?

There is no output schema, and the description does not mention what the response contains. For a list tool, it should at least indicate that it returns a list of notes. The description is incomplete given the lack of output schema.

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

Parameters3/5

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

The input schema has 100% description coverage for all 4 parameters, so the description adds no additional meaning. The baseline is 3, and the description does not provide extra context beyond the schema.

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 the action (list) and resource (notes for a contact). However, it does not differentiate from the similar sibling tool 'keap_list_contact_notes', which likely serves an identical purpose.

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 like 'keap_list_contact_notes' or 'keap_get_note'. There is no mention of prerequisites or when not to use it.

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

keap_list_opportunitiesC

List opportunities with filtering and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
orderNoOrder by field
offsetNoPagination offset
user_idNoFilter by user ID
stage_idNoFilter by pipeline stage
contact_idNoFilter by contact ID
search_termNoSearch in title/notes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and the description only states 'List opportunities', implying a read operation, but doesn't disclose rate limits, authentication needs, or any side effects. Minimal behavioral context.

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, clear sentence with no redundancy. Efficient for an experienced user, though it might benefit from slight expansion for completeness.

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 indicate what is returned (e.g., list of opportunity objects). It also lacks any guidance on required scopes or permissions. Insufficient for a tool with 7 parameters and no output schema.

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

Parameters3/5

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

Schema covers all 7 parameters with descriptions (100% coverage), so the description adds little beyond summarizing 'filtering and pagination'. Baseline 3 is appropriate.

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 the tool lists opportunities with filtering and pagination, distinguishing it from create/update/get tools. However, it could be more specific about the resource scope (e.g., 'your Keap account').

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 like get_opportunity or other list tools. Missing when-not-to-use or alternative suggestions.

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

keap_list_opportunity_stage_pipelineA

List all pipeline stages for opportunities

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are present, so description bears full burden. It states 'List all pipeline stages', implying a read-only operation, but omits any details about required permissions, rate limits, or side effects. The behavior is minimally transparent.

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

Conciseness4/5

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

One short sentence efficiently conveys the tool's purpose. It is concise, though a slight expansion on what the listing includes could improve completeness without harming conciseness.

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 for a simple list operation. However, it does not mention what information is returned (e.g., stage names, IDs) or any ordering, which a more complete description would include.

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

Parameters4/5

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

There are zero parameters, so the description cannot add meaning beyond what is already evident from input schema. Baseline of 4 is appropriate as no additional param clarification is needed.

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 states 'List all pipeline stages for opportunities' with a specific verb and resource. The name and description clearly distinguish it from sibling tools like keap_get_opportunity_stage_pipeline, which retrieves a single stage.

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 or not use this tool vs alternatives. The description implies its purpose (listing all stages), but does not mention that keap_get_opportunity_stage_pipeline is for retrieving a specific stage. No prerequisites or context provided.

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

keap_list_ordersC

List orders with filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
paidNoFilter by paid status
limitNoResults per page
sinceNoOrders after this date
untilNoOrders before this date
offsetNoPagination offset
contact_idNoFilter by contact
product_idNoFilter by product

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It only states the tool lists orders with filtering, but does not mention whether it is read-only, pagination details, rate limits, or other behavioral traits. The agent gains minimal behavioral insight beyond the tool name.

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

Conciseness3/5

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

The description is a single sentence, making it concise. However, it is overly brief given the complexity of the tool (7 parameters, no output schema). It sacrifices informativeness for brevity, resulting in a minimally viable but not helpful description.

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 tool has 7 optional parameters, no output schema, and no annotations, the description is incomplete. It does not explain output format, pagination behavior (e.g., default limit, offset usage), or how it relates to sibling tools like keap_get_order or keap_list_order_transactions. Agents would need to infer crucial details.

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 all parameters are documented in the schema. The description adds no additional meaning beyond 'with filtering', which is already implied by the parameter names and descriptions. Baseline 3 is appropriate as the description does not need to compensate but also adds no extra value.

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 'List orders with filtering' clearly indicates the action (list) and resource (orders), and implies filtering capability. However, it does not specify the scope (e.g., all orders or contact-specific) and could be more distinct from sibling tools like keap_get_order or keap_list_order_transactions.

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 like keap_get_order (for single order) or keap_list_order_transactions. The description does not mention use cases, prerequisites, or when not to use it.

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

keap_list_order_transactionsB

Get all transactions for an order

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesOrder ID

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It does not mention that the operation is read-only, nor does it discuss pagination, rate limits, or any side effects. The minimal description adds no behavioral context beyond the basic action.

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 clear sentence, efficient and to the point. No unnecessary words. However, it could benefit from slight expansion for completeness.

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 is adequate for a simple list tool with one required parameter, but it lacks context about the response format (e.g., array of transaction objects). Since no output schema exists, some additional detail would be helpful.

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% (one parameter with a basic description). The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Get all transactions for an order', identifying the specific verb (list) and resource (transactions per order), distinguishing it from sibling tools like keap_get_transaction (single) and keap_list_transactions (likely all).

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 such as keap_get_transaction or keap_list_transactions. The description lacks context on prerequisites or typical use cases.

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

keap_list_productsA

List all products with pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
activeNoFilter by active status
offsetNoPagination offset

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It mentions 'all products' but does not specify scope (e.g., active/inactive) or any rate limits or safety information. Basic transparency is present but limited.

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

Conciseness5/5

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

Single sentence with no fluff, directly stating the purpose and key feature (pagination). Efficient use of 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?

Tool is simple with 3 optional parameters and no output schema. The description adequately covers the core functionality, though it could mention default values (50 limit, 0 offset) already in schema. Overall sufficient for a list endpoint.

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% coverage with descriptions for all 3 parameters. The description adds 'pagination' context, but the schema already describes limit and offset. No additional meaning beyond 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 lists all products with pagination, using a specific verb and resource. It distinguishes itself from sibling tools like get_product (for single product retrieval) and other list tools.

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, such as searching or filtering. The context of pagination is implied but not elaborated. It lacks when-not-to-use scenarios.

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

keap_list_subscriptionsC

List subscriptions with filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
activeNoFilter by active status
contact_idNoFilter by contact

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It does not mention that the operation is read-only, whether pagination is used (though the schema has a limit parameter), or any rate limits. The description is too brief to compensate for missing 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 gets to the point. It is front-loaded with the core action. However, it could be improved by briefly listing the filter options or mentioning pagination, but the current length is still effective for a simple tool.

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 tool has no output schema and all parameters are optional, the description fails to explain the response format or default behavior (e.g., pagination limit). It does not tell the user what to expect from the list or how to handle large datasets.

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 baseline is 3. The description adds no additional meaning beyond 'filtering'; it does not clarify how filters interact (e.g., AND logic) or provide format details. The schema already documents each parameter sufficiently.

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 the tool lists subscriptions and supports filtering. The verb 'List' matches the tool's naming convention, and 'subscriptions' is a specific resource. However, it does not explicitly differentiate from other list tools like keap_list_contacts or keap_list_products, which may also support filtering.

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 (e.g., keap_get_subscription for a single subscription). There are no usage examples or context about prerequisites (e.g., need a contact ID for filtering). The description simply states functionality without directing the user.

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

keap_list_tag_categoriesB

List all tag categories

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

The description only says 'list all tag categories', implying a read operation, but does not disclose pagination, error handling, rate limits, or any behavioral traits. With no annotations, the description carries full burden but fails to provide meaningful transparency.

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 key information. It is appropriately sized for a simple list operation, though some might argue it is too brief.

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 no parameters, no output schema, and no annotations, the description is minimal. For a simple list of tag categories, it might be marginally sufficient, but the lack of any return format or pagination details makes it incomplete for an AI agent to fully understand the tool's behavior.

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

Parameters4/5

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

The tool has zero parameters, so schema coverage is 100% by default. The description adds no further parameter information, but none is needed. Baseline for zero parameters is 4.

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

Purpose5/5

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

The description clearly states the action 'List' and the resource 'all tag categories', which is specific and distinguishes it from sibling tools like 'keap_list_tags' (lists individual tags) and 'keap_create_tag_category' (creates a category).

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. There is no mention of context, prerequisites, or cases where another tool would be more appropriate.

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

keap_list_tagsA

List all tags with pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
offsetNoPagination offset
categoryNoFilter by category name

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided. Description mentions pagination but lacks details on ordering, default pagination behavior, or that it lists all tags despite pagination.

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 with clear purpose and pagination hint. Front-loaded and efficient, though slightly terse.

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?

Simple tool with three optional params and no output schema. Description does not indicate what data the response contains (e.g., tag objects).

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 description adds no value beyond schema. Baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states verb 'List' and resource 'tags', with 'pagination' hint. Distinguishes from siblings like keap_list_tag_categories and keap_get_tag.

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 or alternatives. Usage is implied but not stated.

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

keap_list_tasksB

List tasks with filtering and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
sinceNoTasks created after this date
untilNoTasks created before this date
offsetNoPagination offset
user_idNoFilter by assigned user
completedNoFilter by completion status
contact_idNoFilter by contact

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description must compensate. It does not disclose read-only nature, sorting behavior, rate limits, or any side effects. Only the basic operation is stated.

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 (5 words), front-loaded, no fluff. However, it sacrifices useful detail that could fit without bloat.

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, no output schema, and no annotations, the description is insufficient. It omits the return format (list of task objects?), default pagination behavior, and filtering semantics.

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% coverage with descriptions. The description adds only 'filtering and pagination', which is already obvious from parameters. No added value beyond 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 explicitly states 'List tasks with filtering and pagination'—a clear verb+resource combination. It distinguishes from siblings like keap_get_task (single task) and keap_search_tasks (search).

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 vs alternatives (e.g., keap_search_tasks). No mention of prerequisites, 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.

keap_list_transactionsC

List transactions with filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
sinceNoTransactions after this date
untilNoTransactions before this date
offsetNoPagination offset
contact_idNoFilter by contact

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'List', implying read-only, but does not confirm idempotency, authentication requirements, rate limits, or what happens to the system. The brief phrase fails to provide transparency beyond the obvious.

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 short sentence, which is efficient. However, it may be too minimal, sacrificing clarity and completeness. Every word does earn its place, but more context would be beneficial.

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 the presence of 5 parameters, the description is incomplete. It does not explain the return format, pagination behavior, or how filtering affects results. The agent needs more context to use the tool effectively.

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, so the baseline is 3. The description adds no extra meaning beyond the schema parameter descriptions, merely stating 'with filtering'. It does not explain how the parameters interact or provide usage examples.

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 the action 'List transactions' and the capability 'with filtering'. It is specific about the resource (transactions). However, it does not differentiate from sibling list tools like keap_list_orders or keap_list_order_transactions, leaving ambiguity about what type of transactions are included.

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 guidelines are provided on when to use this tool versus alternatives. There are several sibling list tools (e.g., keap_list_orders, keap_list_order_transactions) but this description gives no comparative context or exclusions, forcing the agent to guess.

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

keap_list_usersC

List all users in the account

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page
include_inactiveNoInclude inactive users

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as pagination, rate limits, or that the results can be filtered via parameters. Only a basic read operation is implied.

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

Conciseness3/5

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

The description is a single sentence, which is concise, but it omits important details like pagination behavior and filtering capabilities. It is not optimally front-loaded with key 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?

Given the simple nature of a list tool with only 2 fully described parameters and no output schema, the description is minimally adequate but lacks completeness regarding return format and pagination details.

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 parameters are already explained in the schema. The description adds no additional meaning beyond what is in the schema, earning a baseline score.

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 'List all users in the account' clearly identifies the action (list) and resource (users). It distinguishes from sibling tools as it is the only user-listing tool among many list 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 guidance is provided on when to use this tool versus alternatives or any prerequisites. The description lacks context for usage scenarios.

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

keap_merge_contactsB

Merge two contacts together, combining all data into one contact

ParametersJSON Schema
NameRequiredDescriptionDefault
source_contact_idYesContact ID to merge from (will be deleted)
target_contact_idYesContact ID to merge into (will be kept)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'combining all data' but does not disclose destructive behavior (source contact will be deleted). The input schema mentions deletion, but the description itself lacks this critical transparency.

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 communicates the core action. While it could include more detail, it is not overly verbose and front-loads the key 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?

No output schema exists, and the description does not explain return values or side effects. For a destructive merge operation, more context (e.g., confirmation, resulting contact ID) would be valuable. The description is incomplete for safe agent use.

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

Parameters3/5

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

Schema description coverage is 100% with clear parameter descriptions detailing which contact is deleted vs kept. The description adds no additional semantics beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses specific verbs and resources: 'Merge two contacts together, combining all data into one contact'. This clearly distinguishes it from sibling tools like keap_delete_contact or keap_update_contact, as merging is a unique operation.

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. There is no mention of prerequisites, such as ensuring contacts are not linked to critical records, or when not to merge. The agent receives no context for decision-making.

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

keap_opt_in_contactB

Opt in a contact to email communications

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address
opt_in_reasonYesReason for opt-in

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description is too brief to disclose behavioral traits such as whether the operation is idempotent, if it triggers a confirmation email, or how it interacts with existing opt-in status. The description adds minimal value beyond the tool's name.

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 with no extraneous information. It is front-loaded and to the point, though it sacrifices some helpful detail for brevity.

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 annotations and output schema, the description is insufficiently complete. It omits important context such as success/error behavior, required contact pre-existence, and any side effects. A minimal viable description would need more detail.

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 both parameters. The description does not add meaningful context beyond what the schema provides (e.g., legal implications of opt_in_reason), so it meets the baseline but does not exceed it.

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 'Opt in' and the resource 'a contact to email communications', making the tool's purpose unambiguous. It is distinct from its sibling 'keap_opt_out_contact' which performs the reverse action.

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 opt-in usage but provides no explicit guidance on when to use this tool versus alternatives (e.g., keap_update_contact) or prerequisites like contact existence or opt-in status. It lacks clear context for decision-making.

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

keap_opt_out_contactB

Opt out a contact from email communications

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden. It only says 'Opt out', implying a mutation, but lacks details on what exactly happens (e.g., permanent suppression, scope of opt-out) or any prerequisites.

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

Conciseness5/5

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

The description is a single, concise sentence with no wasted words, front-loading the essential 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?

For a simple tool with one parameter and no output schema, the description is adequate but lacks context about the effect's scope and prerequisites, which could help the agent use it correctly.

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% for the single parameter 'email'. The description adds no additional meaning beyond the schema's own description, earning the baseline score of 3.

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

Purpose5/5

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

The description clearly states the action ('Opt out') and the resource ('contact from email communications'), which is specific and distinguishes it from siblings like 'keap_opt_in_contact' and 'keap_send_email'.

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, such as contrasting with opt-in or send email tools, leaving the agent to infer usage context.

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

keap_remove_contact_from_campaignB

Remove a contact from a campaign sequence

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID
campaign_idYesCampaign ID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It mentions 'remove' (mutation) but does not disclose side effects, reversibility, or what happens if the contact is not in the campaign sequence.

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

Conciseness4/5

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

One short, efficient sentence with no wasted words. However, it could benefit from a brief usage hint to improve clarity without becoming verbose.

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 simple tool with no annotations or output schema, the description is too sparse. It lacks information on prerequisites, expected behavior on failure, or relationship to other campaign actions.

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% coverage with basic descriptions ('Contact ID', 'Campaign ID'), but the tool description adds no further meaning. Baseline of 3 is appropriate.

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

Purpose5/5

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

Description clearly states the action ('Remove') and the resource ('contact from a campaign sequence'), distinguishing it from siblings like 'keap_add_contact_to_campaign' and 'keap_remove_contact_from_sequence'.

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., removing from a sequence vs. campaign). The description only states the action, lacking context or exclusions.

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

keap_remove_contact_from_sequenceB

Remove a contact from a campaign sequence

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesContact ID
sequence_idYesSequence ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided. The description does not disclose any behavioral traits beyond the basic action, such as idempotency, side effects, or error handling. The description carries the full burden but adds minimal value beyond the name.

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

Conciseness5/5

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

Single sentence with no fluff or redundancy. Very concise and front-loaded.

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

Completeness3/5

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

For a simple removal tool with two required parameters and no output schema, the description is adequate but lacks behavioral context like prerequisites or what happens if the contact is not in the sequence. It covers the essentials but is 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 coverage is 100% with descriptions 'Contact ID' and 'Sequence ID'. The description adds no additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action 'Remove' and the resource 'a contact from a campaign sequence'. It distinguishes from siblings like keap_add_contact_to_sequence and keap_remove_contact_from_campaign.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description provides clear context but lacks exclusions or when-not scenarios.

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

keap_remove_tag_from_contactA

Remove one or more tags from a contact

ParametersJSON Schema
NameRequiredDescriptionDefault
tag_idsYesArray of tag IDs to remove
contact_idYesContact ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as permissions, side effects, idempotency, or error behavior. For a mutation tool, this is a significant gap, leaving the agent unaware of potential consequences.

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 directly conveys the core functionality without extraneous information. It is front-loaded with the action and resource, making it easy to parse quickly.

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 simplicity (2 required params, no output schema), the description covers the basic operation. However, it lacks behavioral context such as idempotency, prerequisites, or what happens on failure, which would be expected for completeness in a CRUD operation.

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 baseline is 3. The description adds minimal value beyond the schema: it reiterates that one or more tags can be removed, which is already implied by the array type. No additional parameter details or constraints are given.

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 ('Remove') and the resource ('tags from a contact'). It effectively distinguishes from sibling tools like keap_apply_tag_to_contact, which performs the opposite operation.

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

Usage Guidelines3/5

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

The description implies usage for removing tags but does not provide explicit guidance on when to use or when not to use, nor does it mention alternatives among siblings. The context of sibling names (e.g., keap_apply_tag_to_contact) offers indirect differentiation, but the description itself lacks usage direction.

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

keap_search_contactsC

Search contacts by email, name, phone, or other criteria

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoSearch by email address
limitNoMax results
given_nameNoSearch by first name
family_nameNoSearch by last name

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It does not mention whether the operation is read-only, if it returns multiple contacts or a single one, or any side effects. The term 'search' is vague.

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

Conciseness2/5

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

The description is very short but includes an inaccurate mention of 'phone' and vague 'other criteria'. It fails to be efficient because it introduces misleading information.

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

Completeness2/5

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

With no output schema and no annotations, the description is incomplete. It does not explain the response format, pagination behavior (though limit is parameter), or error conditions, leaving the agent underinformed.

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 already describes each parameter (email, limit, given_name, family_name) at 100% coverage. The description adds no new semantic detail and incorrectly includes 'phone' which is not a parameter, potentially confusing the agent.

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 the action (search) and resource (contacts) and lists common search criteria (email, name, phone). However, it includes 'phone' which is not in the schema, and does not differentiate from sibling tools like keap_list_contacts or keap_get_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 is provided on when to use this tool versus alternatives. The description does not specify prerequisites, exclusions, or limitations regarding search criteria.

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

keap_search_tasksC

Search tasks by title, description, or other criteria

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results
queryNoSearch query

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, rate limits, or side effects. The description carries the full burden but only states basic search functionality.

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 without extraneous content. It is front-loaded with the action and resource, but could be more 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?

For a simple search tool with two parameters and no output schema, the description is minimally adequate. It lacks details about return format, pagination, or error handling, but given the simplicity, it meets a basic threshold.

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 both parameters (limit, query). The description adds minimal context by mentioning 'title, description, or other criteria', but this is largely redundant given the schema.

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 the tool searches tasks by title, description, or other criteria, distinguishing it from list and get tasks. However, it could be more specific about the scope and behavior.

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 siblings like keap_list_tasks or keap_get_task. The description does not provide context for choosing this over alternatives.

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

keap_send_emailC

Send an email to one or more contacts

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesEmail subject
contactsYesArray of contact IDs
attachmentsNoEmail attachments
from_addressNoFrom email address
html_contentNoHTML content of email
text_contentNoPlain text content of email
reply_to_addressNoReply-to email address

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description lacks behavioral details such as whether the email is sent immediately, authentication requirements, attachment limits, or success/failure responses.

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 with no extraneous words, but it could be more structured with front-loaded key 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 7 parameters and no output schema or annotations, the description is insufficient. It does not address return values, error states, or usage context beyond basic purpose.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents parameters. The description adds no additional meaning beyond what is in the schema, meeting the baseline of 3.

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 'Send an email to one or more contacts' with a specific verb and resource. It distinguishes itself from sibling tools like keap_get_email or keap_create_contact, though it could be more precise about the email scope.

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, no exclusions, and no context for prerequisites or preferred use cases.

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

keap_update_account_profileB

Update account profile settings

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoBusiness name
emailNoBusiness email
phoneNoBusiness phone
addressNoBusiness address
websiteNoBusiness website
time_zoneNoTime zone
language_tagNoLanguage tag (e.g., en-US)
currency_codeNoCurrency code (e.g., USD)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It does not mention idempotency, side effects, authentication requirements, or handling of omitted fields. The update action is implied but not elaborated.

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 extremely concise at six words, with no wasted text. However, it lacks structure (e.g., bullet points) and front-loading of key information, which slightly lowers the score.

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 8 parameters and no output schema, the description is insufficient. It does not specify return values, error conditions, or partial update behavior, leaving significant gaps for a complex tool.

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 all parameters. The description adds no meaning beyond what is in the schema, meeting the baseline for high 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 verb 'update' and the resource 'account profile settings', which is specific and distinct from sibling tools like keap_get_account_profile (read) and other update tools targeting different resources.

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, nor are there any prerequisites or exclusions mentioned. The description is too minimal to help an agent decide contextually.

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

keap_update_appointmentB

Update an existing appointment

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoAppointment title
end_dateNoEnd date/time
locationNoLocation
start_dateNoStart date/time
descriptionNoDescription
appointment_idYesAppointment ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description only states 'Update an existing appointment', implying mutation but lacking details on permissions, idempotency, or side effects.

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

Conciseness4/5

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

A single sentence, no wasted words. Could be more structured but is appropriately concise.

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 6 parameters and no output schema, the description is too minimal. It does not clarify required fields, date formats, or any constraints, leading to incomplete guidance.

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 6 parameters. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description states 'Update an existing appointment', clearly indicating the verb (update) and resource (appointment). It distinguishes from siblings like keap_create_appointment and keap_delete_appointment.

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 create or delete. No context or prerequisites are mentioned.

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

keap_update_companyC

Update an existing company

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoCompany email
notesNoNotes
phoneNoCompany phone
websiteNoCompany website
company_idYesCompany ID
company_nameNoCompany name

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'Update' without indicating whether it is a full replace or partial update, what happens on failure, 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.

Conciseness5/5

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

The description is a single sentence with no extraneous words. It is appropriately brief for a simple update operation.

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 mutation tool with 6 parameters and no output schema, the description should explain update semantics (e.g., partial vs full). It lacks completeness given the tool's complexity.

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 description bears little burden for parameters. However, it adds no additional meaning beyond the schema, such as explaining that only provided fields are updated.

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

Purpose4/5

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

The description states 'Update an existing company', which clearly communicates the verb and resource. It distinguishes from keap_create_company and keap_get_company by the verb 'update', though it does not elaborate on scope.

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 vs alternatives like keap_create_company or when partial update behavior applies. No prerequisites or context provided.

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

keap_update_contactB

Update an existing contact with new information

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoPrimary email address
phoneNoPrimary phone number
tag_idsNoArray of tag IDs
owner_idNoUser ID of contact owner
job_titleNoJob title
contact_idYesContact ID
given_nameNoFirst name
family_nameNoLast name
company_nameNoCompany name
custom_fieldsNoCustom field values

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavioral traits. It only says 'update', not specifying if it is a partial update (PATCH) or full replace (PUT), nor any side effects or permission requirements.

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

Conciseness3/5

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

The description is extremely concise (one sentence), but lacks important context. It is front-loaded with the verb and resource, but is under-informative.

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 tool has 10 parameters and no output schema, the description does not explain the update semantics (e.g., partial vs full) nor the return value. It is insufficient for a complete 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 description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema, such as whether tag_ids replaces or appends tags.

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 'Update an existing contact with new information', specifying the action (update) and the resource (contact), distinguishing it from create and other update 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 guidance on when to use this tool versus alternatives like keap_merge_contacts or other update tools. Does not mention required permissions or preconditions.

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

keap_update_contact_custom_fieldB

Update a specific custom field value for a contact

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesNew value for the custom field
contact_idYesContact ID
custom_field_idYesCustom field ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It states 'update' but does not disclose behavioral traits such as whether the update is idempotent, whether it creates the field if missing, authentication requirements, or side effects.

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

Conciseness4/5

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

The description is a single sentence with no fluff. It is concise and front-loaded. However, it could include more context without becoming verbose.

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 simplicity (3 required params, no output schema), the description is adequate but could cover return behavior or error conditions. It lacks completeness for a mutation tool.

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 three parameters (contact_id, custom_field_id, content). The tool description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description 'Update a specific custom field value for a contact' clearly states the verb (update) and the specific resource (custom field value). It distinguishes from sibling tools like keap_update_contact (updates main contact fields) and keap_get_contact_custom_fields (reads custom fields).

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. Does not mention when not to use it, prerequisites, or context. Sibling tools exist for different purposes, but the description provides no differentiation beyond the basic action.

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

keap_update_hookC

Update a REST hook

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoHook status (Active, Inactive)
hookUrlNoNew webhook URL
hook_keyYesHook key to update

TDQS

C2.2/5.0
Behavior1/5

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

No annotations exist, and the description only states 'Update a REST hook', which implies mutation but lacks specifics. It does not disclose required permissions, side effects, reversibility, or response behavior, leaving the agent with minimal insight.

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 extremely concise at one sentence. However, the brevity sacrifices critical information that could be included without harming conciseness. It is efficient but under-specified.

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 annotations and output schema, and the presence of sibling tools, the description is insufficient. It does not explain the tool's role in the lifecycle (update vs. create/delete/verify) or what changes occur, making it incomplete 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.

Parameters3/5

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

The input schema describes all three parameters (status, hookUrl, hook_key) with complete coverage (100%). The tool description adds no additional semantic meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose2/5

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

The description 'Update a REST hook' is essentially a restatement of the tool name 'keap_update_hook'. It adds no new information about what a REST hook is or what the update entails, making it tautological.

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 like keap_create_hook or keap_delete_hook. The description does not mention prerequisites or context, leaving the agent without decision support.

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

keap_update_noteC

Update an existing note

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoNote content
typeNoNote type
titleNoNote title
note_idYesNote ID

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits beyond the fact that the tool updates a note. There is no mention of what happens if the note does not exist, permissions needed, or side effects.

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

Conciseness2/5

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

The description is a single sentence but adds little value beyond the tool name. It is under-specified rather than concise, lacking useful context.

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 4 parameters, no output schema, and no annotations, the description is insufficient. It does not explain return values, required parameters (note_id), or the scope of updates.

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 covers all 4 parameters with descriptions (100% coverage). The description adds no additional meaning beyond the schema, so it meets the baseline.

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

Purpose3/5

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

Description states 'Update an existing note' which is clear but essentially restates the tool name 'update_note'. It adds the word 'existing' but does not distinguish from sibling tools like keap_create_note or keap_delete_note in any meaningful way.

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 when-to-use or when-not-to-use guidance is provided. The description does not mention alternatives or prerequisites, leaving the agent to infer 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.

keap_update_opportunityC

Update an existing opportunity

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idNoUser ID (owner)
stage_idNoPipeline stage ID
opportunity_idYesOpportunity ID
next_action_dateNoNext action date
next_action_notesNoNext action notes
opportunity_notesNoNotes
opportunity_titleNoDeal title
estimated_close_dateNoEstimated close date
projected_revenue_lowNoLow revenue estimate
projected_revenue_highNoHigh revenue estimate

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description fully bears the burden of disclosing behavioral traits. It only states 'update an existing opportunity,' omitting side effects, permission requirements, field constraints, or that it modifies the opportunity in the system. For a mutation tool with 10 parameters, this is insufficient.

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

Conciseness3/5

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

At one sentence, it is concise but potentially under-specified. The description efficiently conveys the basic action but could include a brief one-liner about scope (e.g., 'fields listed in input') without sacrificing conciseness. It achieves a bare minimum.

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 annotations, and the presence of 10 parameters, the description does not guide the agent on expected return values, error handling, or effective usage. It fails to provide a complete mental model for the tool's operation.

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 baseline is 3. The description adds no additional meaning beyond the schema's property descriptions, providing no grouping, relationships, or usage tips. It neither detracts nor adds value.

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 'Update an existing opportunity' clearly states the action (update) and resource (opportunity), distinguishing it from sibling tools like create, delete, or get opportunity. However, it does not differentiate from the highly similar sibling keap_update_opportunity_stage, which updates only the stage field, potentially causing confusion.

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 (e.g., keap_update_opportunity_stage for stage-only updates) or prerequisites (e.g., opportunity must exist). The description lacks any when-to-use or when-not-to-use context.

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

keap_update_opportunity_stageB

Move an opportunity to a different pipeline stage

ParametersJSON Schema
NameRequiredDescriptionDefault
stage_idYesNew stage ID
opportunity_idYesOpportunity ID
move_to_stage_reasonNoReason for stage change

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It fails to disclose behavioral traits such as whether it returns the updated opportunity, requires permissions, or handles invalid stages; it only states the basic action.

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 with no wasted words, achieving conciseness. However, it lacks structure and could benefit from added context like prerequisites or outcome info.

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 tool's simplicity, the description is insufficient: it does not mention return format (no output schema), prerequisites (e.g., opportunity existence), or validation of stage ID. An agent would lack crucial information for correct invocation.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all three parameters, but the tool description adds no additional meaning beyond what the schema provides. The baseline is 3, 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 'Move an opportunity to a different pipeline stage' uses a specific verb and resource, clearly distinguishing it from sibling tools like keap_update_opportunity (which updates other fields) and keap_get_opportunity_stage_pipeline (retrieval).

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, such as when to update opportunity details vs. stage only, or any prerequisites like ensuring the stage exists in the pipeline.

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

keap_update_productC

Update an existing product

ParametersJSON Schema
NameRequiredDescriptionDefault
skuNoSKU code
statusNoStatus (0=inactive, 1=active)
product_idYesProduct ID
product_nameNoProduct name
product_priceNoProduct price

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'Update an existing product', leaving out side effects (e.g., whether it's idempotent, permissions needed, error handling for missing product). The description is insufficient for safe agent invocation.

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 is easy to parse. It front-loads the action. However, it could sacrifice conciseness for completeness without being overly verbose.

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 no output schema and no annotations, the description should provide more context such as return value, partial update behavior, or dependencies. It fails to do so, leaving the agent with significant uncertainty about the tool's behavior.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema explains all parameters. The description adds no extra meaning beyond what the schema provides. Baseline score of 3 is appropriate as the description does not improve understanding of 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 'Update an existing product' clearly states the action (update) and the resource (product). It distinguishes from sibling tools like keap_create_product and keap_delete_product. However, it is minimal and could be more specific about which fields can be updated.

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 when to update vs create/delete, or any prerequisites like requiring the product to exist. The description does not mention scenarios or limitations.

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

keap_update_taskC

Update an existing task

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoTask title
task_idYesTask ID
due_dateNoDue date
priorityNoPriority
completedNoMark as completed
descriptionNoTask description

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It states only 'Update an existing task' without disclosing behavioral traits like idempotency, error handling (e.g., if task_id is invalid), permission requirements, or side effects (e.g., whether updating a completed task resets it). This is insufficient for a mutation tool.

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

Conciseness2/5

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

The description is extremely brief (5 words), but it lacks necessary information. Conciseness is not just shortness; it should be efficiently informative. This description is under-specified and does not earn its place by providing value beyond the tool name.

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 6 parameters, no output schema, and no annotations, the description is incomplete. It does not explain important details like which fields can be updated (though schema lists them), the effect of omitting fields, or the expected response. The tool is complex enough to require more contextual information.

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

Parameters3/5

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

Schema description coverage is 100%, with all 6 parameters having individual descriptions in the schema. The tool's description adds no additional meaning beyond 'Update an existing task', which does not elaborate on parameter usage or constraints. Baseline 3 is appropriate as the schema already provides adequate parameter descriptions.

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

Purpose3/5

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

The description 'Update an existing task' clearly states the action (update) and resource (task), but it is generic and does not distinguish from sibling tools like keap_complete_task (which specifically completes a task) or keap_create_task. The verb+resource is present but lacks specificity to differentiate from similar update 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 usage guidelines are provided. There is no indication of when to use this tool versus alternatives such as keap_complete_task (for completion) or keap_update_appointment (for different resources). The description fails to mention prerequisites or alternative scenarios.

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

keap_upload_fileC

Upload a file to Keap

ParametersJSON Schema
NameRequiredDescriptionDefault
file_dataYesBase64 encoded file data
file_nameYesName of the file
is_publicNoMake file publicly accessible
contact_idNoAssociate with contact ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior. It only states 'upload' but doesn't mention overwrite behavior, file type restrictions, success/failure responses, or any side effects. This is insufficient for safe invocation.

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

Conciseness2/5

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

The description is a single 5-word sentence. While concise, it is under-specified and lacks structure. It does not front-load key details or provide any organized 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 4 parameters and no output schema, the description does not cover return values, error handling, or operational details. It is insufficient for a tool that may have constraints like file size, MIME types, or association behavior.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions (file_name, file_data, is_public, contact_id). The description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description 'Upload a file to Keap' clearly states the action (upload) and the resource (file). This distinguishes it from siblings, which include CRUD tools for contacts, products, etc., but no other file upload tool.

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 vs alternatives, file size limits, required permissions, or what happens with duplicate filenames. The description is purely functional without usage context.

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

keap_verify_hookB

Verify a REST hook

ParametersJSON Schema
NameRequiredDescriptionDefault
hook_keyYesHook key to verify

TDQS

B3.2/5.0
Behavior2/5

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

Without annotations, the description must disclose behavior. It fails to explain what verification entails (e.g., whether it makes a network call, checks validity, or returns a result). The minimal description leaves agents guessing.

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 with no extraneous words. It is appropriately concise and front-loaded.

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 verification tool, the description omits what the outcome indicates, success/failure conditions, and any return values. It is not complete enough 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.

Parameters3/5

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

Schema coverage is 100% with one parameter 'hook_key' described as 'Hook key to verify'. The description adds no extra meaning, but the schema is adequate. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description 'Verify a REST hook' uses a specific verb and resource, clearly distinguishing it from sibling tools like create, delete, list, or update hooks.

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, no prerequisites, and no context about when verification is needed.

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

TDQS

B3.1/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific entities and actions (e.g., create_contact vs create_company). A few pairs like add_contact_to_campaign and add_contact_to_sequence are very similar but descriptions clarify the difference. Overall, ambiguity is low despite the large number.

Naming Consistency5/5

All tools follow a consistent 'keap_verb_noun' pattern using standard verbs (create, get, list, update, delete) and appropriate singular/plural nouns (contact, contacts, tag, tags). No naming style mixing, making it predictable.

Tool Count3/5

111 tools is very high for a typical MCP server. While the CRM domain has many entities, the count is inflated by separating model-getters and sub-resource operations (e.g., get_contact_credit_cards). Some consolidation could reduce the number without losing clarity.

Completeness4/5

CRUD operations are present for most core entities (contact, company, opportunity, product, order, etc.). There are minor gaps: missing update for subscriptions and affiliates, and no delete for some entities. However, the surface is comprehensive with additional operations like search, merge, opt-in/out, and webhooks.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Comprehensive Model Context Protocol server for MySQL databases featuring 191 specialized tools for CRUD operations, JSON functions, spatial/GIS, schema management, performance monitoring, and advanced features like OAuth 2.1 authentication and connection pooling.
    43
    133
    10
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server for Plunk, the open-source self-hosted email platform. Provides 84 tools for transactional email, contacts, campaigns, segments, templates, workflows, events, and analytics through the Plunk API.
    11
    27
    2
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    A comprehensive MCP server covering the full GoHighLevel API surface with 651 tools, enabling management of contacts, opportunities, calendars, invoices, and more through natural language, with multi-tenant support and read-only safety defaults.
    100
    37
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Complete Model Context Protocol server for ClickUp, enabling interaction with tasks, spaces, lists, docs, goals, time tracking, and more through 93 tools and 18 React MCP apps.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BusyBee3333/keap-mcp-2026-complete'

If you have feedback or need assistance with the MCP directory API, please join our Discord server