CatchAll
Server Details
Web search API: find every relevant event across the open web, not just the top results.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.8/5 across 60 of 60 tools scored. Lowest: 2.8/5.
Most tools have distinct purposes, but some pairs like create_dataset vs create_dataset_from_csv or pull_results vs pull_job_csv could cause confusion. However, descriptions clarify differences.
Tools follow a consistent verb_noun pattern (e.g., create_dataset, list_datasets) with minor exceptions like append_csv_to_dataset and pull_job_csv. Overall predictable.
60 tools is high for an MCP server, but the domain (web research, job processing, multiple resource types) justifies the count. Still borders on excessive.
The server offers full CRUD for datasets, entities, monitors, projects, webhooks, plus job submission, status polling, result retrieval (JSON/CSV), webhook management, and health endpoints. No obvious gaps.
Available Tools
60 toolsadd_dataset_entitiesBInspect
Add existing entities to a dataset.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| dataset_id | Yes | The dataset ID to add entities to. | |
| entity_ids | Yes | List of entity IDs to add (required). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. Only states basic action; no disclosure of side effects (e.g., duplicates allowed?), error handling, or auth requirements beyond schema. Schema covers api_key, but description adds nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence, front-loaded with purpose. Could benefit from slight expansion for clarity, but not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite simple tool and presence of output schema (not shown), description lacks context on prerequisites (entities must exist), behavior if entity already in dataset, or error conditions. Incomplete for safe agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage 100%, so all parameters are described in schema. Description does not add additional meaning beyond schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (add) and resources (existing entities to a dataset). It distinguishes from create_entity and create_entities_batch, which create new entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., remove_dataset_entities, create_entities_batch). No prerequisites mentioned (entities must exist, dataset must exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_project_resourcesBInspect
Add one or more resources to a project.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| resources | Yes | A list of resource objects, each `{"resource_type": ..., "resource_id": ...}`. `resource_type` is one of: 'job', 'monitor', 'dataset', 'monitor_group'. May also be passed as a JSON-string array for client compatibility. | |
| project_id | Yes | The project ID to add resources to. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It only says 'add' implying mutation, but does not mention side effects, validation, duplicate handling, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is concise, but could benefit from additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to explain return values. However, for a mutation tool, missing information on idempotency, error conditions, and prerequisites makes it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what the schema already provides for parameters like resources and project_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add one or more resources to a project' clearly states the verb (add), object (resources), and target (project). It distinguishes from sibling tools like remove_project_resource and list_project_resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor any prerequisites or usage conditions. It is a single sentence without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_csv_to_datasetAInspect
Append entities from a CSV file to an existing dataset.
Parses the CSV and appends its entities to the dataset. Each row must
have a name column; include a domain or description column (or both)
for meaningful enrichment. Duplicate rows (by name) are skipped. To create
a new dataset from a CSV, use create_dataset_from_csv instead.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | CSV content (required) — raw CSV text or standard base64-encoded CSV, capped at 10 MB after decoding. Server-side file paths are not accepted. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| dataset_id | Yes | The dataset ID to append entities to (required). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully covers behavioral aspects: parsing CSV, appending, skipping duplicate rows by name, and file size limit. However, it does not mention error conditions (e.g., dataset not found) 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 short paragraphs), front-loaded with the main purpose, and every sentence adds value. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (mentioned in context signals), the description is complete: it covers input, behavior, column constraints, and alternatives. There are no gaps given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema: it clarifies the file format (raw CSV or base64, max 10 MB), the importance of the 'name' column, and the optionality of API key. This complements the 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear verb-object statement: 'Append entities from a CSV file to an existing dataset.' It also explicitly distinguishes itself from the sibling tool `create_dataset_from_csv`, stating when to use that instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance (appending to existing dataset) and when-not-to-use (creating new dataset, with alternative named). It also advises on required and optional columns for meaningful enrichment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_webhook_resourceAInspect
Map a resource (job, monitor, or monitor_group) to a webhook.
Use when:
You want a webhook to fire for a specific job or monitor's deliveries.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| webhook_id | Yes | The webhook ID to attach the resource to. | |
| resource_id | Yes | The ID of the job/monitor/monitor_group to map. | |
| resource_type | Yes | Resource type: 'job', 'monitor', or 'monitor_group'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 'Map a resource to a webhook' which implies association, but it does not disclose whether existing mappings are overwritten, if the webhook must exist, or any other side effects or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the action. There is no wasted text, and every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate but minimal. It does not explain behavior on duplicate mappings or constraints. Given the tool's simplicity and the presence of an output schema, it is acceptable but could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already described in the schema. The description lists the resource types again but adds no new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Map a resource (job, monitor, or monitor_group) to a webhook.' It uses a specific verb and resource, and distinguishes from sibling tools like create_webhook and remove_webhook_resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use when: - You want a webhook to fire for a specific job or monitor's deliveries.' It provides clear context but does not mention when not to use it or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_healthAInspect
Check API health status.
This tool maps to GET /health and does not require an API key.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional CatchAll API key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides key behavioral details: it is a read-only GET request requiring no auth. This covers the main risks for a health check tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences: first states purpose, second adds endpoint and auth info. No extraneous content; front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple health check with an output schema, the description covers all necessary context: purpose, mapping, and auth requirement. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the single optional parameter, so the description adds minimal value beyond restating it as optional. High schema coverage leads to baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks API health status and maps to a specific endpoint, making its purpose unambiguous. It is distinct from siblings like get_version or get_user_limits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes that no API key is required, guiding usage without authentication. However, it does not compare to alternatives or specify when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
continue_jobAInspect
Expand a job by processing more records beyond the initial limit.
This increases the number of records the system processes (which costs additional credits). Only use this when the user wants MORE data processed.
This only applies to jobs originally submitted with limit.
If a job was submitted without limit, there is nothing to continue.
The new_limit must be greater than the previous limit when provided.
If omitted, API defaults to your plan maximum.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job ID to continue processing | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| new_limit | No | Optional new record processing limit (must exceed the previous limit if provided). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 discloses that continuing costs additional credits and that new_limit defaults to plan maximum. It does not mention reversibility or other side effects, but the provided info is sufficient for most use cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (6 short lines) and well-structured: a clear one-line purpose followed by bullet-point-like usage guidance. Every sentence adds value with no repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description adequately covers preconditions, constraints, and effects. It does not explain return values, but the output schema handles that. Overall, it is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds critical context: new_limit must be greater than previous limit and defaults to plan maximum. This adds meaning beyond the schema's basic type/description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Expand a job by processing more records beyond the initial limit.' It distinguishes from sibling tools by specifying it only applies to jobs with a limit, which is unique among the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use ('when the user wants MORE data processed') and when not to use ('If a job was submitted without `limit`, there is nothing to continue'). It also provides important constraints on new_limit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_datasetAInspect
Create a new dataset.
Datasets are collections of entities (companies/people). Connect a dataset to
a job via submit_query(connected_dataset_ids=[...]) to narrow retrieval scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable dataset name (required). | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| entity_ids | No | Optional list of existing entity IDs to seed the dataset with. | |
| project_id | No | Optional project ID to associate this dataset with. | |
| description | No | Optional dataset description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 required permissions, rate limits, idempotency, or side effects. For a create operation, users need to know if it is safe to call repeatedly 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs. The first states the action, the second explains the purpose. Every sentence adds value, no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides important context on how datasets are used in the system (connecting to jobs). However, it lacks behavioral transparency (e.g., authentication requirements, response format). The existence of an output schema partially compensates for the latter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are described in the input schema (100% coverage), so the baseline is 3. The description adds no additional parameter meaning beyond what the schema provides, but it does give conceptual context about datasets.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool creates a new dataset and explains what datasets are, distinguishing it from siblings like create_dataset_from_csv, delete_dataset, and update_dataset. The verb 'create' and resource 'dataset' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the context of use by describing datasets as collections of entities and how to connect them to jobs via submit_query. However, it does not explicitly contrast with create_dataset_from_csv or specify when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_dataset_from_csvAInspect
Create a new dataset by uploading a CSV file.
The CSV must have at least a name column. For meaningful entity
enrichment each row should also include a domain column or a
description column (or both) — a row with only a name is accepted but
produces lower-quality enrichment. Additional columns are mapped to entity
attributes. Max file size is plan-dependent. To add CSV rows to an
existing dataset, use append_csv_to_dataset instead.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | CSV content (required) — raw CSV text or standard base64-encoded CSV, capped at 10 MB after decoding. Server-side file paths are not accepted. | |
| name | Yes | Human-readable dataset name (required). | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| project_id | No | Optional project ID to associate this dataset with (new in 1.6.1). | |
| description | No | Optional dataset description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the CSV must have a 'name' column, mentions enrichment quality impact of additional columns, notes that extra columns become attributes, and states a file size limit. However, it does not discuss authentication or rate limits, which 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two well-structured paragraphs. The first sentence immediately states the purpose. Every sentence adds value, and there are no superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (indicated by 'Has output schema: true'), 100% schema coverage, and the thorough explanation of CSV requirements and usage, the description is complete. It covers all critical aspects without needing to repeat return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds significant meaning beyond the schema: it explains that the file parameter can be raw CSV text or base64 and cannot be a server path, clarifies the purpose of the name parameter, and provides context for optional parameters like api_key and project_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: creating a new dataset by uploading a CSV file. It uses specific verb+resource ('Create a new dataset by uploading a CSV file') and distinguishes from sibling tools like append_csv_to_dataset, which is explicitly mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (for creating a new dataset from CSV) and when not (for adding rows to an existing dataset, use append_csv_to_dataset). It also details requirements (must have a 'name' column, optional 'domain' or 'description' for enrichment) and limitations (max file size plan-dependent).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_entities_batchBInspect
Create multiple entities in one call.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| entities | Yes | A list of entity objects. Each object requires a ``name`` plus one identifying field for good enrichment: either a top-level ``"description"`` or ``"additional_attributes": {"company_attributes": {"domain": "..."}}``. Also accepts optional ``entity_type`` ('company'/'person'). May also be passed as a JSON-string array. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description only says 'Create multiple entities' with no mention of limits, idempotency, error handling, or side effects. With no annotations provided, this is insufficient for understanding 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded and concise. Every word is relevant; no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch creation operation, important context is missing: batch size limits, partial failure behavior, required auth context beyond api_key, and whether it is idempotent. Even with complete schema and output schema, these gaps make it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with detailed descriptions for both parameters (api_key and entities). The description does not add any new insight 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it creates multiple entities in one call, distinguishing it from the sibling 'create_entity' which creates a single entity. Verb and resource are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'create_entity' for single entities or other batch methods. Lacks context for when it is appropriate or not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_entityAInspect
Create a single entity (a company or person).
name is required plus at least one identifying
field: either description or additional_attributes.company_attributes.domain.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Entity name (required). | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| description | No | Optional description of the entity. | |
| entity_type | No | Optional entity type: 'company' (default) or 'person'. | |
| external_entity_id | No | Optional customer-supplied identifier linking this entity to an external system's record (new in 1.6.3). | |
| additional_attributes | No | Optional structured attributes. For companies, use `{"company_attributes": {"alternative_names": [...], "domain": "...", "key_persons": [...], "description": "..."}}`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 mentions authentication alternatives (API key via header/env var) and entity_type defaults, but does not disclose side effects, idempotency, or error behavior. The output schema exists, which may compensate for return value documentation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no unnecessary words, front-loaded with purpose and key constraint. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity (6 params, 1 required) and the existence of an output schema, the description covers the core purpose and a critical requirement. It could mention batch alternatives, but the sibling list includes create_entities_batch, which is discernible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds meaningful context beyond the schema: it clarifies the mutual requirement between description and domain for identifying fields, and notes entity_type defaults. This adds significant value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a single entity (company or person) and specifies the key requirement (name plus an identifying field). This distinguishes it from siblings like create_entities_batch and update_entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear requirement (name + one of description/domain) but does not explicitly contrast with other tools for similar tasks (e.g., when to use batch vs single). Usage 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.
create_monitorAInspect
Create a recurring monitor from a completed job.
Monitors re-run a job's query on a schedule. Use the explore -> refine -> automate pattern: submit a job, refine until results match, then create a monitor.
The schedule is defined in natural language (e.g., 'every day at 9 AM EST').
Always include a timezone (in the schedule text or via the timezone arg).
API-enforced constraints apply:
If
backfill=true, reference job end_date must be within the last 7 daysIf
backfill=false, reference job age does not matterMinimum schedule frequency depends on your plan
Webhooks are now centralized: register them with create_webhook, then pass
their IDs here via webhook_ids (there is no inline webhook config anymore).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional max records per run (minimum 10). If omitted, API uses plan default. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| backfill | No | Optional gap-fill toggle before first run (default true). | |
| schedule | Yes | Natural language schedule (e.g., 'every day at 9 AM EST', 'every Monday at 8 AM UTC', 'every 48 hours') | |
| timezone | No | Optional IANA timezone for the schedule (e.g. 'America/New_York'). Defaults to UTC. A timezone written into the schedule text overrides this. | |
| project_id | No | Optional project ID to associate this monitor with. | |
| webhook_ids | No | Optional list of webhook IDs to notify on each run completion (max 5). | |
| reference_job_id | Yes | ID of a completed job to use as the template |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses behavioral traits: schedule in natural language, backfill constraints (reference job end_date must be within last 7 days if backfill=true), minimum schedule frequency depending on plan, and centralized webhooks. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise and well-structured with paragraphs. It could be slightly more terse, but every sentence adds value. Minor improvement possible by removing redundant 'Optional' mentions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters (2 required), no annotations, and presence of an output schema, the description is complete. It covers the workflow, constraints, and relationships with other tools like create_webhook. The agent has enough context to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds extra meaning: explains natural language schedule, timezone overrides, backfill default, webhook IDs max 5, and API key optional. This provides context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a recurring monitor from a completed job', which is a specific verb+resource. It distinguishes this tool from siblings like delete_monitor, enable_monitor, and update_monitor by explaining the pattern and centralization of webhooks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use the explore -> refine -> automate pattern: submit a job, refine until results match, then create a monitor.' It also explains when to use backfill and webhooks, and references sibling tools like create_webhook for webhook registration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectAInspect
Create a new project.
Projects group related resources (jobs, monitors, datasets, monitor_groups)
so you can organize work and filter listings by project_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable project name (required). | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| description | No | Optional project description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear full responsibility for behavioral disclosure. It only states it creates a project but gives no details on side effects, validation, permissions, or return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. First sentence states the action, second provides context. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple creation tool with an output schema present. Lacks details on duplicate handling, permissions, or what exactly is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; parameters are already well-described in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it creates a new project and explains the purpose of projects (grouping related resources, filtering by project_id). Distinguishes from siblings like update_project or delete_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage via the explanation of project benefits, but does not explicitly state when to use vs. alternatives (e.g., create_dataset, create_monitor) or mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_webhookAInspect
Create a new webhook endpoint.
Use when:
You want to register a URL to receive job or monitor result deliveries.
You need a webhook_id to attach to a monitor (via webhook_ids) or a job submission.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL that will receive webhook deliveries (required). | |
| auth | No | Optional auth object forwarded with each delivery. One of: - {"type": "bearer", "token": "..."} - {"type": "api_key", "header": "X-API-Key", "value": "..."} - {"type": "basic", "username": "...", "password": "..."} | |
| name | Yes | Human-readable name for the webhook (required). | |
| type | No | Optional webhook target type: 'generic' (default), 'slack', 'teams', or 'custom'. 'slack'/'teams' send pre-formatted payloads; 'generic'/'custom' send the raw result payload. | |
| method | No | HTTP method for delivery (default 'POST'). One of GET, POST, PUT, PATCH, DELETE. | POST |
| params | No | Optional dict of query string parameters appended to the webhook URL. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| headers | No | Optional dict of custom HTTP headers to include in deliveries. | |
| delivery_mode | No | Optional delivery mode: 'full' (default, whole result set in one call) or 'per_record' (one call per article). | |
| formatter_config | No | Optional custom payload transformation config dict. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 describes the creation action but does not disclose behavioral traits like side effects, persistence, authentication requirements (though params hint at it), rate limits, or return value expectations. The output schema exists, but the description itself lacks behavioral context beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two brief sentences for purpose and a separate usage section. Every sentence adds value, and the structure is clean and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters and an output schema, the description is reasonably complete. It covers the core purpose and usage context. The output schema likely explains return values, so the description need not repeat that. Minor gap: no mention of prerequisites or state changes, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds minimal parameter-specific meaning (e.g., needing a webhook_id), but the schema itself is comprehensive. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Create a new webhook endpoint' and specifies usage for registering a URL to receive deliveries and obtaining a webhook_id for monitors/jobs. This distinguishes it from sibling tools like delete_webhook, update_webhook, list_webhooks, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when:' section lists two clear scenarios: registering a URL and needing a webhook_id. While it doesn't explicitly mention when not to use or alternatives, the context is sufficient and the usage cases are well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_datasetAInspect
Permanently delete a dataset.
The entities the dataset referenced are not deleted; only the dataset and its entity associations are removed.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| dataset_id | Yes | The dataset ID to delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It clearly states the delete is permanent and explains side effects: entities are not deleted, only associations. This is good transparency, though it could mention error cases 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and contains no unnecessary words. Every sentence adds value, making it concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, 100% schema coverage, and existence of output schema, the description is largely complete. It explains the permanence and entity behavior. Minor gap: doesn't mention that the dataset must exist for deletion to succeed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the descriptions in the input schema already provide meaning for both parameters. The tool description adds no additional parameter context beyond what the schema offers, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Permanently delete a dataset' with a specific verb and resource. It distinguishes itself from sibling delete tools by specifying it's for datasets and clarifying that entities are not deleted, only the dataset and its associations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for deleting datasets but does not explicitly state when to use or not use this tool, nor does it mention prerequisites or alternatives. Sibling tools like delete_entity provide context, but the description itself lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_entityBInspect
Permanently delete an entity.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| entity_id | Yes | The entity ID to delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It mentions 'permanently' indicating irreversibility, but lacks details on required permissions, cascading effects, idempotency, or error scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wordiness. The description is front-loaded with the key action and resource, which is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, return values are covered. However, the description omits critical context for a destructive operation, such as effects on related data, rate limits, or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% parameter description coverage, so the description adds no additional context beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Permanently delete an entity' clearly states the verb (delete) and resource (entity), distinguishing it from sibling tools like delete_dataset, delete_project, etc., which target different resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, or any preconditions. The description implies irreversible deletion but does not advise against accidental misuse or suggest alternatives like soft-delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_jobAInspect
Permanently delete a job and its results.
Use when:
You want to remove a job you no longer need from your account.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job ID to delete. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states 'Permanently delete,' implying irreversibility, and specifies that results are also deleted. This adds important context beyond the schema. It could mention authorization or rate limits, but the current information is adequate for a simple deletion tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences plus a bullet point. Every part is necessary and front-loaded with the core purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has an output schema (not shown), the description does not need to explain return values. It covers the main purpose and usage context. Minor missing details (e.g., permission requirements) are not critical for a simple delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with descriptions (job_id and api_key). The description does not add any parameter-specific details beyond what is in the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Permanently delete a job and its results.' The verb 'delete' and resource 'job' are specific, and the distinction from sibling delete tools (e.g., delete_dataset, delete_entity) is clear due to the resource focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a 'Use when' guideline: 'You want to remove a job you no longer need from your account.' This gives clear context for appropriate usage. However, it does not mention when not to use or alternative tools (e.g., continue_job), so it is not fully comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_monitorAInspect
Permanently delete a monitor and stop its scheduled runs.
Use when:
You want to remove a monitor entirely (use
disable_monitorto only pause it).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| monitor_id | Yes | The monitor ID to delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses permanent deletion and stopping of scheduled runs, but could elaborate on irreversibility or auth requirements. No annotations exist, so description carries full burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: front-loaded with action, then usage guidelines. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple delete operation with output schema and fully described parameters. Could mention restoration impossibility or safety notes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. Description adds no additional semantics beyond schema, meeting baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Explicitly states action 'permanently delete a monitor' and distinguishes from sibling 'disable_monitor' by contrasting permanent removal vs pausing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states when to use (remove entirely) and when not to (use disable_monitor to pause), providing direct alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_projectAInspect
Delete a project.
By default the project's resources (jobs, monitors, etc.) are detached but
kept. Set delete_resources=true to also delete the contained resources.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| project_id | Yes | The project ID to delete. | |
| delete_resources | No | If true, also delete the project's resources (default false). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals that resources are detached by default and optionally deleted, which is important context for a destructive operation. It does not mention permissions or reversibility, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with clear front-loading: first sentence states purpose, second adds nuance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists (so return values aren't needed), the description covers the key behavior and optional parameter. It does not mention prerequisites like project existence or reversibility, but for a delete tool this is reasonable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context for delete_resources (explaining its effect), but api_key and project_id are adequately covered by the schema already.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a project' with a specific verb and resource. It distinguishes from sibling delete tools like delete_dataset by explicitly referencing project and its resources (jobs, monitors).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the default behavior (resources kept) and the alternative (set delete_resources=true to delete resources). It implicitly tells when to use this tool (to delete a project) but lacks explicit scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_webhookBInspect
Permanently delete a webhook endpoint.
Use when:
You want to remove a webhook from your account.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| webhook_id | Yes | The webhook ID to delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist; the description only says 'permanently delete', which is already implied. It does not disclose authentication needs, side effects, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise with two clear sentences, front-loaded with the action. Could be considered too minimal but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be described. However, the description lacks completeness on side effects or error scenarios for a delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions; the description adds no additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('permanently delete') and resource ('webhook endpoint'), distinguishing it from siblings like create_webhook or update_webhook.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a minimal use case ('when you want to remove a webhook') but lacks explicit alternatives, exclusions, or context about prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_monitorAInspect
Disable a monitor to stop its scheduled runs.
The monitor can be re-enabled later with enable_monitor.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| monitor_id | Yes | The monitor ID to disable |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden. It discloses that disabling stops scheduled runs and that the monitor can be re-enabled later, implying reversibility. However, it does not mention side effects (e.g., whether active jobs are canceled), idempotency, required permissions, or what happens if the monitor is already disabled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two short sentences that immediately convey purpose and a key behavioral trait (re-enabling). Every sentence adds value, with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple toggle operation, the description covers the core functionality and reversibility. It does not mention prerequisites (e.g., monitor must exist) or error cases, but the presence of an output schema mitigates some missing details. The description is adequately complete for an agent to select this tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage. The tool description does not add any additional meaning beyond the schema; it only mentions the monitor_id implicitly. Since the schema already covers parameter semantics, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Disable' on the resource 'monitor' and explains the effect 'stop its scheduled runs'. It implicitly differentiates from sibling tools like enable_monitor by mentioning re-enabling, and from delete_monitor by implying temporary deactivation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: to stop scheduled runs of a monitor. It also mentions the complementary enable_monitor for re-enabling. However, it does not specify when not to use it (e.g., if the monitor is already disabled) or provide explicit alternatives beyond enable_monitor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_monitorAInspect
Enable a previously disabled monitor to resume its scheduled runs.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| backfill | No | Optional backfill behavior for resume. | |
| monitor_id | Yes | The monitor ID to enable |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description accurately describes enabling and resuming scheduled runs. Could mention side effects or reversibility, but adequate for a simple mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and effect; does not explain prerequisites or error states. Given complexity low and output schema exists, it's fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; description adds no param info beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (enable), resource (disabled monitor), and effect (resume scheduled runs). Distinct from sibling disable_monitor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use after a monitor is disabled, but no explicit when-to-use or alternatives. Lacks guidance on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datasetBInspect
Get a single dataset's details.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| dataset_id | Yes | The dataset ID to retrieve. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description bears full burden. It only states 'Get details', omitting behavior on missing dataset, permission requirements, or side effects. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, front-loaded with verb and resource. Could be expanded slightly with usage hints, but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, covering return structure. However, given no annotations and simple tool, the description is adequate but lacks completeness in terms of error handling and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described (api_key, dataset_id). Description adds no extra meaning beyond schema, meeting baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a single dataset's details.' clearly states the verb (Get), resource (single dataset), and action (details), distinguishing it from sibling tools like list_datasets (multiple) or create_dataset (creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_dataset_status or get_entity. No exclusions, 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.
get_dataset_statusAInspect
Get the status history of a dataset (e.g. its enrichment progress over time).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| dataset_id | Yes | The dataset ID to inspect. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 only states the tool retrieves history, without mentioning read-only nature, required permissions, idempotency, or potential side effects. This is insufficient for a mutation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly conveys the purpose without any extraneous words. It achieves maximum conciseness while remaining informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (not shown), the description need not detail return values. However, it lacks specifications like the time range of history or event types covered. With no annotations, the description is minimally viable but leaves gaps in understanding the full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3 is appropriate. The description adds no additional meaning beyond the schema for 'api_key' or 'dataset_id', e.g., no format hints or usage examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get' and specific resource 'status history of a dataset', with an illustrative example ('enrichment progress over time'). It effectively distinguishes from sibling tools like 'get_dataset' (which likely returns current dataset metadata) and 'get_job_status' (which tracks job progress).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used to inspect dataset history over time, but does not explicitly state when to use it versus alternatives (e.g., 'get_dataset', 'get_job_status'). No exclusions or prerequisites are mentioned, 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.
get_entityBInspect
Get a single entity's details.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| entity_id | Yes | The entity ID to retrieve. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states a read-only operation but fails to disclose error handling (e.g., missing entity), authentication requirements implied by the 'api_key' parameter, or any side effects. With no annotations, the description carries the full behavioral burden but 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundancy. It is front-loaded with the action and resource. However, it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description need not explain return values. However, it lacks usage context and behavioral details, making it minimally adequate for a simple read tool. Siblings indicate many CRUD operations, but no differentiation is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation covers both parameters (100% coverage). The description adds no extra 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('entity's details'), clearly indicating a read operation. It distinguishes itself from siblings like 'list_entities' (retrieves multiple) and 'create_entity' (writes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'list_entities' for multiple entities. Conditions, prerequisites, or when not to use are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_statusAInspect
Check the status of a submitted job.
Call this after submit_query to see if your job is ready. Status progression: submitted -> analyzing -> fetching -> clustering -> enriching -> completed/failed
IMPORTANT: Jobs take several minutes to process.
First check after ~1-2 minutes, then poll every 30-60 seconds.
Broad searches can take 10-30+ minutes; for long jobs, poll every 60-120 seconds.
Do NOT call this tool in a tight loop.
Stop polling when status is completed or failed.
Treat submitted, analyzing, fetching, clustering, and enriching
as active states and continue polling.
You don't need to wait for completion to pull results. Partial results are
available during enriching — call pull_results after ~2 minutes, then
poll status every 30-60 seconds and pull again for fresher results.
Do not stop pulling just because an intermediate pull is empty/unchanged.
Use progress_validated vs candidate_records to track whether more
results may still appear (progress_validated < candidate_records).
If transport/session fails, resume using the same job_id.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job ID returned from submit_query | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even without annotations, the description fully discloses job processing time, status lifecycle, partial availability during enriching, polling etiquette, and resumption behavior. No contradictions. Strong transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear headings and logical flow. Front-loaded with purpose, then usage, then polling details. Every sentence adds value; no fluff. Efficient despite length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all essential aspects: when to call, polling strategy, partial results, error handling, and termination conditions. With an output schema, return values are handled externally. Complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already covers both parameters with descriptions. The description adds no extra meaning beyond noting that job_id comes from submit_query and api_key can be omitted. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks job status, specifies the resource type (submitted job), and distinguishes from siblings like submit_query and pull_results by detailing the usage flow and status progression.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use instructions (after submit_query), polling intervals, stop conditions, partial result handling, and failure recovery guidance. Also clarifies when not to use (tight loops) and how to combine with pull_results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_monitor_statusAInspect
Get the status history of a monitor.
Use when:
You want to see the timeline of a monitor's state changes (e.g. active, disabled, errored) and any related details.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| monitor_id | Yes | The monitor ID to inspect. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes returning a timeline and related details, implying read-only behavior. No annotations provided, so description carries burden; could mention authentication or output format but adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a usage list, front-loaded purpose, no wasted words. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered. Description explains what tool does and when to use. Could mention output is a list or any limits, but still fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with full description. Description adds no extra parameter details beyond schema, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get the status history of a monitor' with a specific verb and resource. Distinguishes from siblings like get_monitor (current status) and list_monitors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'Use when' context for viewing timeline of state changes. Lacks explicit when-not-to-use or alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectBInspect
Get a single project's details.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| project_id | Yes | The project ID to retrieve. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 behavioral traits. It only states 'Get...details' which implies a read operation, but fails to mention idempotency, authentication requirements, rate limits, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. However, the word 'details' is somewhat vague; a bit more specificity could improve clarity without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and the tool's simplicity, the description is adequate but incomplete. It does not explain what 'details' entails or how it differs from the sibling get_project_overview. More context about return structure or common use cases would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the parameters, so the description adds no additional meaning. The baseline score is 3 as the schema already documents both api_key and project_id adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('project'), and the scope ('single details'). It effectively distinguishes from sibling tools like list_projects, create_project, and update_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Usage is implied (need details of a single project), but no exclusions or comparisons are provided, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_overviewBInspect
Get a project's resource overview (counts grouped by resource type and status).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| project_id | Yes | The project ID to summarize. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 tool retrieves counts, but does not disclose whether it is read-only, permission requirements, or any other behavioral traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no fluff. It is front-loaded with the essential information needed to understand the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description does not need to explain return values. However, it is minimal and could benefit from additional context such as the scope of the overview, but it is functionally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what is already in the schema (e.g., api_key and project_id descriptions are already present in the input schema).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a project's resource overview with counts grouped by type and status, using specific verb 'Get' and resource 'project overview', which distinguishes it from sibling tools like get_project or list_project_resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. The context of sibling tools is not leveraged.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_limitsAInspect
Retrieve plan features and current usage limits for your API key.
Use when:
You want to know how many records/jobs/monitors your plan allows.
You want to check current usage against plan limits before running a large job.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description makes it clear the tool is a read-only retrieval operation ('Retrieve plan features and current usage'). There is no mention of side effects, authorization details, or rate limits, but given the simple nature of the tool, the description adequately conveys its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences followed by a bulleted list of use cases. Every sentence serves a purpose, and the structure is front-loaded with the main action. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity of the tool (one optional parameter, read-only, with output schema), the description covers the main purpose and typical use cases. It does not elaborate on error scenarios or prerequisites, but the presence of an output schema compensates for return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not add any meaning to the `api_key` parameter beyond what is already in the input schema. The schema provides a description ('CatchAll API key...') with 100% coverage, so the description doesn't need to add more. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves plan features and usage limits for the API key. It uses a specific verb ('Retrieve') and resource ('plan features and current usage limits'), and the sibling tools are mostly about resource management (datasets, entities, monitors), so this tool's purpose is well-distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides two use cases: checking plan allowances and checking current usage before running a large job. It gives clear context on when to use the tool, but does not mention when not to use it or alternatives. Still, the guidance is sufficient for typical usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_versionAInspect
Get current API version.
This tool maps to GET /version and does not require an API key.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional CatchAll API key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It reveals that the tool is read-only and requires no authentication, which is adequate. However, it does not mention potential error responses or rate limits, which are minor omissions for such a simple endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the primary action stated in the first word ('Get'). Every sentence provides essential information (the endpoint mapping and auth requirement) without any filler or redundancy. It is highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers the core functionality, mapping, and auth requirements. It does not explain the api_key parameter's role when provided, but that is minor because the parameter is unnecessary. Overall, it is nearly complete for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning about the optional api_key parameter—it only states that an API key is not required, which is congruent with the schema default. No extra syntax or format details are provided, so it meets but does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get current API version,' which is a specific verb-resource combination. It is distinct from all sibling tools, as no other tool claims to return the API version. The purpose is unambiguous and directly actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes that the tool maps to GET /version and does not require an API key, providing clear context for when to use it (simple, no-auth operation). While it does not explicitly list alternatives or when-not-to-use, the implied usage is sufficient given the tool's standalone nature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webhookAInspect
Retrieve the full configuration of a specific webhook.
Use when:
You want to inspect a webhook's URL, method, headers, or status by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| webhook_id | Yes | The webhook ID to retrieve. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the tool as retrieving/inspecting, implying read-only. Lists fields returned (URL, method, headers, status). No annotations, so description adequately covers behavior for a simple read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded purpose, no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, description covers purpose and usage adequately. No obvious gaps for a retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description adds meaning by linking webhook_id to 'inspect' and listing fields (URL, method, headers, status), which aligns with parameter purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Retrieve the full configuration of a specific webhook' with verb and resource. Distinguishes from siblings like list_webhooks and create_webhook.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use when: - You want to inspect a webhook's URL, method, headers, or status by its ID.' Provides clear usage context, though alternative tools are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webhook_historyAInspect
Get the webhook delivery history for a resource (job/monitor/monitor_group).
Use when:
You want to see past webhook delivery attempts and their outcomes for a specific job or monitor.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| page_size | No | Number of results per page (default: 50, max: 500). | |
| resource_id | Yes | The ID of the job/monitor/monitor_group. | |
| resource_type | Yes | Resource type: 'job', 'monitor', or 'monitor_group'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions it returns history and outcomes, but does not describe pagination behavior, data freshness, or any side effects. The schema covers parameters but the description lacks depth on behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with two sentences and a single bullet point. It front-loads the main purpose and is free of redundant information, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (so return format is documented) and 100% schema coverage, the description is reasonably complete for a retrieval tool. It could add a note about the fields in the history, but the output schema likely covers that, so it's not a major gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all parameters. The description adds minimal extra meaning beyond the schema (e.g., clarifying resource types). Baseline 3 is appropriate as the description does not significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves webhook delivery history for a resource (job/monitor/monitor_group), using a specific verb and resource. It distinguishes itself from sibling webhook tools like get_webhook (current config) or trigger_webhook (actions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a 'Use when' section that tells the agent when to use this tool: to see past delivery attempts and outcomes. It provides clear context but does not explicitly state when not to use it or mention alternatives like get_webhook for current config.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
initialize_queryAInspect
Preview suggested validators, enrichments, and date ranges before submitting.
Use when:
You want to inspect/edit auto-generated validators/enrichments before submitting.
You want to preview date adjustments via
date_modification_message.
Do not use when:
You want to start processing immediately with final inputs (use
submit_query).
Key behavior:
Preview-only endpoint: does not create a job and does not start processing.
Suggestions are LLM-generated and not deterministic across calls.
To reuse suggestions, pass them explicitly to
submit_query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural language query to preview (required). If you plan to attach a company dataset via `connected_dataset_ids` in the subsequent `submit_query`, do NOT reference the company list here — entity filtering is applied automatically by the dataset, not by the query text. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| context | No | Optional guidance on what to prioritize so suggested validators, enrichments, and dates align with your target data points. If a company dataset will be attached in `submit_query`, note that entity-relevance validators (e.g. `company_is_primary_subject`) will be auto-generated — do not ask for them here. Do not mention things like "company list will be attached". Focus on the event or topic only. | |
| fetch_all_watchlist_news | No | When `True`, signals that the subsequent job will retrieve all news for connected watchlist entities without topic filtering. Pass this when you intend to use `fetch_all_watchlist_news=True` in `submit_query` so the previewed validators/enrichments are generated accordingly. Requires `connected_dataset_ids` to be set in `submit_query`. Default: `False`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, description fully discloses that it is preview-only, does not create a job, and that suggestions are non-deterministic. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, well-structured with clear sections. Every sentence adds value; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present and all parameters documented in schema, description covers usage, behavior, and relationship to submit_query completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description does not add additional meaning beyond schema since parameter descriptions are already in input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it is a preview endpoint for validators, enrichments, and date ranges. It distinguishes from sibling submit_query by emphasizing preview vs. final submission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' and 'Do not use when' sections, naming submit_query as the alternative. Provides clear context for when to use this tool versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dataset_entitiesCInspect
List the entities contained in a dataset.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| search | No | Optional text filter on entity name. | |
| status | No | Optional status filter: 'pending', 'enriching', 'ready', or 'failed'. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| sort_by | No | Optional sort field: 'created_at', 'name', or 'status'. | |
| page_size | No | Number of results per page (default: 100). | |
| dataset_id | Yes | The dataset ID whose entities you want. | |
| sort_order | No | Optional sort direction: 'asc' or 'desc'. | |
| entity_type | No | Optional type filter: 'company' or 'person'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 the basic action (listing) but fails to disclose pagination, filtering, sorting behavior, or that it is read-only. Schema parameters cover these, but the description adds no 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is concise but minimal. It earns its place as a basic statement but lacks structure or prioritization of key information. Could be improved with a brief overview of parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, pagination, sorting, filtering) and the existence of an output schema, the description is too sparse. It does not summarize the tool's capabilities, leaving the agent to infer from the schema alone. Incomplete for practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for the nine parameters. It could have summarized common filters or defaults but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists entities from a dataset, using a specific verb and resource. However, it does not differentiate from sibling tools like list_entities or list_datasets, lacking explicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., list_entities for global entity listing). The description provides no context for usage scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_datasetsCInspect
List your datasets.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| search | No | Optional text filter on the dataset name. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| sort_by | No | Optional sort field: 'name', 'created_at', or 'status'. | |
| ownership | No | Optional ownership filter: 'all', 'own', or 'shared'. | |
| page_size | No | Number of results per page (default: 100, max: 1000). | |
| project_id | No | Optional filter to datasets belonging to a specific project. | |
| sort_order | No | Optional sort direction: 'asc' or 'desc'. | |
| latest_status | No | Optional status filter: 'pending', 'enriching', 'ready', or 'failed'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, placing the full burden on the description. The description does not disclose behavioral traits like pagination behavior, default sorting, authentication requirements, or side effects (e.g., data safety). The agent knows nothing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it is overly brief given the tool's complexity (9 parameters, output schema). It misses important context that should be front-loaded, making it under-specification rather than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (9 parameters, output schema present but not described, many sibling tools), the description is incomplete. It does not mention pagination, filtering, sorting, or that it returns a list of dataset objects. An agent lacks sufficient 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.
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 parameter descriptions already in the schema. It neither compensates nor detracts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List your datasets' clearly states the tool's verb (list) and resource (datasets), but it does not differentiate from sibling tools like list_dataset_entities, list_projects, etc. It is clear but lacks specificity that would help an agent distinguish it from similar list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as list_dataset_entities (for entities within a dataset) or list_projects (for projects). An agent has no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_entitiesCInspect
List your entities.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| search | No | Optional text filter on entity name. | |
| status | No | Optional status filter: 'pending', 'enriching', 'ready', or 'failed'. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| sort_by | No | Optional sort field: 'created_at', 'name', or 'status'. | |
| page_size | No | Number of results per page (default: 100, max: 1000). | |
| sort_order | No | Optional sort direction: 'asc' or 'desc'. | |
| entity_type | No | Optional type filter: 'company' or 'person'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 like read-only nature, pagination behavior, or error handling. The tool likely reads data, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at three words, which is efficient but risks under-specification. It is front-loaded but could be expanded with key details without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters and an output schema, the description is too minimal. It does not explain important context such as pagination, default sorting, or the scope of 'your entities'. The output schema exists, so return values are covered, but behavioral context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters well. The description adds no additional meaning beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists entities, using a specific verb and resource. However, it does not differentiate from sibling tools like list_dataset_entities or list_projects, which also list entities in a broader sense.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus alternatives such as list_dataset_entities, get_entity, or other list tools. The description lacks context on typical use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_monitor_jobsAInspect
List all jobs spawned by a monitor.
Returns the history of scheduled runs for a monitor.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order by start_date: 'asc' (default) or 'desc' | asc |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| monitor_id | Yes | The monitor ID to list jobs for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the tool lists jobs and returns history, but does not disclose whether running jobs are included, if authentication is required, or any other behavioral traits like pagination or rate limits. The schema covers the sort parameter, but overall disclosure is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences and no wasted words. However, it could be slightly more structured by separating the primary action from the return value description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and high schema coverage, the description is adequate but lacks additional context such as error handling, required permissions, or specific scenarios for use. It covers the core functionality minimally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented. The description adds no additional meaning beyond the schema, only restating the tool's purpose. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists all jobs spawned by a monitor and returns the history of scheduled runs. This distinguishes it from sibling tools like list_monitors (lists monitors) and list_user_jobs (lists user jobs) effectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives such as list_user_jobs or get_job_status. The description implies that it is for listing jobs of a specific monitor, but lacks 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.
list_monitorsAInspect
List all your monitors.
Returns all monitors with their schedule, status, reference query, and webhook config.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| search | No | Optional text filter on the monitor query. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| ownership | No | Optional ownership filter: 'all', 'own', or 'shared'. | |
| page_size | No | Number of results per page (default: 100, max: 1000). | |
| project_id | No | Optional filter to monitors belonging to a specific project. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 states that it returns monitors and their details, but does not mention that it is read-only, has no side effects, or any permission requirements. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose and then listing return fields. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values do not need explanation. However, the description could provide more context on how to use the filtering and pagination parameters, though the schema covers them. Lacks guidance on when to use filters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters. The description adds no additional parameter guidance beyond what the schema provides, which is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all your monitors' and specifies the returned fields (schedule, status, reference query, webhook config). This distinguishes it from sibling tools like create_monitor or delete_monitor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing monitors but provides no explicit guidance on when to use this tool versus alternatives like get_monitor_status or list_monitor_jobs. No when-not-to-use 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.
list_project_resourcesCInspect
List the resources contained in a project.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| page_size | No | Number of results per page (default: 100, max: 1000). | |
| project_id | Yes | The project ID whose resources you want. | |
| resource_type | No | Optional filter: 'job', 'monitor', 'dataset', or 'monitor_group'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 the basic action, omitting behavioral details such as pagination behavior (despite schema having page/page_size), authentication requirements (api_key header or env var), error handling for invalid project_id, or rate limits. The description 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence) and front-loaded, but it lacks context. While concise, it sacrifices completeness. A slightly longer description with key details would be more valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and an output schema, the description is too sparse. It does not mention optional filtering (resource_type), pagination, or authentication context. The output schema exists, so return values are covered, but behavioral context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: all five parameters have descriptions. The tool description adds no extra meaning beyond the schema (e.g., it does not explain that resource_type filters results). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List the resources contained in a project' clearly states the verb and resource. It distinguishes from sibling tools like 'list_datasets' by scope (all resources in a project). However, 'resources' is somewhat ambiguous; the schema reveals it includes datasets, monitors, jobs, etc. A more precise description would list resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Sibling tools like 'list_datasets' or 'list_monitors' exist, but the description does not clarify that this tool aggregates multiple resource types or when filtering by resource_type is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsCInspect
List your projects.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| search | No | Optional text filter on the project name. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| ownership | No | Optional ownership filter: 'all', 'own', or 'shared'. | |
| page_size | No | Number of results per page (default: 100, max: 1000). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does not disclose that the tool is read-only, requires authentication (only hinted by api_key parameter), or discuss rate limits or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (one sentence), but at the expense of missing important details. Could be considered under-specified rather than optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and well-documented parameters, the one-line description fails to address pagination, filtering options, or the overall behavior of listing, leaving gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description adds no additional meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List your projects' clearly states the action and resource. It is distinct from 'get_project' which retrieves a single project, and from other sibling CRUD tools. However, it does not elaborate on the scope or return format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_project' or 'create_project'. 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.
list_resource_webhooksAInspect
List the webhooks mapped to a specific resource (job/monitor/monitor_group).
Use when:
You have a job or monitor ID and want to know which webhooks will fire for it.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| is_active | No | Optional filter — only active (true) or inactive (false) webhooks. | |
| page_size | No | Number of results per page (default: 100, max: 1000). | |
| resource_id | Yes | The ID of the job/monitor/monitor_group. | |
| resource_type | Yes | Resource type: 'job', 'monitor', or 'monitor_group'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 discloses the read-only listing behavior but does not mention pagination or any potential side effects. Given the simple nature of the tool, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences and a bullet point. No wasted words, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the presence of an output schema, and 100% schema coverage, the description provides all necessary context for an agent to understand and correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description clarifies the resource_type parameter values but adds no additional meaning to other parameters like page, page_size, or api_key beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists webhooks for a specific resource (job/monitor/monitor_group) and provides examples of use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' guidance tells the agent to call this tool when they have a resource ID and want to know which webhooks will fire.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_user_jobsBInspect
List all jobs submitted by you.
Returns your job history with IDs, queries, statuses, and timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1) | |
| search | No | Optional text filter on the job query. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| ownership | No | Optional ownership filter: 'all', 'own', or 'shared'. | |
| page_size | No | Number of results per page (default: 100, max: 1000) | |
| project_id | No | Optional filter to jobs belonging to a specific project. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions returned fields (IDs, queries, statuses, timestamps) but does not describe pagination, filtering capabilities, or that it is a read-safe operation. This is adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, no fluff. It conveys the core purpose and output clearly. Could be slightly more structured but is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and 100% parameter coverage, the description adequately states the main purpose and return content. It could mention pagination and filters but is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema provides for parameters like page, search, ownership, etc. No parameter details are mentioned in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('jobs submitted by you'). It differentiates from sibling tools like list_monitor_jobs by specifying personal job history. However, the phrase 'submitted by you' slightly understates the ownership filter option that allows listing all jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_job_status or list_monitor_jobs. The description does not mention conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_webhook_resourcesAInspect
List the resources mapped to a webhook.
Use when:
You want to see which jobs/monitors a webhook is attached to.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| page_size | No | Number of results per page (default: 100, max: 1000). | |
| webhook_id | Yes | The webhook ID whose resource mappings you want. | |
| resource_type | No | Optional filter: 'job', 'monitor', or 'monitor_group'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the behavioral burden. It states the primary action but does not disclose pagination behavior or result format. The schema covers pagination parameters, but the description could more explicitly note that results are paginated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no excess words, and the key action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with a well-documented schema and an output schema (context indicates present), the description is nearly complete. It could optionally mention that the output is a list, but the verb 'list' implies that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters have schema descriptions (100% coverage). The description adds no additional parameter details 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists resources (jobs/monitors) mapped to a webhook. This distinguishes it from sibling 'list_resource_webhooks', which does the opposite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides a use-case: 'when you want to see which jobs/monitors a webhook is attached to.' It does not mention when not to use, but for a straightforward list tool this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_webhooksAInspect
List all your webhooks.
Use when:
You want to see all webhook endpoints configured in your account.
You need to find a webhook_id to pass to monitors (via webhook_ids) or jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| page_size | No | Number of results per page (default: 100, max: 1000). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It correctly states the operation is listing all webhooks (implied read-only), but does not explicitly mention no side effects or confirm safety. The absence of annotations makes this a mild gap, but the description is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences plus two bullet points. Every sentence adds value, and the main action is front-loaded. There is zero unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation, the description covers the purpose, usage, and typical scenarios. An output schema exists (though not shown) so return value details are not needed. The description is complete enough for an agent to correctly select and invoke this tool among many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (page, api_key, page_size) already described in the input schema. The description does not add additional meaning or context for these parameters 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'List all your webhooks' using a specific verb (list) and a clear resource (webhooks). It distinguishes from siblings like 'get_webhook' (single) and 'list_webhook_resources' (attachments) by focusing on all endpoints. The additional 'Use when' bullets further clarify the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides two explicit 'Use when' scenarios: viewing all webhook endpoints and finding a webhook_id for monitors/jobs. While it doesn't explicitly state when not to use it, the positive guidance is clear and helps differentiate from tools like 'get_webhook' or 'assign_webhook_resource'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pull_job_csvAInspect
Download a job's results as a CSV file.
Use when:
You want the full job output as a CSV for offline analysis or export.
Prefer this over
pull_resultswhen the consumer needs spreadsheet/CSV format.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job ID to download as CSV. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 does not mention whether the operation is read-only, any side effects, authentication requirements beyond the api_key parameter, rate limits, or response size considerations. The description is silent on these, leaving agents without essential 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences in the first paragraph and a bullet in the second. It is front-loaded with the core purpose, uses clear structure, and wastes no words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists (though not shown), so the description need not explain return format. However, it lacks context on file size limits, download timeouts, or whether it supports large jobs. It mentions offline/export use, which is helpful, but for a file download tool, more completeness would be beneficial, e.g., how the CSV is returned (stream, URL?). The description is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description does not add additional meaning beyond the schema: it simply states 'job_id' and 'api_key' without elaborating on formats, constraints, or the role of the api_key (though the schema mentions optional via header/env). No extra semantic value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Download a job's results as a CSV file.' It uses a specific verb ('download') and resource ('job's results as CSV'). It also distinguishes from sibling tools by explicitly preferring this over pull_results when CSV format is needed, and implicitly from pull_monitor_csv by focusing on jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines: 'Use when: You want the full job output as a CSV for offline analysis or export.' and 'Prefer this over pull_results when the consumer needs spreadsheet/CSV format.' It gives a clear context and an alternative. It could be more explicit about when not to use (e.g., if JSON or monitor-specific data is needed), but overall it's strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pull_monitor_csvAInspect
Download the latest monitor run's results as a CSV file.
Use when:
You want the most recent monitor run output as a CSV for offline analysis or export.
Prefer this over
pull_monitor_resultswhen the consumer needs spreadsheet/CSV format.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| monitor_id | Yes | The monitor ID to download results for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states it downloads the 'latest' results but doesn't specify if it's from all runs, successful runs only, or behavior when no runs exist. Could be more transparent about edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences plus a usage section. Every sentence adds value without redundancy. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, 1 required, output schema exists), the description adequately covers purpose and usage. Minor gaps (e.g., no mention of error handling) but overall complete for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters have descriptions). The tool description adds no additional meaning beyond the schema. Baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('download'), resource ('latest monitor run's results'), and format ('CSV file'). It distinguishes itself from the sibling 'pull_monitor_results' by specifying the CSV format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' scenarios are provided: for offline analysis/export and preference over `pull_monitor_results` when CSV is needed. This gives clear 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.
pull_monitor_resultsAInspect
Retrieve the latest results from a monitor.
Returns the most recent run's results including run_info, records, and all_records.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| monitor_id | Yes | The monitor ID to pull results from |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Mentions returned fields but does not disclose edge cases (e.g., no results), authentication details, or potential side effects. Adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no unnecessary words. Verb front-loaded, structure clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple read operation with output schema present, so return values need not be detailed. Lacks usage context but overall sufficient for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description does not need to add much. It adds no extra meaning beyond the schema's parameter descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Verb 'retrieve' clearly states action, resource is 'latest results from a monitor', and description specifies what is returned (run_info, records, all_records). Distinguishes from sibling tools like pull_monitor_csv and pull_results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like pull_monitor_csv or get_monitor_status. No when-not or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pull_resultsAInspect
Retrieve the results of a job.
Can be called before completion for partial results, or after completion for the full set. Returns clustered, validated, and enriched web results. While job status is active, call this repeatedly (typically page=1) to refresh partial output. When job reaches completed, iterate all pages. If job fails, call once more to capture any partial output.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). Use total_pages from the response to iterate through all results. | |
| job_id | Yes | The job ID returned from submit_query | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| page_size | No | Number of records returned per page (default: 100, max: 1000). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavior across job states, pagination guidance, and partial results capability. No annotations provided, so description carries full burden; missing rate limits or auth details but covers key behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise single paragraph of 6 sentences, front-loaded with purpose, then behavioral details. No fluff, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description covers all necessary context: job states, pagination, partial vs full results, and result type. Fully adequate for a tool with 4 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds value by explaining typical use of page parameter (e.g., page=1 for refresh) and context for page_size and job_id, exceeding baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieve' and the resource 'results of a job', and distinguishes from siblings by specifying 'clustered, validated, and enriched web results'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on calling before completion for partial results and after completion for full set, with specific instructions for active, completed, and failed states. Lacks direct comparison to alternatives like pull_job_csv.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_dataset_entitiesAInspect
Remove entities from a dataset (the entities themselves are not deleted).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| dataset_id | Yes | The dataset ID to remove entities from. | |
| entity_ids | Yes | List of entity IDs to remove (required). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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. The key behavioral trait (entities are not deleted) is conveyed, but no information about permissions, idempotency, or side effects is given. The description is minimal but covers the most critical aspect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that conveys the action and the key caveat. Every word is purposeful, and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the existence of an output schema (obviating the need to describe return values), the description covers the essential purpose and behavioral nuance. It lacks details on edge cases or error states, but for a straightforward removal operation, it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter descriptions in the input schema are comprehensive (100% coverage), so the description adds no additional meaning. The description does not elaborate on parameter usage beyond what is already 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'remove' and the resource 'entities from a dataset', and the parenthetical '(the entities themselves are not deleted)' distinguishes it from sibling tools like delete_entity, which fully deletes entities. This 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by clarifying that this tool does not delete entities, thus steering agents away from using it when deletion is intended. However, it lacks explicit when-to-use guidance or comparison with other sibling tools like add_dataset_entities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_project_resourceBInspect
Remove a single resource from a project.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| project_id | Yes | The project ID to remove the resource from. | |
| resource_id | Yes | The ID of the resource to remove. | |
| resource_type | Yes | Resource type: 'job', 'monitor', 'dataset', or 'monitor_group'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral details beyond the basic action. With no annotations, the burden is on the description to disclose side effects, reversibility, or error handling, but it does not. It only states what it does, not the consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is immediately understandable and front-loaded with the key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, the description lacks essential context such as what happens upon successful removal, whether it is reversible, or any implications for associated resources. For a removal tool, this information is important for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are well-described in the schema itself. The tool description adds no additional parameter-level meaning. A score of 3 is appropriate as baseline for high coverage with no added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove'), the target ('a single resource'), and the scope ('from a project'). It differentiates from sibling tools like add_project_resources (adds) and remove_dataset_entities (removes only dataset entities) by specifying generality and singularity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as remove_dataset_entities or remove_webhook_resource. The description does not indicate prerequisites, conditions, 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.
remove_webhook_resourceAInspect
Unmap a resource from a webhook.
Use when:
You want to stop a webhook from firing for a specific job or monitor.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| webhook_id | Yes | The webhook ID to detach the resource from. | |
| resource_id | Yes | The ID of the mapped job/monitor/monitor_group. | |
| resource_type | Yes | Resource type: 'job', 'monitor', or 'monitor_group'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes action as 'unmap', implying non-destructive operation, but lacks detail on idempotency or consequences of unmapping.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences, front-loaded with purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With high schema coverage and clear output schema, description is sufficient for a simple unmapping tool. Covers purpose and usage adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%. Description does not add new meaning beyond schema; parameters are self-explanatory from names and descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Unmap a resource from a webhook', using specific verb and resource. Distinguishes from sibling tools like 'assign_webhook_resource' and 'list_webhook_resources'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'You want to stop a webhook from firing for a specific job or monitor.' Provides clear context, though does not mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_queryAInspect
Create a new CatchAll processing job from a natural-language query.
Use when:
You want to start a new CatchAll web research run from a user query.
You want the API to fetch/process sources and then return structured results.
Do not use when:
You want status for an existing job (use
get_job_status).You want records for an existing job (use
pull_results).
Key rules:
queryis required.You can submit with only
query; omitted optional fields (validators,enrichments,start_date,end_date) are auto-selected/generated by the API.Optional fields are independent: you can pass any subset (for example, custom
validatorsbut noenrichments), and omitted fields are still auto-selected/generated.When
connected_dataset_idsis set, thequerymust describe the topic or event type only (e.g. "M&A activity", "regulatory filings", "executive changes"). Do NOT write things like "for my companies", "for the selected list of companies", or "news about my watchlist" — the entity filtering is applied automatically by the connected dataset. Mentioning companies in the query when a dataset is attached is redundant and degrades retrieval quality.When
connected_dataset_idsis set, entity-relevance validators (e.g.company_is_primary_subject) are generated automatically by the API. Do NOT add them manually tovalidators— they are redundant and may conflict with the auto-generated ones. Only pass validators that describe the event or topic, not entity filtering.start_dateandend_datefilter by web page discovery date, not event date.Discovery dates and extracted event dates can differ. For event-time accuracy, use event-focused validators/enrichments and verify
event_datein pulled results.end_datemust be afterstart_date.Dates outside your plan lookback limits return API 400.
limitcontrols processed record count (cost-affecting). Omit it to retrieve everything up to your plan's maximum. If provided, must be >= 10.validators/enrichmentsmay be passed either as arrays or as JSON-string arrays (for client compatibility).validators[].typemust beboolean(if omitted, it defaults toboolean).enrichments[].typesupported values: text, number, date, option, url, company.
Basic examples:
validators:
[{"name":"is_acquisition_event","description":"true if page describes an acquisition","type":"boolean"}]enrichments:
[{"name":"acquiring_company","description":"Extract acquiring company","type":"company"},{"name":"deal_value","description":"Extract announced deal value","type":"number"}]
Next step:
Save the returned
job_id.Poll
get_job_statusand callpull_results(partial results can appear before completion).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Optional job processing mode: `"lite"` (faster, lower cost, less detail) or `"base"` (default, full extraction). If omitted, the API defaults to `"base"`. | |
| limit | No | Optional processing cap (minimum 10); affects cost. Omit to retrieve everything up to your plan's maximum. | |
| query | Yes | Plain text search intent (required). | |
| schema | No | Optional advanced custom JSON schema string that overrides the default extraction schema. Use `initialize_query` to discover a suitable schema. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| context | No | Optional guidance on what to prioritize (for example, target entities, event types, and specific data points you want captured in enrichments). If a company dataset will be attached, note that entity-relevance validators (e.g. `company_is_primary_subject`) will be auto-generated — do not ask for them here. Do not mention things like "company list will be attached". | |
| end_date | No | Optional ISO 8601 UTC end of search window. | |
| project_id | No | Optional project ID to associate this job with. | |
| start_date | No | Optional ISO 8601 UTC start of search window. | |
| validators | No | Optional custom boolean validators (`name`, `description`, `type`), as array or JSON-string array. When `connected_dataset_ids` is set, do NOT include entity-relevance validators such as `company_is_primary_subject` — the API generates those automatically. Only add validators that describe the event or topic (e.g. `is_acquisition_event`). | |
| enrichments | No | Optional custom enrichments (`name`, `description`, `type`), as array or JSON-string array. | |
| webhook_ids | No | Optional list of webhook IDs to notify when the job completes (max 5 per job). Use `list_webhooks` / `create_webhook` to get IDs. | |
| ed_score_min | No | Optional minimum entity-domain relevance score (1-10). Only relevant when `connected_dataset_ids` is set. | |
| ed_association_type | No | Optional filter on how strongly a watchlist entity must appear in each event. Only relevant when `connected_dataset_ids` is set. - `"event_associated"`: keep only events where the entity is a **direct actor** (default when connected_dataset_ids is set). - `"mention"`: keep all even where the entity is **merely referenced**. | |
| connected_dataset_ids | No | Optional list of dataset IDs whose entities narrow the retrieval scope. When set: (1) entity filtering is applied automatically — do NOT mention the company list or watchlist in `query`; (2) entity-relevance validators such as `company_is_primary_subject` are generated automatically — do NOT add them to `validators`. `ed_score_min` defaults to 2 if not provided. | |
| fetch_all_watchlist_news | No | When `True`, retrieves **all** news for connected watchlist entities without applying topic filtering from `query`. Requires `connected_dataset_ids` to be set. Default: `False`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 covers key behaviors: optional fields auto-selection, date behavior, limit constraints, connected dataset rules, and next steps. However, it does not explicitly state that it is a write operation (creates a new job) but that 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but well-structured with sections, bullet points, and examples. It is front-loaded with purpose and usage, making it easy to scan. Some redundancy exists (e.g., rules repeated in parameter descriptions), but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 16 parameters, output schema exists (so return values are not needed), and behavioral transparency is high, the description covers all critical aspects: required/optional parameters, special cases (connected datasets), date nuances, and next steps. It is complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all parameters. The description adds significant value by providing detailed usage rules for complex parameters (e.g., connected_dataset_ids, validators, enrichments) and examples, surpassing what the schema alone offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Create a new CatchAll processing job from a natural-language query,' clearly stating the verb and resource. It is distinct from siblings like get_job_status and pull_results, which are explicitly mentioned in the 'Do not use when' section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' and 'Do not use when' sections are provided, naming alternative tools (get_job_status, pull_results) and clear conditions. This leaves no ambiguity about when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_webhookAInspect
Send a test delivery to a webhook endpoint.
Use when:
You want to verify a webhook URL is reachable and correctly configured before attaching it to a monitor or job.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| payload | No | Optional custom JSON object to send as the test body. If omitted, the API sends a default sample payload. | |
| webhook_id | Yes | The webhook ID to test. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It states 'Send a test delivery' indicating a mutation, but does not explain what happens on failure, or that a default payload is sent if omitted (though schema descriptions cover this). Lacks specifics about side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences and a bullet point, all front-loaded. No wasted words; every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and presence of an output schema, the description covers the essential context: what it does and when to use it. No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description does not add additional meaning beyond what the schema already provides. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Send a test delivery to a webhook endpoint' with a specific verb and resource. It distinguishes from siblings like 'trigger_webhook' by noting the 'before attaching' context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use when: - You want to verify a webhook URL is reachable and correctly configured before attaching it to a monitor or job.' This provides clear context and implies when not to use (i.e., not for regular delivery). It does not explicitly mention alternatives but the sibling 'trigger_webhook' is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trigger_webhookAInspect
Manually trigger webhook delivery for a resource (job/monitor/monitor_group).
Use when:
You want to (re-)send a webhook delivery on demand instead of waiting for the automatic dispatch — e.g. to replay a missed or failed delivery.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No | Optional job ID whose payload should be delivered (e.g. a specific monitor run's job). If omitted, the API picks the resource's payload itself. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| webhook_id | Yes | The webhook ID to deliver through. | |
| resource_id | Yes | The ID of the job/monitor/monitor_group to trigger delivery for. | |
| resource_type | Yes | Resource type: 'job', 'monitor', or 'monitor_group'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It states 'manually trigger delivery' but fails to disclose side effects such as actual payload sending, potential duplication, or required permissions. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a bullet: front-loaded with purpose, zero filler. Ideal length and structure for agent consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for parameters due to schema coverage and output schema, but missing prerequisites (e.g., webhook must exist) and behavioral implications. Adequate but not thorough for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no extra parameter 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it manually triggers webhook delivery for a specific resource (job/monitor/monitor_group), distinguishing it from sibling tools like create_webhook or test_webhook.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'Use when' guidance for on-demand (re-)sending, contrasting with automatic dispatch. Does not explicitly exclude cases like testing, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_datasetBInspect
Update a dataset's name and/or description.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional new dataset name. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| dataset_id | Yes | The dataset ID to update. | |
| description | No | Optional new dataset description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states that the tool updates fields, but does not mention authentication requirements, return value, idempotency, or whether partial updates are allowed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is clear and front-loaded. It is concise, but the extreme brevity results in missing important context for a tool with 4 parameters and an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with an output schema, the description minimally covers the operation. However, it omits any mention of the return value, authentication, or side effects, making it merely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning beyond the schema, essentially repeating what 'name' and 'description' do. A baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update) and the resource (dataset), specifying the exact fields that can be updated (name and/or description). It distinguishes itself from sibling tools like create_dataset, delete_dataset, and get_dataset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., other update or creation tools). It does not mention prerequisites, when not to use it, or contrast with similar operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_entityAInspect
Update an entity's name, description, external_entity_id, and/or attributes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional new entity name. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| entity_id | Yes | The entity ID to update. | |
| description | No | Optional new description. | |
| external_entity_id | No | Optional customer-supplied identifier linking this entity to an external system's record (new in 1.6.3). | |
| additional_attributes | No | Optional updated structured attributes (see `create_entity` for the company_attributes shape). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description only states 'Update' without disclosing idempotency, authorization, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extra words; efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a mutation tool with output schema, but lacks context on persistence or usage constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; description lists updatable fields but adds no meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Update' and lists specific entity fields, clearly distinguishing from create/delete siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for modifying existing entities, but no explicit when-to-use or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_monitorAInspect
Update a monitor's webhook assignments and per-run limit.
Note: schedule and reference_job_id cannot be modified through this endpoint.
Webhooks are centralized — pass webhook IDs (from create_webhook/list_webhooks).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional updated maximum records per run (minimum 10). | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| monitor_id | Yes | The monitor ID to update | |
| webhook_ids | No | Optional list of webhook IDs to assign to this monitor. Pass an empty list `[]` to clear all webhook assignments. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions what cannot be modified, but lacks details on side effects, authorization requirements, atomicity, or error behavior. For a mutation tool, more behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus a note. Every sentence provides essential information, and the most critical details are front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (so return values are documented elsewhere) and full schema coverage, the description adequately covers key aspects. It could mention that updates are partial (only specified fields) but overall is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds value by clarifying webhook IDs are centralized and how they relate to other endpoints, and reinforces the limit parameter's purpose. This goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a monitor's webhook assignments and per-run limit, explicitly listing modifiable fields and what cannot be modified (schedule, reference_job_id). This distinguishes it from sibling tools like create_monitor, delete_monitor, or enable_monitor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on webhook IDs (centralized, from create_webhook/list_webhooks) and notes immutability of schedule and reference_job_id. However, it does not explicitly state when to use this tool versus alternatives like enable_monitor or disable_monitor, though the purpose is specific enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_projectAInspect
Update a project's name and/or description.
Only the fields you provide are changed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional new project name. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| project_id | Yes | The project ID to update. | |
| description | No | Optional new project description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It states that the tool is mutating and only changes specified fields, which is useful. However, it omits important behavioral details like required permissions, error handling, or that other fields remain unchanged. Acceptable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence states the core action, and the second explains the partial update behavior. Highly efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and high schema coverage, the description adequately covers the tool's purpose and update semantics. It is missing some context (e.g., permissions, error conditions), but for a simple update tool it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explicitly stating that only provided fields are changed, reinforcing the nullable nature of optional parameters. This goes beyond mere schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly identifies verb 'update' and resource 'project', and explicitly lists the updatable fields (name, description). Distinguishes itself from sibling tools like create_project and delete_project by focusing on mutation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides the key guideline that only provided fields are changed, but does not give context on when to use this tool versus alternatives (e.g., creating a project, adding resources). No explicit when-not-to-use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_webhookAInspect
Update an existing webhook's configuration.
Use when:
You want to change a webhook's URL, method, headers, or other settings.
You want to enable or disable a webhook (set
is_active).Only the fields you provide are updated; omitted fields remain unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Updated target URL. | |
| auth | No | Updated auth object. One of: - {"type": "bearer", "token": "..."} - {"type": "api_key", "header": "X-API-Key", "value": "..."} - {"type": "basic", "username": "...", "password": "..."} | |
| name | No | Updated webhook name. | |
| type | No | Updated webhook type: 'generic', 'slack', 'teams', or 'custom'. | |
| method | No | Updated HTTP method: one of GET, POST, PUT, PATCH, DELETE. | |
| params | No | Updated dict of query string parameters. | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. | |
| headers | No | Updated dict of custom HTTP headers. | |
| is_active | No | Set to false to disable the webhook (stop deliveries), true to re-enable it. | |
| webhook_id | Yes | The webhook ID to update. | |
| delivery_mode | No | Updated delivery mode: 'full' or 'per_record'. | |
| formatter_config | No | Updated formatter configuration dict. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses partial update behavior ('Only the fields you provide are updated'). However, it lacks details on side effects (e.g., delivery impact from URL changes) and no annotations exist to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: a single sentence plus bullet points. Every word adds value. Front-loaded with purpose, then uses explicit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the partial update behavior, which is critical. Output schema exists for return values. Could mention potential effects of changing delivery-related fields, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description groups parameters (URL, method, headers, is_active) but adds little beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Update an existing webhook's configuration.' It specifies what can be changed (URL, method, headers, is_active) and distinguishes from create/delete siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'Use when' conditions for changing settings or toggling is_active. Implicitly excludes creation or deletion. Could mention alternatives like test_webhook or trigger_webhook for other actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_queryAInspect
Check the quality of a query before submitting a job ("Check Query Quality").
Use when:
You want quick feedback on whether a query is well-formed for CatchAll before spending credits on a job.
You want concrete suggestions to improve a vague or overly broad query.
Do not use when:
You want to preview auto-generated validators/enrichments (use
initialize_query).You want to actually run a search (use
submit_query).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The natural-language query to assess (required). | |
| api_key | No | CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
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 states the tool checks quality and gives suggestions but does not disclose whether the operation is read-only, if it consumes credits, or what constitutes 'quality'. This leaves ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, uses bullet points for clarity, and front-loads the main action. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to detail return values. However, it omits context about the nature of feedback (e.g., format or types of suggestions), which would be helpful for understanding the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema: it notes that query is 'natural-language' and api_key is optional, which repeats schema info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource combination: 'Check the quality of a query'. It clearly distinguishes from sibling tools like initialize_query and submit_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (quick feedback, before credits, vague query improvement) and when-not-to-use scenarios (preview validators/enrichments, running search), referencing specific sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!