CatchAll (by NewsCatcher)
OfficialThis server is an MCP interface to the NewsCatcher CatchAll web-search API for running AI-powered research jobs, recurring monitors, datasets, webhooks, and project organization.
Jobs: submit natural-language research queries, preview/validate them, poll status, pull paginated or CSV results, continue jobs for more records, list/delete jobs.
Monitors: create recurring monitors from completed jobs, enable/disable, update limits/webhooks, list runs, pull latest results/CSV.
Datasets: create/manage company/person datasets, upload via CSV, add/remove/list entities, use them to narrow job retrieval.
Entities: create/update/delete/list entities and batch-create them.
Webhooks: create/test/update/delete webhooks, attach them to jobs/monitors, inspect delivery history, and trigger deliveries.
Projects: group resources (jobs, monitors, datasets) into projects, overview counts, add/remove resources, filter listings by project.
Account/Meta: check user plan limits, API health, and server version.
Newscatcher CatchAll MCP Server
MCP server for the NewsCatcher CatchAll Web Search API.
Quick Start — Use Our Hosted Server
You don't need to clone or run this repo to use the MCP — NewsCatcher runs a hosted instance:
https://catchall-mcp.newscatcherapi.com/mcp?apiKey=YOUR_CATCHALL_API_KEYGet a CatchAll API key at platform.newscatcherapi.com, then connect:
{
"mcpServers": {
"catchall": {
"type": "http",
"url": "https://catchall-mcp.newscatcherapi.com/mcp?apiKey=YOUR_CATCHALL_API_KEY"
}
}
}Or via Claude Code CLI:
claude mcp add --transport http catchall "https://catchall-mcp.newscatcherapi.com/mcp?apiKey=YOUR_CATCHALL_API_KEY"Full integration docs: https://www.newscatcherapi.com/docs/web-search-api/integrations/mcp
Prefer to run the server yourself (locally or self-hosted)? See Running below.
Related MCP server: GroundRoute
Tool To Endpoint Mapping
Jobs
MCP Tool | Method | Endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Job listing filters:
list_user_jobssupportssearch,ownership,project_id, andmode(baseorlite) filters in addition topage/page_size.
Monitors
MCP Tool | Method | Endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Webhooks
MCP Tool | Method | Endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Webhook notes:
create_webhookaccepts an optionalproject_idto attach the webhook to a project on creation.list_webhooksalso accepts an optionalproject_idto filter to webhooks belonging to a specific project.get_webhook_historyqueries in one of two modes — passresource_type+resource_idfor a job/monitor/monitor_group's deliveries, or passwebhook_idfor everything delivered through one webhook (exactly one mode per call). Manual test deliveries (test_webhook) only appear in webhook mode and are recorded withresource_type: "test".
Projects
MCP Tool | Method | Endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Project resources:
resource_typeis one ofjob,monitor,dataset,monitor_group, orwebhook. A webhook can belong to several projects at once.delete_projectwithdelete_resources=truedeletes the contained jobs, monitors, datasets, and monitor groups, but webhooks are only detached — never deleted — and the response'sdeleted_resourcesreports them under awebhook_unlinkedcount.
Datasets
MCP Tool | Method | Endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CSV uploads (v1.6.1):
create_dataset_from_csvandappend_csv_to_datasettake the CSV content in thefileparameter — raw CSV text or standard base64. They never read a path from the server's filesystem, so they stay safe on a remote/hosted MCP. Inline CSV content is capped at a hard 10 MB (after base64 decoding).create_dataset_from_csvalso accepts the new optionalproject_idfield.
Entities
MCP Tool | Method | Endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
external_entity_id(v1.6.3):create_entityandupdate_entityaccept an optionalexternal_entity_idstring — a customer-supplied identifier that links the entity to a record in an external system.project_id(v1.8.0):list_entitiesaccepts an optionalproject_idto filter to entities belonging to a specific project.
Source Groups
MCP Tool | Method | Endpoint |
|
|
|
Source groups (v1.8.0): named, reusable domain allowlists (public groups plus any organization-visibility groups your organization can access).
list_source_groupsreturns each group'sslug,name, anddescription. The direct API'sPOST /catchAll/submitnow accepts asource_groupsfield of slugs to scope fetching to a domain allowlist;submit_querydoes not yet expose this parameter — use the direct API for that until a future release adds it here.
User & Meta
MCP Tool | Method | Endpoint |
|
|
|
|
|
|
|
|
|
Authentication
API key precedence (highest to lowest):
api_keytool parameterx-api-keyrequest headerAuthorization: Bearer <key>request headerURL query parameter
?apiKey=...CATCHALL_API_KEYenvironment variable
check_health and get_version do not require API key auth.
Hosted deployment (FastMCP Gateway)
When deployed via fastmcp.app, a stateless gateway sits in front of the server. The gateway
forwards HTTP headers to the backend but not URL query parameters. Use the x-api-key
header or CATCHALL_API_KEY environment variable instead of ?apiKey=.
Claude Code / Cursor:
{
"mcpServers": {
"catchall": {
"type": "http",
"url": "https://YOUR-DEPLOYMENT.fastmcp.app/mcp",
"headers": { "x-api-key": "YOUR_API_KEY" }
}
}
}Or via CLI:
claude mcp add --transport http catchall "https://YOUR-DEPLOYMENT.fastmcp.app/mcp" \
--header "x-api-key: YOUR_API_KEY"Direct server access (no gateway): ?apiKey=YOUR_KEY in the URL still works.
Core Workflow (Jobs)
Optional: call
initialize_queryto preview validators/enrichments/date window.initialize_queryis preview-only (it does not create a job) and suggestions are non-deterministic.Submit with
submit_query(queryrequired). You can send onlyquery; omitted optional fields are auto-selected/generated.Optional fields are independent: provide any subset (for example, custom
validatorsonly), omitted ones are still auto-generated.start_date/end_datefilter web page discovery dates, not event dates in extracted content.For event-time accuracy, use event-focused validators/enrichments and verify
event_datein pulled results.Poll
get_job_status: first check after ~1-2 minutes, then every 30-60 seconds, stop oncompletedorfailed.Pull with
pull_results; partial data appears duringenriching.Paginate while
page < total_pagesto retrieve all available records.Use
continue_jobonly to process more records (cost-affecting). It applies only to jobs originally submitted withlimit.continue_job.new_limitis optional; if omitted, API defaults to your plan maximum.page/page_size/total_pagesrepresent already-available records; useprogress_validated < candidate_recordsto detect if more records may still appear.
Limit vs Page Size
limit(submit_query,continue_job) controls how many records are processed and therefore affects cost. If provided, must be >= 10. Omit to retrieve everything up to your plan's maximum.page_size(pull_results,list_user_jobs) controls pagination only and does not affect processing cost.pull_results.page_sizedefault is100.page_sizerange is1..1000.pull_resultsresponse includeserror(failed jobs) andlimit(applied job limit).
API-Enforced Monitor Constraints
create_monitor.backfill=true: reference jobend_datemust be within the last 7 days.create_monitor.backfill=false: reference job age constraint does not apply.Monitor minimum schedule frequency depends on plan.
create_monitorsupports optionallimit(minimum10),backfill(defaulttrue),timezone,webhook_ids, andproject_id.Webhooks are centralized in v1.5.3: register them with
create_webhook, then attach by ID viacreate_monitor.webhook_ids/update_monitor.webhook_ids(no inline webhook config).Monitors are only supported for
basejobs (notlite).enable_monitorsupports optionalbackfill.update_monitorupdateswebhook_idsand/or runlimit(passwebhook_ids=[]to clear assignments).list_monitorssupports pagination viapageandpage_sizeplussearch,ownership, andproject_idfilters; it returnstotal,page,page_size,total_pages,monitors.
Enrichment Output Notes
enrichment.enrichment_confidenceis always present.Company enrichments are structured objects with:
source_textconfidencemetadata.namemetadata.domain_urlmetadata.domain_url_confidence
Error Handling
Tools return:
Pretty JSON string on success.
(v1.8.0) An MCP tool error (
isError=True) for any upstream non-2xx response (badapi_key, invalid/foreignproject_id, not-found ids, validation failures, etc.) or unhandled exception. The error message carries the upstream status code and message, for exampleAPI Error (401): Api key not found. Before v1.8.0, tools swallowed these failures and returned a plain"Error: ..."string as a successful tool result — clients checking onlyisErrorwould see a false success. That has been fixed: every tool now raises aToolErrorinstead of returning an error string, so failures are always reported as real tool errors.
Running
Install dependencies:
pip install -r requirements.txtRun over stdio:
python server.pyRun over HTTP (if fastmcp CLI is available):
fastmcp run server.py:mcp --transport streamable-http --host 0.0.0.0 --port 8000Available Tools
60 toolsadd_dataset_entitiesCInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It only states the core action, omitting details about idempotency, error handling, authentication requirements, or what happens if an entity is already in the dataset.
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 wasted words. It is appropriately sized for a straightforward operation, though it could benefit from slightly more context.
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 minimal and lacks context about side effects, return values (despite an output schema existing), or behavioral details. Given no annotations and low complexity, it is still insufficient for an agent to fully understand the tool's implications.
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%, and the description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate as the schema already documents parameters 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 ('Add') and the objects ('existing entities' to 'a dataset'). It distinguishes from sibling tools like remove_dataset_entities and list_dataset_entities, though it doesn't explicitly contrast with create_entity for 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 versus alternatives (e.g., create_entity for new entities, create_entities_batch for bulk creation). The description does not specify prerequisites or scenarios to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_project_resourcesCInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only states the basic action, omitting details such as idempotency, whether resources are replaced or appended, required permissions, error conditions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence efficiently conveys the core purpose. It is appropriately front-loaded and concise, though slightly more detail about the resource types would improve clarity without sacrificing brevity.
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 absence of annotations and the presence of an output schema, the description should provide more behavioral context. As a mutation tool, it is insufficiently descriptive about outcomes, prerequisites, and relationships to sibling tools.
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 provides 100% coverage with detailed descriptions for all three parameters, including the structure of 'resources' and the allowed types. The tool description adds no additional semantic value 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 action ('Add') and the resource ('resources to a project'), providing a specific verb and resource. However, it does not explicitly differentiate from sibling tools like 'remove_project_resource' or 'list_project_resources', though the contrast is implied.
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 given on when to use this tool compared to alternatives (e.g., when to add vs. update vs. remove resources). The description lacks contextual cues about prerequisites or appropriate usage scenarios.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses parsing of CSV, appending entities, duplicate skipping, and file size/type constraints. Lacks explicit statement about mutation or error behavior, but overall adequate for the operation.
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 paragraphs: first sentence states purpose, second provides essential details. No redundant information. 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?
Covers main usage aspects: required columns, duplicate handling, alternative tool. Output schema exists to cover return values. Minor gaps (e.g., what if dataset missing, malformed CSV) not critical for typical 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 coverage is 100% so baseline is 3. Description adds significant value: explains file parameter format (raw CSV or base64, 10 MB cap, no server paths), clarifies api_key optionality with header/env var fallback, and reinforces dataset_id as required. Exceeds 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 'append' and resource 'entities from a CSV file to an existing dataset'. It distinguishes from sibling tool 'create_dataset_from_csv' by explicitly directing users to use that alternative for creating new datasets.
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 (append to existing dataset) and when-not-to (creating new dataset) with a reference to the sibling tool. Offers concrete guidance on CSV format: required 'name' column, optional 'domain' or 'description', and duplicate row handling.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It describes only the action without stating side effects (e.g., whether existing mappings are overwritten), required permissions, or idempotency. This leaves significant behavioral gaps.
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 that efficiently state the purpose and usage guidelines. Every word adds value with 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?
Given the presence of a full output schema and 100% schema coverage for parameters, the description adequately covers the essential context (what it does and when to use it). However, it leaves out behavioral nuances like overwrite behavior, which would elevate completeness to a 5.
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 all 4 parameters comprehensively. The description adds no extra meaning beyond the schema, so it meets the baseline expectation for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Map a resource (job, monitor, or monitor_group) to a webhook.' It identifies the specific verb 'map' and the resource types, distinguishing it from siblings like list_webhook_resources or 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 provides explicit usage context: 'Use when: - You want a webhook to fire for a specific job or monitor's deliveries.' This tells when to use the tool, but does not mention when not to use it or offer alternative tools.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden of behavioral disclosure. It explicitly states the tool is a health check, maps to a specific endpoint, and does not require authentication—complete transparency for a safe, read-only operation.
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. The key information (purpose, endpoint, auth requirement) is front-loaded and every word 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?
For a simple health-check tool with an output schema and no complex behavior, the description is complete. It covers the endpoint, auth requirement, and purpose, leaving no ambiguity.
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% for the single parameter, but the description adds value by clarifying that the api_key parameter is optional and not needed, which goes beyond the schema's default and 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 checks API health status and maps to GET /health, which is a specific verb+resource. It is distinct from sibling tools that handle queries, jobs, monitors, etc., making selection 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 notes that no API key is required, providing clear guidance on when to use. While it doesn't explicitly state when not to use, the health-check purpose is self-explanatory and alternatives are not needed given the distinct functionality.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It discloses cost implication ('costs additional credits') and default behavior for new_limit. However, it lacks details on side effects, idempotency, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: 6 sentences, front-loaded with main action, 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?
Given complexity (3 params, output schema exists), description covers purpose, usage condition, and parameter constraints. Could mention error handling, but overall sufficient 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%, but description adds value by noting new_limit must exceed previous limit and defaults to plan maximum, which is 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 clearly states 'Expand a job by processing more records beyond the initial limit', using a specific verb+resource. It distinguishes from siblings like submit_query by specifying it only applies to jobs with limit.
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 says 'Only use this when the user wants MORE data processed' and applies only to jobs with limit. No explicit alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes that datasets are collections and can be seeded with entity IDs, but does not detail creation behavior (e.g., whether it's immutable, what happens to existing data, or return value). Adequate but could add more 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 three sentences: first states the action, second defines what datasets are, third explains usage with submit_query. It is concise, front-loaded, and 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?
With an output schema present (not shown), the description does not need to explain return values. It provides essential context about dataset role within the system. Could mention that dataset is empty unless seeded, but overall is 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 parameters are well-documented in the schema. The description adds conceptual context (datasets as entity collections, connection to queries) but does not provide additional meaning beyond the schema for individual parameters. Baseline score 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 'Create a new dataset' and explains what datasets are (collections of entities) and their role in queries via submit_query. This distinguishes it from sibling tools like list_datasets, get_dataset, update_dataset, 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?
The description explicitly says to connect a dataset to a job via submit_query to narrow retrieval scope, providing clear context for when to use this tool. It does not explicitly state when not to use it, but the purpose is clear and alternatives are implied by sibling tool names.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses important behaviors: the CSV requirement for a name column, the effect on entity enrichment quality based on additional columns, and file size limitations. It does not cover authentication specifics or rate limits, but adequately describes the core behavior beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two informative sentences. It front-loads the primary purpose and then provides necessary details without 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?
Given the tool's complexity (5 parameters, no annotations, but has output schema), the description covers most essential aspects: input requirements, recommended columns, file size note, and alternative tool. It lacks details on output but the output schema likely fills that 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 description coverage is 100%, so the baseline is 3. The description adds extra semantic value by explaining the role of 'name', 'domain', and 'description' columns in enrichment, which goes beyond the schema's parameter 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 'Create a new dataset by uploading a CSV file', specifying the action, resource, and method. It also distinguishes from the sibling tool 'append_csv_to_dataset' by mentioning it is for new datasets only.
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 conditions for usage: required 'name' column, recommended 'domain' and 'description' columns for better enrichment, and max file size dependency. Also directs users to 'append_csv_to_dataset' for adding to existing datasets, giving clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, and the description does not disclose behavioral traits such as partial failure handling, idempotency, or rate limits. Only states it creates multiple entities.
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 unnecessary words. Perfectly 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?
For a batch creation tool with output schema, important context like return structure or error handling is missing. The description is too brief 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% and already explains parameters in detail. The description adds no new semantic value 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 'Create multiple entities in one call' clearly states the verb (Create), resource (entities), and batch aspect. It distinguishes from the sibling 'create_entity' tool which handles single entity 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 batch tool vs alternatives like 'create_entity'. No prerequisites or conditions mentioned.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It describes the creation action and required fields but does not mention side effects, authentication requirements, idempotency, or return value. Basic purpose is clear but behavioral context is lacking.
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 that front-load the core purpose and then immediately state the constraint. Every word is necessary and no filler is present.
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 6 parameters and an output schema exists, the description covers the minimum viable information to create an entity. However, it could be more complete by mentioning default values (e.g., entity_type defaults to 'company') or the relationship with the batch variant. It is adequate but not rich.
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 value by highlighting the dependency between name, description, and additional_attributes.company_attributes.domain, but does not explain other parameters like api_key or entity_type 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 single entity (a company or person)', which is a specific verb and resource. It distinguishes from siblings like create_entities_batch (batch creation) and other entity 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 specifies required fields (name plus one identifying field) but does not provide explicit guidance on when to use this tool versus alternatives like create_entities_batch or update_entity. Usage context is implied but not fully fleshed out.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses key behaviors: monitors re-run a job's query, schedule expressed in natural language, backfill constraints, frequency limits, 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?
Well-structured: purpose statement first, then usage pattern, then behavioral details. Each sentence is informative. 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?
Covers creation pattern, schedule semantics, constraints, and webhook integration. Output schema exists, so return values are documented. Complete for a complex tool with 8 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% with detailed descriptions. Description adds value by explaining the overall pattern and webhook centralization, which contextualizes the webhook_ids parameter. Scores above 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?
Description clearly states 'Create a recurring monitor from a completed job.' It uses a specific verb and resource, and the context of sibling monitor tools (list, update, delete) distinguishes this creation tool.
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?
Describes the explore-refine-automate pattern, indicating when to use this tool (after job refinement). Does not explicitly state when not to use it, but the pattern and sibling list provide enough context.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavior. It only states 'Create a new project' without explaining side effects, idempotency, or what happens on creation (e.g., returned object, 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 concise sentences: first states the action, second adds meaningful context about grouping. 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?
Output schema exists, so return values don't need description. However, for a creation tool, missing context like uniqueness constraints or whether API key is required (optional as per schema) could be covered. Adequate but not 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?
Schema coverage is 100%, so baseline is 3. Description adds minimal context beyond schema (only grouping info), but schema already documents parameters well.
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 project' and explains that projects group related resources, distinguishing it from other project-related tools like list_projects, get_project, 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?
The description mentions projects are used to organize resources and filter by project_id, implying when to use, but does not explicitly state when not to use or suggest alternatives.
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 |
TDQS
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 lacks details on permissions, side effects, idempotency, return value, or what happens on success/failure. The description is too minimal for a creation 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 concise (two sentences plus a bullet list) and front-loaded with the core action. It earns its place without fluff, though additional structure (e.g., return value) would improve it.
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 (10 parameters, 2 required) and the presence of an output schema, the description is too brief. It omits details about the created webhook object, workflow steps (like using the returned id), and common considerations, leaving the agent underinformed.
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 does not add meaningful parameter information beyond the schema, meeting the baseline expectation but not exceeding it.
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 creates a new webhook endpoint and gives specific use cases (registering a URL for job/monitor deliveries, obtaining a webhook_id). It distinguishes from sibling tools like list_webhooks, update_webhook, and delete_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?
The 'Use when' section provides explicit scenarios for using this tool. It does not explicitly state when not to use it or mention alternatives, but the context is clear enough given the sibling tools.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses the permanent nature of the deletion and clarifies that entities are not deleted, only associations. This adds important behavioral context beyond the obvious. It could mention permission requirements but overall is strong.
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 zero waste. The first sentence front-loads the primary action, and the second adds crucial nuance. Every word 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?
For a simple delete tool, the description covers the key behavioral detail (what happens to entities) and works well with the schema. An output schema exists to explain return values. Could hint at idempotency or error conditions, but not necessary for clarity.
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 documents both parameters. The description adds no extra meaning beyond restating the dataset_id parameter's purpose. Baseline of 3 is appropriate since the schema does the heavy lifting.
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 permanently deletes a dataset and explicitly clarifies that entities referenced by the dataset are not deleted. The verb 'delete' and resource 'dataset' are specific, and the description distinguishes it from sibling tools like delete_job or delete_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 implies use when you need to permanently remove a dataset, but it lacks explicit guidance on when to use this tool versus alternatives, when not to use it, or any prerequisites. No sibling comparisons 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.
delete_entityCInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. 'Permanently delete' only implies destructiveness, but it omits details like whether deletion is reversible, cascading effects, required permissions, or rate limits. The description fails to provide sufficient transparency for a destructive operation.
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 (4 words), but this brevity sacrifices structure and explanatory value. It is not verbose but lacks any formatting or hierarchy, making it barely 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?
Despite having an output schema, the description does not mention what the tool returns or any side effects. For a permanently destructive action, more context (e.g., on error handling, success response, or necessary permissions) would be expected. The description is incomplete 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% for both parameters (api_key, entity_id). The description adds no additional meaning beyond the schema, which already describes the parameters. Baseline 3 is appropriate as the schema carries the load, and the description does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'permanently delete' and the resource 'entity', making the tool's purpose unambiguous. However, it does not clarify what constitutes an 'entity' in this context, which could lead to confusion among sibling tools dealing with specific entity types like monitors or datasets.
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 other delete tools (e.g., delete_monitor, delete_job). The description lacks prerequisites, conditions, or any instruction on which entity deletion scenarios are appropriate for this tool.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses permanence of deletion and that results are also removed. No annotations provided, so description carries full burden; it adequately covers destructive 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?
Extremely concise: two sentences plus a bullet. Front-loaded with purpose, 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?
Simple delete operation. With output schema present, description fully covers purpose, usage, and parameters. 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?
Schema coverage is 100%, so baseline is 3. Description repeats schema info for both parameters without adding new meaning.
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 'delete' and resource 'job and its results'. It distinguishes from sibling delete tools by specifying 'job'.
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 specifies the scenario: removing a job no longer needed. No exclusions or alternatives mentioned, but clear context.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses destructive action ('permanently delete') and side effect ('stop its scheduled runs'), but lacks details on permissions or irreversibility confirmation. Since no annotations provided, description carries burden and does well, but could be more thorough.
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, all front-loaded with essential information, no fluff.
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, usage, and alternative. Output schema exists so return values are handled. Lacks mention of permissions or confirmation, but sufficient for a simple deletion 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% with descriptions for both parameters. The description adds minimal extra value beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Permanently delete a monitor and stop its scheduled runs,' using specific verb and resource, differentiating 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?
Explicitly states when to use (remove entirely) and when not to (use disable_monitor to pause), providing a clear 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It explains the default resource detachment and the delete_resources option, but does not disclose permissions, side effects, or recoverability. A bit more detail 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?
Two sentences, succinct and front-loaded with the action. Each sentence serves a purpose: stating the action and detailing the default behavior and parameter.
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 simple tool (3 parameters, one boolean), the description covers the core behavior and a crucial nuance. The output schema likely describes the return value, so that gap is acceptable. Minor missing elements like error handling or prerequisites.
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 documents parameters. The description adds significant value for `delete_resources` by explaining that resources are 'detached but kept' by default, clarifying the schema's description. No additional value for other parameters.
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 'Delete a project' and distinguishes the default behavior (detaching resources) from the option to also delete them with `delete_resources=true`. This differentiates it from other project-related tools like update_project or get_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?
The description implies when to use the tool (to delete a project) and explains the default versus optional deletion of resources. While it doesn't explicitly mention alternatives like delete_job for individual resources, the context from sibling tools makes it clear this is for whole projects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_webhookAInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description states 'permanently delete,' indicating irreversibility. However, it lacks details on prerequisites, permissions, or side effects (e.g., whether deleting a webhook affects ongoing deliveries).
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: first sentence states the purpose, second provides usage context. No unnecessary words, highly 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?
Tool is simple with two parameters; description covers the core operation. Output schema exists but is not referenced; still adequate given the straightforward nature of 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 coverage is 100% with descriptions for both api_key and webhook_id. The description adds no additional parameter-level information 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: 'Permanently delete a webhook endpoint.' This distinguishes it from sibling tools like update_webhook, test_webhook, 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?
Explicitly says 'Use when: - You want to remove a webhook from your account.' It provides clear context for when to use, though it doesn't include when not to use or contrast with alternatives like disabling.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. Discloses that it stops scheduled runs and is reversible via enable_monitor. Could mention immediate effects on running jobs, but sufficient for a simple toggle.
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. No unnecessary words; 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?
Tool is simple and the description covers its core behavior. Output schema exists (not shown), so return values don't need explanation. Complete for its purpose.
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 parameters are already well-described. The description adds no extra meaning beyond what the schema provides for monitor_id and api_key.
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 action (disable), the resource (monitor), and the purpose (stop scheduled runs). Includes contrast with re-enabling, distinguishing from delete tools among 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?
Implies usage for temporary stoppage but does not explicitly state when to use vs. alternatives like delete_monitor or enable_monitor. 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.
enable_monitorBInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states the action 'enable', but does not mention auth requirements, idempotency, or side effects of the 'backfill' parameter. The mutation aspect is implied but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that gets straight to the point. However, it could be slightly more structured with additional context (e.g., prerequisite state). It is not overly long.
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 multiple siblings, output schema exists (reducing burden), and 3 parameters, the description does not explain return values or preconditions fully. It is minimally adequate but leaves gaps about when to use and expected outcomes.
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 documents all three parameters. The description adds no additional meaning beyond what is in the schema, such as explaining 'backfill' behavior or 'api_key' usage. 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 'Enable' and the resource 'monitor', with the specific purpose 'resume its scheduled runs'. It is distinct from sibling tool '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?
The description implies use for re-enabling a disabled monitor but does not explicitly state when to use this vs alternatives like 'update_monitor' or prerequisites (e.g., monitor must be disabled). No exclusions or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datasetCInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'get' implying read-only, but lacks details on what 'details' includes, any filtering, or side effects. The output schema exists but description doesn't leverage it.
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 (6 words) and front-loaded with the key action. However, it may be too brief to provide sufficient context for an AI agent.
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 simplicity of the tool (get by ID), the description is minimally adequate but lacks usage context, prerequisites, or differentiation from 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 coverage is 100% (both parameters documented). The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 specifies the verb (get), resource (dataset), and scope (single). It distinguishes from sibling tools like list_datasets and create_dataset, though it adds little beyond the tool name.
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 such as get_dataset_status or other retrieval tools. The description does not mention any conditions or prerequisites.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'get status history' and gives an example but does not mention authentication requirements, error behavior, pagination, or ordering of results.
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 of 11 words, front-loaded, and includes a helpful parenthetical example. 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 tool's simplicity, an output schema exists, and no annotations are provided, the description is minimally complete but lacks usage guidance and behavioral details. It could mention that it returns a history list.
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. The tool description adds no additional semantic value beyond the schema, which is adequate per 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 action ('Get the status history') and the resource ('dataset'), and gives a concrete example ('enrichment progress over time'). It is distinct from sibling tools like 'get_dataset' which likely returns current details.
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 monitoring dataset progress but does not provide explicit guidance on when to use this tool versus alternatives like 'get_job_status' or 'list_datasets'. No 'when not to use' information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must convey behavioral traits. It only states it's a read operation, but does not disclose authentication requirements (api_key parameter hints at auth but not mentioned), error handling, or behavior when entity not found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently communicates the tool's purpose without extraneous 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?
The tool is simple and has an output schema, but the description lacks context on prerequisites, error handling, or expected behavior when the entity does not exist. Adequate for basic understanding but incomplete for optimal 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% with detailed api_key description and minimal entity_id description. The tool description adds no additional meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a single entity's details, using a specific verb and resource. However, it does not differentiate from sibling tools like list_entities or create_entity, which is necessary given the large 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?
No guidance on when to use this tool versus alternatives (e.g., list_entities for multiple entities). The description lacks context for appropriate usage scenarios.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses that jobs take minutes, status progression, partial result availability, and polling behavior. It also explains how to track progress using progress_validated vs candidate_records.
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 well-structured with clear sections and front-loaded purpose. While comprehensive, every sentence adds value. Slightly long but appropriate for the complexity.
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, the description covers all necessary usage details: when to call, polling behavior, partial results, failure handling. No gaps for effective agent 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 clear parameter descriptions. The description adds context that job_id comes from submit_query but does not provide additional semantic value beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 when to use it (after submit_query), and outlines the status progression. It distinguishes from siblings like pull_results by explaining 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?
Provides explicit polling intervals (1-2 min first check, then 30-60 sec, 60-120 sec for long jobs), when to stop (completed/failed), and guidance on partial results during 'enriching' and transport failure recovery. Leaves no ambiguity.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It states it returns a timeline of state changes, which implies a read operation. However, it lacks details on authentication, rate limits, or pagination 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: two sentences and a single bullet. Every sentence adds value, and the purpose 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 presence of an output schema, the description does not need to explain return values. For a simple status history tool, it provides adequate context, though it could mention pagination or date ranges.
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 documents both parameters. The description adds no new meaning beyond what is in the schema, leading to 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 'Get the status history of a monitor' with a specific verb and resource. It distinguishes from sibling tools (e.g., create_monitor, disable_monitor) which operate on monitors differently.
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 'Use when' bullet provides clear context for when to use the tool. However, it does not explicitly mention when not to use it or provide alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectAInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements (beyond the api_key parameter hint), error handling, or rate limits. The description is too minimal for a retrieval 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?
Single sentence, no extraneous words, clearly front-loaded. Every word contributes to purpose 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?
Despite the absence of behavioral details, the description is adequate given the presence of an output schema. However, it could briefly mention that the tool returns a project object for added completeness.
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 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 'Get a single project's details.' clearly states the action (get) and resource (project details), distinguishing it from sibling tools like list_projects (which returns multiple) and get_project_overview (which may return a summary).
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 when needing details of a specific project, but provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_overviewAInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses that the tool returns aggregated counts by resource type and status, implying no side effects. Could mention read-only nature explicitly, but the output description is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 13 words clearly stating the tool's purpose. Front-loaded with verb and resource, 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 existence of an output schema (likely defining the return structure), the description is complete enough for a simple overview tool. Could mention default behavior or scope, but 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 coverage is 100%, so both parameters are already documented. The description adds no additional information about parameters beyond the schema, but the 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 verb 'Get' and the resource 'project's resource overview', and specifies the output is 'counts grouped by resource type and status'. This distinguishes it from sibling tools like get_project, update_project, 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?
No guidance on when to use this tool vs alternatives (e.g., get_project, list_projects). The agent must infer from the description that it's for aggregate counts, but there is no explicit when/when-not advice.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation ('retrieve', 'check') but does not explicitly state behavioral traits such as nondestructive nature, authentication requirements, or rate limits. Since no annotations are provided, the description carries the full burden, and while adequate, it could be more explicit about what the tool does not do.
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, using two short sentences for the core purpose and a bullet-style 'Use when' list. Every sentence adds value with no redundancy, and the main purpose 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?
The tool is simple with one parameter and the description covers its purpose and typical use cases. An output schema exists, so return value details are not needed. The description provides sufficient context for an agent to understand when and how to use 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?
The input schema fully describes the single optional 'api_key' parameter with 100% coverage. The description adds no additional semantics beyond 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 retrieves 'plan features and current usage limits' for the API key. The verb 'retrieve' and specific resource make the purpose unambiguous, and it stands apart from sibling tools that perform queries, jobs, or dataset operations.
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 explicit 'Use when' scenarios: checking plan allowances and verifying usage before large jobs. This provides clear context for when to invoke the tool, though it does not mention when to avoid using it or name specific alternatives among siblings.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it is a GET request and does not require authentication. While annotations are absent, the description sufficiently covers behavioral traits for a simple read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose, no superfluous words. 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 the tool's simplicity and presence of an output schema (context signal), the description is fully adequate—no additional details needed.
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% and description adds value by clarifying the api_key parameter is optional and not needed, providing 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 the tool gets the current API version and maps to a specific endpoint, distinct from all sibling tools which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states that an API key is not required, providing clear usage guidance. No alternative or exclusion needed due to the tool's simple 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that the tool retrieves full configuration including URL, method, headers, and status, but does not mention side effects, permissions, or rate limits. It provides some behavioral context but could be more comprehensive.
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 plus a bullet point, with no unnecessary words. It is well-structured and front-loaded with the main 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 that an output schema exists (as per context signals), the description does not need to detail return values. It covers purpose and usage adequately. However, it could mention that api_key is optional or that authentication might be needed, but the schema handles that. Overall sufficient 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%, and the description adds minimal meaning beyond the schema by mentioning 'by its ID' for webhook_id. It also lists what the response contains (URL, method, headers, status), but that is more about the output than parameters. 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 'Retrieve the full configuration of a specific webhook,' which is a specific verb+resource combination. It distinguishes from sibling tools like list_webhooks (lists all) and update_webhook (modifies).
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 inspect a webhook's URL, method, headers, or status by its ID.' This provides clear context for when to use the tool, though it does not explicitly mention when not to use it or alternatives.
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 |
TDQS
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 states the tool gets history but does not disclose whether it is read-only, any side effects, authorization requirements, or pagination 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 plus a bullet point, front-loaded with the main purpose, 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?
Given the presence of an output schema, the description does not need to explain return values. It covers the purpose and usage context, though it omits mention of pagination, which is present in the parameters. 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 coverage is 100%, so all parameters have descriptions in the schema. The description does not add extra meaning 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 tool gets webhook delivery history for a resource, specifically job/monitor/monitor_group. It distinguishes from sibling webhook tools by focusing on history rather than configuration or listing.
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 see past webhook delivery attempts and their outcomes for a specific job or monitor.' This provides clear context, though it 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.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key traits: preview-only, does not create a job, non-deterministic suggestions, reuse via submit_query. Covers important behavioral aspects beyond annotations (which are absent).
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, uses bullet points for clarity, front-loaded with the main purpose. 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?
Adequately covers the preview workflow and key behaviors. Output schema exists, so return values need not be detailed. Could be slightly more explicit about what the preview returns, but overall 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% with detailed descriptions. The tool description adds workflow context but does not significantly enhance parameter-level meaning 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?
Clearly states it previews suggested validators, enrichments, and date ranges before submitting. Distinguishes from sibling 'submit_query' by explicitly contrasting use cases.
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 lists when to use (inspect/edit suggestions before submitting) and when not (immediate processing, use submit_query). Provides clear alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dataset_entitiesAInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description alone must convey behavior. It only states the core function with no mention of read-only nature, pagination defaults, authentication via api_key, or filters. However, the schema covers much, making this minimally 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?
Single sentence, front-loaded, no extraneous words. Perfectly 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?
With an output schema present, return values don't need explanation. Though the description is minimal, it covers the basic operation. Given the number of parameters, a slight expansion (e.g., pagination, filtering) would improve completeness. Still, the schema fills many 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?
Schema description coverage is 100%, so baseline is 3. The description adds no additional 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?
The description uses a specific verb-resource pair 'List entities' and scopes it to 'contained in a dataset', clearly distinguishing it from sibling tools like list_entities (lists all entities) and list_datasets.
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 when-to-use or alternatives provided. It doesn't mention that dataset_id is required (though schema shows it) or contrast with similar tools like list_entities. Guidance is implicit at best.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose key behaviors like pagination, filtering, or ownership scope. The minimal text only says 'your datasets' but doesn't mention that the tool supports pagination, search, sorting, or filtering via parameters.
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 (one sentence). However, for a tool with 9 parameters, a slightly more detailed description could improve usability 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 tool's complexity (9 parameters, output schema exists), the description is too sparse. It omits important context like pagination defaults, ownership semantics, and results format, leaving the agent underinformed.
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 parameter information beyond the schema, but the schema itself fully documents each parameter.
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 action (list) and resource (datasets). It distinguishes the tool from siblings like create_dataset, get_dataset, etc., though it doesn't explicitly differentiate from list_projects or other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., get_dataset for a single dataset, list_projects for projects). The description lacks context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It only says 'List your entities' with no information about pagination, filtering, sorting, or any side effects. This is completely inadequate.
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 (one sentence) but overly minimal. It sacrifices necessary detail for brevity, making it under-specified rather than efficiently 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?
The tool has 8 parameters, pagination, filtering, sorting, and an output schema. The description fails to provide any context about these features, leaving the agent with no understanding of the tool's capabilities beyond the bare list 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 description coverage is 100%, so the baseline is 3. The description adds no meaning beyond what the schema provides; it does not mention any parameters or their roles.
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 states 'List your entities,' which clearly indicates the action (list) and resource (entities). It is specific enough to understand the tool's primary function, though it doesn't differentiate from other list tools like list_datasets or list_projects. The addition of 'your' implies a user 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?
No guidance is provided on when to use this tool versus alternatives (e.g., when to use list_dataset_entities instead). There is no mention of prerequisites, context, or when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_monitor_jobsBInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. The description only states basic functionality without disclosing side effects, permissions, pagination, or other runtime 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?
Two brief sentences that efficiently state the purpose. However, the brevity sacrifices additional helpful context. Structure is front-loaded with the main 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 presence of an output schema, the description need not detail return values. However, it lacks context about sorting, filtering, or the scope of history (e.g., only past or also future jobs). Basic but acceptable for a simple listing 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%, and the description does not add further meaning to parameters. It meets the baseline for high coverage but provides no additional 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 'List all jobs spawned by a monitor' and 'Returns the history of scheduled runs for a monitor.' This verb+resource combination is specific and distinguishes from sibling tools like list_user_jobs (all jobs) and other monitor 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?
No explicit guidance on when to use this tool versus alternatives. Does not mention scenarios for using list_monitor_jobs versus list_user_jobs or job management tools.
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 |
TDQS
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 correctly indicates a read-only operation by stating 'list', but does not explicitly state non-destructiveness, pagination behavior, or rate limits. The schema covers pagination.
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 wasted words. The first states the action, the second details the output. 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?
With an output schema present, the description does not need to detail return values, but it briefly lists the returned attributes, adding value. It could mention filtering options, but schema covers them.
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%, and the description does not add additional meaning to the parameters beyond what is already in the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all your monitors') and specifies the returned fields (schedule, status, reference query, webhook config). This distinguishes it from sibling tools like update_monitor or get_monitor_status.
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 list all monitors), but does not explicitly mention alternatives or when not to use it. Given the straightforward nature, 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_project_resourcesAInspect
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 |
TDQS
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 'List' which implies read-only, but does not mention any behavioral traits like authentication, rate limits, or side effects. For a simple list, more context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no wasted words. It is front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 5 parameters fully described in schema, and an output schema exists, reducing the need for return value details. The description is adequate but could include more context about resource types or pagination 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% (all parameters have descriptions). The tool description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and resource 'resources contained in a project', which is specific and distinguishes from sibling tools like add_project_resources or remove_project_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 implies usage for viewing project resources, and the context with sibling tools makes it clear. However, it does not explicitly state when to use or not use this tool vs alternatives.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully convey behavioral traits, but it only says 'List your projects.' It fails to mention pagination, filtering, authentication, rate limits, or any side effects. The agent gets no insight into how the tool behaves beyond its 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 very short (5 words) but under-specified. It sacrifices necessary detail for brevity. While it is concise, it does not effectively convey the tool's purpose or usage, making it more of a placeholder than a helpful summary.
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 tool has 5 parameters, an output schema, and no annotations. The description provides none of the context needed to use the tool effectively, such as pagination, search filtering, ownership options, or API key handling. It is severely 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%, meaning the input schema already describes all parameters. The description adds no additional param meaning beyond what's in the schema. Baseline of 3 is appropriate since the schema covers the details, though the description could have summarized key parameters for quick 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 'List your projects' is clear in stating the verb and resource, but it's vague and doesn't distinguish from sibling tools like get_project or list_datasets. It effectively repeats the tool name without adding specificity about what 'list' entails (e.g., pagination, sorting, or output details).
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 get_project or search-related tools. There are no exclusions, prerequisites, or context for usage. The description is silent on when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as read-only nature, rate limits, or authentication requirements beyond the schema. It only implies a read operation via the verb 'List'.
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 plus a bullet), front-loaded with the main purpose, and has a clear 'Use when' section. 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 the existence of an output schema, the description need not cover return values. It mentions the resource types and usage context. It could briefly mention pagination, but the schema already documents page and page_size 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%, so the description adds no additional meaning beyond the parameter definitions. The mention of resource types aligns with the schema but provides no extra depth.
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 mapped to a specific resource (job/monitor/monitor_group), distinguishing it from the sibling list_webhooks which lists all 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 explicitly says 'Use when: you have a job or monitor ID and want to know which webhooks will fire for it', providing clear context for usage. It could be improved by mentioning when not to use it, but the guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_user_jobsAInspect
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 |
TDQS
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 states basic return fields but does not disclose pagination behavior (page/page_size parameters), authentication requirements (api_key param exists), or any rate limits or sorting behavior. The description is adequate but lacks depth.
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: the first states the purpose, the second lists return fields. No redundant or unnecessary information. 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?
Given the tool has 6 parameters and an output schema (not shown), the description covers the main purpose and return values. It omits explicit mention of pagination or filtering options but the schema handles those. For a list tool, it is fairly complete, but could note that results are paginated or that it only returns the user's own jobs (implied).
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 all 6 parameters documented. The description does not add additional meaning beyond the schema; it only mentions that the tool returns IDs, queries, etc. Baseline score of 3 is appropriate since the schema already provides parameter details.
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 'List' and the resource 'all jobs submitted by you'. It distinguishes from siblings like get_job_status (single job) and list_monitor_jobs (monitor-specific) by focusing on user's own job history. The return fields (IDs, queries, statuses, timestamps) add specificity.
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 like get_job_status or pull_results. The context of 'jobs submitted by you' implies usage for personal job history, but there is no mention of when not to use it or trade-offs compared to sibling tools.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the purpose without mentioning that it is a read operation, pagination behavior, authentication requirements, or rate limits. More detail is needed 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 concise with two sentences, front-loading the purpose and then providing a use case. 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?
The tool is relatively simple with an output schema available. The description covers purpose and use case. It could mention the resource_type filter, but the schema covers that. Adequate for the complexity level.
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 does not add any parameter-specific information 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 resources mapped to a webhook using a specific verb and resource. It distinguishes from sibling tools like list_webhooks and list_resource_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 a clear use case: 'when you want to see which jobs/monitors a webhook is attached to.' It does not explicitly state when not to use it or mention alternatives, 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.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes a read-only operation but does not add behavioral details such as side effects, rate limits, or authentication requirements beyond the schema. The description is adequate for a simple list operation but lacks depth.
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 no wasted words. It front-loads the core purpose and uses a bullet-style 'Use when' section, making it easy to scan and understand 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?
Despite having no annotations, the description covers the essential usage context. There is an output schema (not shown but present), so return value explanation is not needed. All three parameters are optional and well-documented in the schema. The description is complete for a simple list 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%—all parameters already have descriptions. The main description does not add any additional meaning to the parameters beyond what the schema provides. Baseline is 3 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 'List all your webhooks' with a specific verb and resource. It also provides usage scenarios. While it doesn't explicitly differentiate from siblings like get_webhook, the purpose is clear and distinctive enough.
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 'Use when' conditions for two common use cases: viewing all endpoints and finding webhook_id for monitors. It doesn't mention when not to use or alternatives, but the guidance is sufficiently clear for an agent.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It indicates a read operation ('download') but does not disclose potential side effects, authentication requirements, or error scenarios. While not misleading, it lacks depth beyond the basic 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 with the first defining the action and the second providing usage guidance. It is front-loaded and contains 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?
Given the presence of an output schema and high schema coverage, the description is mostly complete. It includes usage guidance and sibling differentiation. However, it omits details about error handling or prerequisites, which are not critical but would enhance completeness.
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% coverage, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for the parameters; it only restates the job_id 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?
The description states 'Download a job's results as a CSV file,' which is a specific verb and resource. It further distinguishes from the sibling tool `pull_results` by specifying the CSV format, making the purpose clear and differentiated.
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 use cases: 'Use when: You want the full job output as a CSV for offline analysis or export. Prefer this over `pull_results` when the consumer needs spreadsheet/CSV format.' This clearly guides the agent on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It indicates the tool is read-only ('Download'), which is helpful, but fails to disclose behavior on missing runs, required permissions, or side effects. This is adequate but not comprehensive.
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 brief (two sentences plus bullet list) and front-loaded with the main action. It avoids unnecessary details, though the bullet list partially repeats the main statement. Efficient overall.
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, return values need not be explained. However, the description does not address edge cases (e.g., no latest run) or integration context among many sibling tools. It covers the core use case but leaves some 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?
Schema coverage is 100%, so parameters are already documented. The description does not add extra meaning beyond the schema (e.g., clarifying 'monitor_id' usage or 'api_key' optionality). 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 'Download the latest monitor run's results as a CSV file', identifying the action, resource, and format. It distinguishes from the sibling 'pull_monitor_results' by specifying CSV format, but does not differentiate from 'pull_job_csv', which also downloads CSV files.
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 'Use when' bullet explicitly lists scenarios: wanting latest monitor run as CSV and preferring over 'pull_monitor_results' for CSV format. It provides comparative guidance but lacks explicit 'when not to use' instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pull_monitor_resultsBInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states 'Retrieve the latest results' but does not disclose potential side effects, prerequisites (e.g., monitor must exist), rate limits, or idempotency. The output schema may cover return format, but behavioral context is lacking.
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 and key details. No unnecessary words; 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?
Tool is simple with one required parameter, and output schema exists. However, lack of usage guidelines and behavioral transparency reduces completeness. Adequate but not thorough.
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 parameters are already described. The description adds context about what the results include (run_info, records, all_records), but this is more about output than parameter semantics. Baseline 3 is appropriate since schema does the heavy lifting.
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 the latest results from a monitor, specifying the returned components (run_info, records, all_records). It distinguishes from siblings like pull_results and pull_monitor_csv, though it does not explicitly differentiate from all related 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?
No explicit guidance on when to use this tool vs alternatives such as pull_monitor_csv or pull_results. The description does not provide when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It fully discloses behavior: partial results, pagination, handling of active/completed/failed states, and return format (clustered, validated, enriched web results). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, front-loaded with purpose, every sentence adds value. No fluff. Clear structure with state-specific guidance.
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 4 parameters, presence of output schema, and multiple siblings, the description is complete. Covers state handling, pagination, and result nature. 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?
Schema description coverage is 100% with each parameter described. The description adds context about pagination and job states, plus the output nature, but the schema already explains the parameters well. Slight extra 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 'Retrieve the results of a job' with a specific verb and resource. It distinguishes from siblings like 'pull_job_csv' and 'get_job_status' by focusing on retrieving results in general.
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: call before completion for partial results, after completion for full set, iterate pages when completed, call once on failure. Also mentions pagination and refreshing partial output.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the key behavioral trait that entities are not deleted, but omits details on permissions, side effects, or handling of invalid IDs. Adequate but not comprehensive.
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, well-structured sentence that conveys the essential information without unnecessary words. It is front-loaded with the action and key nuance.
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 the tool's simple nature, the description is complete enough for an agent to understand the operation. It could mention return behavior but is not deficient.
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 parameter descriptions are already present in the input schema. The description adds no additional parameter-level meaning 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 clearly states the action 'Remove entities from a dataset' and distinguishes from related operations by noting that entities themselves are not deleted. This differentiates it from sibling tool 'delete_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 implies usage by stating what the tool does and the nuance of non-deletion, but lacks explicit guidance on when to use it versus alternatives like 'delete_entity' or 'add_dataset_entities'. No exclusion criteria are provided.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks any behavioral details beyond the basic operation. With no annotations provided, it should disclose side effects, permissions, reversibility, or error scenarios. It only says 'Remove a single resource', omitting critical context for a 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 a single, short sentence that is concise and front-loaded. However, it is too brief to provide substantial value, which prevents a score of 5. It is not overly verbose but could benefit from more structured detail.
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 there is an output schema (not shown), the description could be shorter, but it still fails to mention return behavior, error handling, or the specific meaning of 'project resource'. The minimalism is insufficient for a tool with 4 parameters and no additional 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 description coverage is 100%, so the description adds no extra meaning beyond what the schema already provides. Baseline 3 is appropriate as the description does not supplement or clarify parameter usage.
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', the resource 'a single resource', and the context 'from a project'. It unambiguously defines the tool's purpose and distinguishes it from sibling tools like add_project_resources 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?
No guidance is provided about when to use this tool versus alternatives. There is no mention of prerequisites, conditions, or what distinguishes it from other removal tools (e.g., remove_webhook_resource). The description is purely functional.
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 |
TDQS
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 states the effect (stop a webhook from firing) but does not disclose whether the operation is idempotent, what happens if the resource is not mapped, or any permission or side-effect details. More behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences followed by a bulleted use case. No redundant information; every part 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 the tool has an output schema (context: true), return values need not be explained. The description omits prerequisites (e.g., webhook must exist) and error cases, but for the stated purpose it is 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% (all parameters have descriptions). The tool description adds no additional meaning beyond the schema. 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 ('Unmap a resource from a webhook') and specifies the resource type ('for a specific job or monitor'). It distinguishes from sibling tools like assign_webhook_resource (the inverse) and list_webhook_resources (listing).
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 use cases ('Use when: You want to stop a webhook from firing for a specific job or monitor.'). It does not include when-not-to-use or alternatives, but the context is clear enough for an AI agent to differentiate.
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 |
TDQS
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 thoroughly discloses behavioral traits: required query, auto-generation of omitted fields, rules for connected_dataset_ids, date filtering behavior, limits, and validators/enrichments constraints. The 'Key rules' and 'Next steps' sections add valuable operational 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 lengthy and covers many details, which is appropriate for a tool with 16 parameters. However, it could be more concise; some redundancy exists (e.g., repeated warnings about connected_dataset_ids). The structure is logical but not front-loaded enough for quick scanning.
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 (16 parameters, interdependent rules) and presence of an output schema, the description is comprehensive. It covers all crucial aspects: parameter interactions, validation rules, timing, next steps, and practical examples. It fully equips an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant meaning beyond the schema. It explains parameter interactions (e.g., connected_dataset_ids affecting query and validators), provides examples, and clarifies constraints like dates representing discovery dates. This goes well beyond the schema's property 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 opens with a clear verb+resource statement: 'Create a new CatchAll processing job from a natural-language query.' It immediately distinguishes itself from siblings like get_job_status and pull_results by stating what it does and when not to use it.
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 lists 'Use when' and 'Do not use when' sections, naming sibling tools (get_job_status, pull_results) and providing clear context for when submit_query is appropriate versus alternatives.
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 |
TDQS
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 a test delivery is sent without mentioning side effects, permissions, rate limits, or the nature of the test (e.g., non-destructive). The output schema exists but the description does not hint at what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence states the core action, and the second provides a clear use case. No extraneous words or 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?
The description covers purpose and usage adequately for a simple tool with good schema coverage and an output schema. It lacks mention of result or error scenarios, but those are often covered by the output schema. Minor gap in not explaining the 'test' nature further.
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%, and each parameter has clear descriptions (api_key optional, payload custom or default, webhook_id required). The description does not add extra meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send a test delivery') and the resource ('webhook endpoint'). It distinguishes from sibling tools like create_webhook, get_webhook, delete_webhook, and trigger_webhook by focusing on verification rather than configuration or actual triggering.
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 the tool: to verify a webhook URL is reachable and correctly configured before attaching it to a monitor or job. It does not mention alternatives or when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. Description states it triggers delivery but does not detail behavior such as synchronous/asynchronous, idempotency, rate limits, or validation. Minimal disclosure beyond core action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a bullet list. Front-loaded with purpose, efficient with zero 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?
Output schema exists, so return values are covered. However, missing details about execution behavior (sync/async, validation) reduce completeness for a trigger action with 5 parameters and no annotations.
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 does not add significant meaning beyond schema; it restates resource types and optional job_id purpose, but those are already in 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?
Description clearly states the action 'trigger webhook delivery' and specifies resource types (job/monitor/monitor_group). It differentiates from automatic dispatch and sibling tools like test_webhook or get_webhook_history.
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:' block with clear scenarios: on-demand delivery and replay of missed/failed deliveries. Lacks explicit 'when not' but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_datasetAInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden for behavioral disclosure. It only states that the tool updates name/description but does not explain side effects, permissions needed, reversible nature, or response 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 a single, efficient sentence that gets directly to the 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 100% schema coverage and an output schema, the description is mostly complete. It covers the core action but could mention that dataset_id is required and that name/description are optional; however, these are already in the schema.
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 tool description adds no extra meaning beyond what the schema already provides; it simply restates the purpose implied by the parameters.
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 'Update' and the resource 'dataset', specifying the exact fields that can be modified (name and/or description). This distinguishes it from siblings like create_dataset, get_dataset, and delete_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 does not provide explicit guidance on when to use this tool versus alternatives. It omits prerequisites, such as ensuring the dataset exists or providing the API key, and does not mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_entityBInspect
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It indicates mutation but does not explain side effects, permissions, idempotency, or whether it performs a partial or full replacement. The phrase 'and/or' suggests partial update but is not explicit.
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 unnecessary words. It is concise and front-loads the key purpose. However, it could be slightly more informative without adding bulk.
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 no annotations and a mutation with multiple parameters, the description is too minimal. It does not mention that it's a partial update, any constraints on attributes, or what the output contains (though output schema exists). The description lacks sufficient completeness for safe 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 description coverage is 100%, so the schema already documents each parameter. The description adds no additional meaning beyond listing the fields, which is already clear from 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?
The description clearly states the verb 'Update' and the resource 'entity', specifying the exact fields that can be updated: name, description, external_entity_id, and attributes. This distinguishes it from sibling tools like create_entity or delete_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?
No guidance is provided on when to use this tool versus alternatives such as create_entity or partial updates. There is no mention of prerequisites, when not to use, or context for choosing this tool.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries burden. It notes immutable fields but lacks details on side effects, idempotency, or whether previous assignments are cleared if not specified. Moderate 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?
Three sentences, no fluff, purpose-first. Efficiently communicates key constraints and parameter usage.
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 it's an update tool with output schema, description covers main aspects: modifiable fields, restrictions, webhook source. Could mention partial update behavior, 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 coverage is 100%, but description adds context: webhook IDs are from create_webhook/list_webhooks and that limit has a minimum of 10 (echoed from schema but reinforced). Adds value beyond raw 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 explicitly states 'Update a monitor's webhook assignments and per-run limit,' clearly indicating the verb and specific resources. It distinguishes from sibling tools like create_monitor, delete_monitor, 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?
Provides explicit guidance on what cannot be modified (schedule and reference_job_id) and advises that webhooks are centralized with IDs from create_webhook/list_webhooks. This helps the agent decide when 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.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It mentions that only provided fields are changed (partial update), but does not explain error conditions, authentication requirements (though api_key parameter exists), or what happens on invalid inputs. Basic transparency but lacks depth.
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 sentences that are front-loaded with action and purpose. No redundant or unnecessary words. Every sentence serves a clear role.
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 operation with 4 parameters (1 required) and existing output schema, the description covers the core functionality. However, it omits any mention of error handling or confirmation of the update, which would be useful for completeness.
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 the detail that only provided fields are changed, which slightly enriches parameter semantics, but does not go beyond what the schema already describes for each parameter.
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 'Update' and the resource 'a project', specifying the fields that can be changed (name and/or description). It effectively distinguishes this tool from sibling tools like create, delete, list, and get projects.
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 updating a project's metadata but does not explicitly state when to use this tool versus alternatives or provide prerequisites or exclusions. The sibling tools provide context, but no direct guidance is given.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the partial update behavior, which is key. It does not mention error handling, permissions, rate limits, or side effects, but for a simple update tool, the level 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 concise (three sentences plus bullet points). It is front-loaded with the main purpose, then provides use cases. 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 the tool's complexity (12 parameters, partial update) and the presence of an output schema, the description covers the key usage scenarios. It could include more about error conditions or prerequisites, but it is sufficient for an update 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 highlights updating settings and is_active, but adds little beyond the schema's parameter descriptions. It does not clarify format or usage for each parameter.
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 updates an existing webhook's configuration. It distinguishes from sibling tools like create_webhook, delete_webhook, etc., by specifying the action (update) and the target (existing 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?
The description explicitly lists when to use: changing URL, method, headers, enabling/disabling. It also notes partial update behavior ('omitted fields remain unchanged'). However, it does not explicitly state when not to use or mention alternatives like create_webhook for new webhooks.
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 |
TDQS
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 states the tool checks query quality and gives suggestions but does not detail the return format, side effects, authentication requirements, or rate limits. Given no annotations, this is adequate but could be more informative about the behavior beyond the core function.
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 front-loaded with a clear title line and uses bullet points for use/non-use cases. Every sentence is purposeful, and the structure is well-organized with 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, the description adequately covers what the tool does, when to use it, and differentiation from siblings. However, it does not mention error conditions or prerequisites beyond the schema, which could be beneficial for completeness.
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 does not add meaning beyond the schema; it merely restates that 'query' is a natural-language query and 'api_key' is optional. No additional formatting or constraints are 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 the tool's purpose: 'Check the quality of a query before submitting a job'. It uses a specific verb ('check quality') and resource ('query'), and distinguishes it from siblings like initialize_query and submit_query 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?
The description includes explicit 'Use when' and 'Do not use when' sections, providing clear context for when to use the tool (quick feedback before spending credits, improving vague queries) and when not to use it (previewing validators/enrichments or running a search), with alternative tools named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
60 tool updates
v1.0.0- First observed
add_dataset_entities - First observed
add_project_resources - First observed
append_csv_to_dataset - First observed
assign_webhook_resource - First observed
check_health - First observed
continue_job - First observed
create_dataset - First observed
create_dataset_from_csv - First observed
create_entities_batch - First observed
create_entity - First observed
create_monitor - First observed
create_project - First observed
create_webhook - First observed
delete_dataset - First observed
delete_entity - First observed
delete_job - First observed
delete_monitor - First observed
delete_project - First observed
delete_webhook - First observed
disable_monitor - First observed
enable_monitor - First observed
get_dataset - First observed
get_dataset_status - First observed
get_entity - First observed
get_job_status - First observed
get_monitor_status - First observed
get_project - First observed
get_project_overview - First observed
get_user_limits - First observed
get_version - First observed
get_webhook - First observed
get_webhook_history - First observed
initialize_query - First observed
list_dataset_entities - First observed
list_datasets - First observed
list_entities - First observed
list_monitor_jobs - First observed
list_monitors - First observed
list_project_resources - First observed
list_projects - First observed
list_resource_webhooks - First observed
list_user_jobs - First observed
list_webhook_resources - First observed
list_webhooks - First observed
pull_job_csv - First observed
pull_monitor_csv - First observed
pull_monitor_results - First observed
pull_results - First observed
remove_dataset_entities - First observed
remove_project_resource - First observed
remove_webhook_resource - First observed
submit_query - First observed
test_webhook - First observed
trigger_webhook - First observed
update_dataset - First observed
update_entity - First observed
update_monitor - First observed
update_project - First observed
update_webhook - First observed
validate_query
TDQS
Most tools have distinct purposes, and descriptions clearly differentiate similar ones (e.g., initialize_query vs submit_query, pull_results vs pull_monitor_results). However, the high number of tools (60) may cause some confusion, especially for webhook and resource mapping tools.
Tool names generally follow a verb_noun pattern, but the verbs are inconsistent (pull, get, list, check) and there is a mix of 'list' and 'get' for similar retrieval operations. While readable, the pattern is not uniform.
With 60 tools, the surface is very large for an MCP server. Although the domain (news monitoring with datasets, entities, projects, monitors, webhooks) might justify the number, many CRUD operations could be consolidated to reduce cognitive load.
The tool set covers the full lifecycle: job submission, monitoring, webhooks, datasets, entities, projects, and health. All major CRUD operations are present, and there are no obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
Google Web Search: Google Web Search API. Search the world’s information, including webpages.
Search the web, images, videos, news, and local businesses with robust filters, freshness controls…
The best web search for your AI Agent
Give AI assistants access to real-time data. Search the web, compare flights, find hotels, and more.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI assistants to search, filter, and analyze Microsoft events (conferences, workshops, webinars) using the Microsoft Events API.42MIT
- AlicenseAqualityBmaintenanceWeb search for AI agents across 6 engines (Serper, Brave, Exa, Tavily, Firecrawl, Perplexity) through one search tool. Routes each query to the cheapest engine that clears a quality bar and caches repeats. Hosted, streamable-HTTP, BYOK supported.11MIT

OpenSERP Cloudofficial
AlicenseBqualityCmaintenanceSearch API for AI, SEO & automation. Browser-rendered Google, Bing, Yandex, Baidu, DuckDuckGo and Ecosia results with URL extraction (+image search and engine metadata tools)9602MIT- FlicenseBqualityDmaintenanceEnables querying and retrieving structured event data from the Informa Connect event directory, with support for various filters, pagination, and speaker extraction.9-
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Newscatcher/catchall-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server