MCP Server Airflow Token
Provides comprehensive access to Apache Airflow's REST API, enabling management of DAGs, DAG runs, tasks, variables, connections, pools, XComs, datasets, and monitoring features. Supports both token-based and basic authentication, with special compatibility for Astronomer Cloud deployments.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Server Airflow Tokenlist all DAGs in my production deployment"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-airflow-token
A Model Context Protocol (MCP) server for Apache Airflow with Bearer token authentication support, enabling seamless integration with Astronomer Cloud and standalone Airflow instances.
Based on mcp-server-apache-airflow by Gyeongmo Nathan Yang
This fork enhances the original MCP server with Bearer token authentication support, making it compatible with Astronomer Cloud and other token-based Airflow deployments.
Key Enhancements
✅ Bearer Token Authentication - Primary authentication method for modern Airflow deployments
✅ Astronomer Cloud Compatible - Works seamlessly with Astronomer's managed Airflow
✅ Backward Compatible - Still supports username/password authentication
✅ Enhanced URL Handling - Correctly handles deployment paths like
/deployment-id
Related MCP server: Messages MCP Server
About
This project implements a Model Context Protocol server that wraps Apache Airflow's REST API, allowing MCP clients to interact with Airflow in a standardized way. It uses the official Apache Airflow client library to ensure compatibility and maintainability.
Feature Implementation Status
Feature | API Path | Status |
DAG Management | ||
List DAGs |
| ✅ |
Get DAG Details |
| ✅ |
Pause DAG |
| ✅ |
Unpause DAG |
| ✅ |
Update DAG |
| ✅ |
Delete DAG |
| ✅ |
Get DAG Source |
| ✅ |
Patch Multiple DAGs |
| ✅ |
Reparse DAG File |
| ✅ |
DAG Runs | ||
List DAG Runs |
| ✅ |
Create DAG Run |
| ✅ |
Get DAG Run Details |
| ✅ |
Update DAG Run |
| ✅ |
Delete DAG Run |
| ✅ |
Get DAG Runs Batch |
| ✅ |
Clear DAG Run |
| ✅ |
Set DAG Run Note |
| ✅ |
Get Upstream Dataset Events |
| ✅ |
Tasks | ||
List DAG Tasks |
| ✅ |
Get Task Details |
| ✅ |
Get Task Instance |
| ✅ |
List Task Instances |
| ✅ |
Update Task Instance |
| ✅ |
Clear Task Instances |
| ✅ |
Set Task Instances State |
| ✅ |
Variables | ||
List Variables |
| ✅ |
Create Variable |
| ✅ |
Get Variable |
| ✅ |
Update Variable |
| ✅ |
Delete Variable |
| ✅ |
Connections | ||
List Connections |
| ✅ |
Create Connection |
| ✅ |
Get Connection |
| ✅ |
Update Connection |
| ✅ |
Delete Connection |
| ✅ |
Test Connection |
| ✅ |
Pools | ||
List Pools |
| ✅ |
Create Pool |
| ✅ |
Get Pool |
| ✅ |
Update Pool |
| ✅ |
Delete Pool |
| ✅ |
XComs | ||
List XComs |
| ✅ |
Get XCom Entry |
| ✅ |
Datasets | ||
List Datasets |
| ✅ |
Get Dataset |
| ✅ |
Get Dataset Events |
| ✅ |
Create Dataset Event |
| ✅ |
Get DAG Dataset Queued Event |
| ✅ |
Get DAG Dataset Queued Events |
| ✅ |
Delete DAG Dataset Queued Event |
| ✅ |
Delete DAG Dataset Queued Events |
| ✅ |
Get Dataset Queued Events |
| ✅ |
Delete Dataset Queued Events |
| ✅ |
Monitoring | ||
Get Health |
| ✅ |
DAG Stats | ||
Get DAG Stats |
| ✅ |
Config | ||
Get Config |
| ✅ |
Plugins | ||
Get Plugins |
| ✅ |
Providers | ||
List Providers |
| ✅ |
Event Logs | ||
List Event Logs |
| ✅ |
Get Event Log |
| ✅ |
System | ||
Get Import Errors |
| ✅ |
Get Import Error Details |
| ✅ |
Get Health Status |
| ✅ |
Get Version |
| ✅ |
Setup
Dependencies
This project depends on the official Apache Airflow client library (apache-airflow-client). It will be automatically installed when you install this package.
Environment Variables
Set the following environment variables:
Token Authentication (Recommended)
AIRFLOW_HOST=<your-airflow-host> # Optional, defaults to http://localhost:8080
AIRFLOW_TOKEN=<your-airflow-api-token> # Your Airflow API token
AIRFLOW_API_VERSION=v1 # Optional, defaults to v1Basic Authentication (Alternative)
AIRFLOW_HOST=<your-airflow-host> # Optional, defaults to http://localhost:8080
AIRFLOW_USERNAME=<your-airflow-username>
AIRFLOW_PASSWORD=<your-airflow-password>
AIRFLOW_API_VERSION=v1 # Optional, defaults to v1Note: If AIRFLOW_TOKEN is provided, it will be used for authentication. Otherwise, the server will fall back to basic authentication using username and password.
Usage with Claude Desktop
First, clone the repository:
git clone https://github.com/nikhil-ganage/mcp-server-airflow-tokenAdd to your claude_desktop_config.json:
With Token Authentication (Recommended)
{
"mcpServers": {
"apache-airflow": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"path-to-repo/mcp-server-airflow-token",
"run",
"mcp-server-airflow-token"
],
"env": {
"AIRFLOW_HOST": "https://astro_id.astronomer.run/id",
"AIRFLOW_TOKEN": "TOKEN"
}
}
}
}With Basic Authentication
{
"mcpServers": {
"mcp-server-airflow-token": {
"command": "uvx",
"args": ["mcp-server-airflow-token"],
"env": {
"AIRFLOW_HOST": "https://your-airflow-host",
"AIRFLOW_USERNAME": "your-username",
"AIRFLOW_PASSWORD": "your-password"
}
}
}
}For read-only mode (recommended for safety):
Read-only with Token Authentication
{
"mcpServers": {
"mcp-server-airflow-token": {
"command": "uvx",
"args": ["mcp-server-airflow-token", "--read-only"],
"env": {
"AIRFLOW_HOST": "https://your-airflow-host",
"AIRFLOW_TOKEN": "your-api-token"
}
}
}
}Read-only with Basic Authentication
{
"mcpServers": {
"mcp-server-airflow-token": {
"command": "uvx",
"args": ["mcp-server-airflow-token", "--read-only"],
"env": {
"AIRFLOW_HOST": "https://your-airflow-host",
"AIRFLOW_USERNAME": "your-username",
"AIRFLOW_PASSWORD": "your-password"
}
}
}
}Replace path-to-repo with the actual path where you've cloned the repository.
Astronomer Cloud Configuration Example
For Astronomer Cloud deployments:
{
"mcpServers": {
"mcp-server-airflow-token": {
"command": "uvx",
"args": ["mcp-server-airflow-token"],
"env": {
"AIRFLOW_HOST": "https://your-astronomer-domain.astronomer.run/your-deployment-id",
"AIRFLOW_TOKEN": "your-astronomer-api-token"
}
}
}
}Note: The deployment ID is part of your Astronomer Cloud URL path.
Selecting the API groups
You can select the API groups you want to use by setting the --apis flag.
uv run mcp-server-airflow-token --apis "dag,dagrun"The default is to use all APIs.
Allowed values are:
config
connections
dag
dagrun
dagstats
dataset
eventlog
importerror
monitoring
plugin
pool
provider
taskinstance
variable
xcom
Read-Only Mode
You can run the server in read-only mode by using the --read-only flag. This will only expose tools that perform read operations (GET requests) and exclude any tools that create, update, or delete resources.
uv run mcp-server-airflow-token --read-onlyIn read-only mode, the server will only expose tools like:
Listing DAGs, DAG runs, tasks, variables, connections, etc.
Getting details of specific resources
Reading configurations and monitoring information
Testing connections (non-destructive)
Write operations like creating, updating, deleting DAGs, variables, connections, triggering DAG runs, etc. will not be available in read-only mode.
You can combine read-only mode with API group selection:
uv run mcp-server-airflow-token --read-only --apis "dag,variable"Manual Execution
You can also run the server manually:
make runmake run accepts following options:
Options:
--port: Port to listen on for SSE (default: 8000)--transport: Transport type (stdio/sse, default: stdio)
Or, you could run the sse server directly, which accepts same parameters:
make run-sseInstallation
You can install the server using pip or uvx:
# Using pip
pip install mcp-server-airflow-token
# Using uvx (recommended)
uvx mcp-server-airflow-tokenDevelopment
Setting up Development Environment
Clone the repository:
git clone https://github.com/nikhil-ganage/mcp-server-airflow-token.git
cd mcp-server-airflow-tokenInstall development dependencies:
uv sync --devCreate a
.envfile for environment variables (optional for development):
touch .envNote: No environment variables are required for running tests. The
AIRFLOW_HOSTdefaults tohttp://localhost:8080for development and testing purposes.
Running Tests
The project uses pytest for testing with the following commands available:
# Run all tests
make testCode Quality
# Run linting
make lint
# Run code formatting
make formatContinuous Integration
The project includes a GitHub Actions workflow (.github/workflows/test.yml) that automatically:
Runs tests on Python 3.10, 3.11, and 3.12
Executes linting checks using ruff
Runs on every push and pull request to
mainbranch
The CI pipeline ensures code quality and compatibility across supported Python versions before any changes are merged.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
The package is deployed automatically to PyPI when project.version is updated in pyproject.toml.
Follow semver for versioning.
Please include version update in the PR in order to apply the changes to core logic.
License
Available Tools
66 toolsclear_dag_runD
Clear a DAG run
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| dag_run_id | Yes | ||
| dry_run | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but fails to do so. It does not explain what 'clear' entails (e.g., destructive effects, permissions required, or side effects), nor does it mention the 'dry_run' parameter's purpose or any operational constraints like rate limits.
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 a single sentence, 'Clear a DAG run', which is front-loaded and wastes no words. However, this conciseness comes at the cost of under-specification, but per scoring rules, it earns a high score for 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 complexity of a tool with 3 parameters (2 required), no annotations, no output schema, and 0% schema coverage, the description is completely inadequate. It fails to provide necessary context for safe and effective use, such as behavioral traits, parameter meanings, or 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 description coverage is 0%, and the description adds no information about parameters. It does not explain the meaning of 'dag_id', 'dag_run_id', or the optional 'dry_run' parameter, leaving all three parameters undocumented and their semantics unclear.
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 'Clear a DAG run' restates the tool name with minimal elaboration, making it a tautology. It lacks specificity about what 'clear' means (e.g., deleting, resetting, or removing data) and does not differentiate from sibling tools like 'delete_dag_run' or 'clear_task_instances', leaving the purpose vague.
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. It does not mention prerequisites, context, or exclusions, nor does it reference sibling tools like 'delete_dag_run' or 'clear_task_instances' for comparison, making it misleading for an agent to select appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_task_instancesC
Clear a set of task instances
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| task_ids | No | ||
| start_date | No | ||
| end_date | No | ||
| include_subdags | No | ||
| include_parentdag | No | ||
| include_upstream | No | ||
| include_downstream | No | ||
| include_future | No | ||
| include_past | No | ||
| dry_run | No | ||
| reset_dag_runs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but lacks behavioral details. 'Clear' implies a destructive or mutative action, but it doesn't specify permissions needed, side effects (e.g., data loss, state changes), or response format. This is inadequate for a tool with 12 parameters and potential impact.
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 with no wasted words, making it front-loaded and easy to parse. However, its brevity contributes to underspecification rather than optimal clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, no annotations, no output schema), the description is incomplete. It doesn't cover parameter roles, behavioral traits, or output expectations, leaving significant gaps for an agent to understand and invoke 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 description coverage is 0%, so parameters like 'dag_id', 'task_ids', and booleans (e.g., 'include_subdags', 'dry_run') are undocumented. The description adds no meaning beyond the schema, failing to explain what parameters do or how they interact, which is critical given the complexity.
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 'Clear a set of task instances' states a verb ('Clear') and resource ('task instances'), providing a basic purpose. However, it's vague about what 'Clear' means (e.g., delete, reset, mark as cleared) and doesn't differentiate from sibling tools like 'clear_dag_run' or 'set_task_instances_state', leaving ambiguity in scope and action.
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. The description doesn't mention prerequisites, context (e.g., for debugging, cleanup), or comparisons to siblings like 'clear_dag_run' or 'delete_dag_run', leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_connectionD
Create a connection
| Name | Required | Description | Default |
|---|---|---|---|
| conn_id | Yes | ||
| conn_type | Yes | ||
| host | No | ||
| port | No | ||
| login | No | ||
| password | No | ||
| schema | No | ||
| extra | No |
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 of behavioral disclosure. The description only states 'Create a connection' without explaining what happens when a connection is created - whether it's persistent, what permissions are required, whether it's immediately active, what validation occurs, or what happens if a connection with the same ID already exists. For a mutation tool with 8 parameters and no annotation coverage, this is a critical gap in behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just two words. While this represents under-specification rather than ideal conciseness, from a pure structural perspective, it contains zero wasted words and is front-loaded with the core action. Every word in 'Create a connection' directly contributes to stating the tool's purpose, even if inadequately.
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 completely inadequate for a tool with 8 parameters, no annotations, and no output schema. It doesn't explain what a 'connection' is in this context, what system it belongs to, what the creation entails, what parameters are needed, or what the tool returns. Given the complexity implied by the parameter count and the complete lack of structured documentation, the description fails to provide even basic contextual understanding.
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?
With 8 parameters and 0% schema description coverage, the description provides no information about any parameters. It doesn't explain what 'conn_id' or 'conn_type' represent (the two required parameters), what valid connection types are, or what the purpose of the other 6 optional parameters is. The description fails to compensate for the complete lack of schema documentation, leaving all parameters semantically undefined.
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 a connection' is a tautology that restates the tool name without adding meaningful context. It doesn't specify what type of connection is being created (database, API, network, etc.), what system it's for, or what resources it affects. While it includes a verb ('Create') and resource ('connection'), it lacks specificity and doesn't distinguish this tool from sibling tools like 'update_connection' or 'test_connection'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, when this tool should be used instead of 'update_connection' or 'test_connection', or any context about what constitutes a valid connection. With multiple sibling tools related to connections (create_connection, delete_connection, get_connection, list_connections, test_connection, update_connection), the absence of usage guidance is particularly problematic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_dataset_eventD
Create dataset event
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_uri | Yes | ||
| extra | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Create dataset event' implies a write/mutation operation but reveals nothing about permissions required, whether the operation is idempotent, what happens on failure, rate limits, or what constitutes a successful creation. This leaves critical behavioral aspects completely undocumented.
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 maximally concise at just three words. While this represents severe under-specification rather than ideal conciseness, from a pure structural perspective there is zero wasted verbiage. Every word directly relates to the tool's purpose, though that purpose is inadequately explained.
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 mutation tool with 2 parameters (one required), 0% schema description coverage, no annotations, and no output schema, the description is completely inadequate. It provides no information about what the tool actually does, how to use it properly, what the parameters mean, or what to expect as a result. The agent would be operating almost blindly when attempting 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?
Schema description coverage is 0%, meaning neither parameter ('dataset_uri' or 'extra') has any documentation in the schema. The description provides zero information about these parameters - no explanation of what 'dataset_uri' should contain, what format it expects, what 'extra' data might be appropriate, or how these parameters affect the creation operation. The description fails completely to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create dataset event' is essentially a tautology that restates the tool name. It provides no additional specificity about what 'dataset event' means, what type of event is being created, or what this operation accomplishes. While it includes a verb ('Create') and resource ('dataset event'), it lacks meaningful differentiation from sibling tools like 'get_dataset_events' or 'delete_dataset_queued_event'.
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 absolutely no guidance on when to use this tool versus alternatives. There are no contextual cues, prerequisites, or exclusions mentioned. Given the sibling tools include operations like 'get_dataset_events' and 'delete_dataset_queued_event', the agent has no information about when creation is appropriate versus retrieval or deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_variableD
Create a variable
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| value | Yes | ||
| description | No |
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. 'Create a variable' implies a write operation but offers no details on permissions required, whether creation is idempotent, error conditions, or what happens on success/failure. It lacks critical context like rate limits, side effects, or response format, leaving the agent with insufficient information to use the tool safely and effectively.
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 just three words, making it front-loaded and free of unnecessary information. However, this conciseness comes at the cost of being under-specified, though that is evaluated in other dimensions rather than penalizing brevity here.
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 (a write operation with 3 parameters), lack of annotations, 0% schema description coverage, and no output schema, the description is completely inadequate. It does not compensate for missing structured data, failing to explain purpose, usage, behavior, parameters, or expected outcomes, making it insufficient for effective tool 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?
The input schema has 3 parameters with 0% description coverage, meaning none are documented in the schema. The description 'Create a variable' provides no information about parameters, failing to explain what 'key', 'value', or 'description' represent, their formats, constraints, or relationships. This leaves all parameters semantically undefined, which is inadequate for a tool with multiple inputs.
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 a variable' is a tautology that merely restates the tool name without adding any meaningful context. It specifies the verb 'create' and the resource 'variable', but provides no details about what kind of variable, in what system, or for what purpose. This fails to distinguish it from sibling tools like 'update_variable' or 'delete_variable' beyond the basic action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, context for creation, or comparisons to sibling tools like 'update_variable', 'delete_variable', or 'get_variable'. Without such information, an agent cannot make informed decisions about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_connectionC
Delete a connection by ID
| Name | Required | Description | Default |
|---|---|---|---|
| conn_id | 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 of behavioral disclosure. 'Delete' implies a destructive, irreversible mutation, but the description doesn't specify permissions required, confirmation steps, side effects (e.g., impact on dependent workflows), or error handling. This is a significant gap for a destructive tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations, 0% schema description coverage, and no output schema, the description is incomplete. It lacks critical details like behavioral traits (e.g., irreversibility), parameter context, and expected outcomes, leaving the agent with insufficient guidance for safe and effective 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 0%, so the description must compensate. It mentions 'by ID', which clarifies that 'conn_id' is an identifier, but doesn't explain the ID format, source (e.g., from 'list_connections'), or validation rules. With one undocumented parameter, this adds minimal value beyond the schema's basic structure.
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') and the resource ('a connection by ID'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'delete_dag' or 'delete_variable', but the resource specificity ('connection') provides some distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While sibling tools include 'delete_dag', 'delete_variable', etc., the description doesn't mention prerequisites (e.g., needing the connection ID from 'get_connection' or 'list_connections'), exclusions, or comparisons to similar deletion tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dagC
Delete a DAG
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | 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. 'Delete a DAG' implies a destructive mutation, but it doesn't disclose critical behaviors like whether deletion is permanent, requires specific permissions, affects related resources (e.g., runs or tasks), or has side effects. This is a significant gap for a destructive 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 extremely concise with just three words, front-loading the essential action and resource. There's no wasted language, making it efficient for quick understanding, though this brevity contributes to gaps in other dimensions.
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 destructive nature, no annotations, no output schema, and 0% schema coverage, the description is incomplete. It fails to address key aspects like behavioral risks, parameter details, or usage context, leaving the agent with insufficient information to invoke it safely and correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, with one parameter 'dag_id' undocumented in the schema. The description adds no parameter information beyond what's inferred from the tool name. Since there's only one parameter, the baseline is 4, but the description doesn't compensate for the lack of schema details, such as explaining what 'dag_id' represents or its format.
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 'Delete a DAG' clearly states the action (delete) and resource (DAG), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'delete_dag_run' or 'delete_dataset_queued_events', which also delete related resources, so it lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'delete_dag_run' (deletes specific runs) and 'clear_dag_run' (clears runs), there's no indication of when this tool is appropriate, such as for deleting the entire DAG definition versus its instances.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dag_dataset_queued_eventC
Delete a queued Dataset event for a DAG
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| uri | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the action without behavioral details. It does not disclose if deletion is permanent, requires specific permissions, has side effects (e.g., on DAG runs), or error conditions. 'Delete' implies mutation, but critical context like safety or impact is missing, leaving significant 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 a single, direct sentence with zero wasted words. It is front-loaded with the core action and target, making it efficient and easy to parse. No unnecessary details or redundancy are 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?
For a deletion tool with no annotations, 2 parameters (0% schema coverage), and no output schema, the description is incomplete. It lacks parameter explanations, behavioral context (e.g., idempotency, errors), and output expectations. The agent cannot reliably use this tool without guessing at critical details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but adds no parameter information. It does not explain what 'dag_id' or 'uri' represent, their formats, or how they identify the event. With 2 undocumented parameters, the description fails to provide meaningful semantics beyond the schema's basic structure.
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') and target ('a queued Dataset event for a DAG'), making the purpose evident. It distinguishes from siblings like 'delete_dag_dataset_queued_events' (plural) and 'delete_dataset_queued_events' (no DAG context), though not explicitly. However, it lacks specificity about what 'queued' means or the event's nature, preventing a perfect score.
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. It does not mention prerequisites (e.g., event must exist), exclusions, or compare to siblings like 'delete_dag_dataset_queued_events' for bulk operations. The agent must infer usage from the name alone, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dag_dataset_queued_eventsC
Delete queued Dataset events for a DAG
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| before | No |
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 states 'Delete', implying a destructive mutation, but doesn't disclose critical behaviors: whether deletion is permanent, requires specific permissions, affects DAG execution, or has side effects. For a destructive tool with zero annotation coverage, this is a significant gap in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and target, making it easy to parse quickly. Every word earns its place in conveying the essential 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 a destructive tool with 2 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It lacks parameter details, behavioral warnings, usage context, and output expectations. For this complexity level, it should provide more guidance on what 'delete' entails and how to use the 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 description coverage is 0%, so the schema provides no parameter documentation. The description mentions 'for a DAG', which hints at the 'dag_id' parameter, but doesn't explain 'before' or provide any details on parameter formats, constraints, or examples. It adds minimal value beyond what's inferable from the tool name.
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 'Delete queued Dataset events for a DAG' clearly states the action (delete) and target (queued Dataset events for a DAG). It distinguishes from siblings like 'delete_dag_dataset_queued_event' (singular) and 'delete_dataset_queued_events' (not DAG-specific), but doesn't explicitly contrast them. The purpose is specific but lacks full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'delete_dag_dataset_queued_event' (singular) or 'clear_dag_run'. The description implies it's for deleting queued events, but offers no context on prerequisites, timing, or exclusions. Usage is implied from the name and purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dag_runB
Delete a DAG run by DAG ID and DAG run ID
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| dag_run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the deletion action but doesn't specify if this is permanent, reversible, requires specific permissions, has side effects (e.g., on related tasks), or what happens on success/failure. This is a significant gap 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 a single, clear sentence with zero wasted words. It's front-loaded with the core action and efficiently specifies the identification method. 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 destructive tool with no annotations and no output schema, the description is incomplete. It lacks behavioral details (permanence, permissions, effects), error handling, and return values. Given the complexity of deletion operations in this context, more guidance is 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?
The description adds meaningful context beyond the input schema: it clarifies that 'dag_id' and 'dag_run_id' are used together to identify the specific DAG run to delete. With 0% schema description coverage and only 2 parameters, this provides adequate compensation, though it doesn't explain parameter formats or constraints.
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') and target resource ('a DAG run'), specifying it's done by DAG ID and DAG run ID. This distinguishes it from generic deletion tools like 'delete_dag' or 'delete_connection' in the sibling list, though it doesn't explicitly differentiate from 'clear_dag_run' which might have different semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'clear_dag_run' or 'delete_dag', nor any prerequisites or conditions for its use. The description only states what it does, not when or why to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dataset_queued_eventsC
Delete queued Dataset events for a Dataset
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes | ||
| before | No |
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 states this is a deletion operation, implying it's destructive, but doesn't disclose critical behavioral traits: whether deletion is permanent or reversible, what permissions are required, if there are rate limits, or what happens to associated data. For a destructive tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the core action and target.
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 destructive deletion tool with 2 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'queued events' are, the deletion's impact, parameter meanings, or expected outcomes. The context demands more comprehensive guidance.
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 0%, so the schema provides no parameter documentation. The description mentions 'for a Dataset' which hints at the 'uri' parameter's purpose, but doesn't explain what 'uri' represents or the optional 'before' parameter's role. With 2 parameters completely undocumented, the description adds minimal semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and target resource ('queued Dataset events for a Dataset'), making the purpose understandable. However, it doesn't distinguish this tool from its sibling 'delete_dag_dataset_queued_event' or 'delete_dag_dataset_queued_events', which appear to perform similar operations on different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With multiple deletion tools in the sibling list (e.g., delete_dag_dataset_queued_event, delete_dag_dataset_queued_events), the description offers no context about differences in scope, prerequisites, or appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_poolD
Delete a pool
| Name | Required | Description | Default |
|---|---|---|---|
| pool_name | 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 of behavioral disclosure. 'Delete a pool' implies a destructive, irreversible mutation, but it doesn't specify permissions required, side effects (e.g., impact on dependent resources), error conditions, or confirmation prompts. This is inadequate for a destructive operation with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at three words, with no wasted text. It's front-loaded with the core action, though this brevity comes at the cost of completeness. Every word earns its place by stating the verb and object directly.
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 destructive nature, lack of annotations, no output schema, and minimal parameter documentation, the description is severely incomplete. It doesn't address safety, return values, error handling, or integration with sibling tools (e.g., get_pools to list deletable pools). For a mutation tool in a complex system with many siblings, this is inadequate.
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 1 parameter with 0% description coverage, so the schema provides no semantic context. The description mentions 'pool' but doesn't explain the pool_name parameter—what format it expects, how to identify valid pools, or if it's case-sensitive. It adds minimal value beyond the schema's structural definition.
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 'Delete a pool' is a tautology that merely restates the tool name without adding specificity. It doesn't clarify what a 'pool' is in this context (e.g., resource pool, connection pool, task pool) or distinguish this from similar deletion tools like delete_connection or delete_dag. While the verb 'delete' is clear, the resource remains ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the pool must be empty), consequences (e.g., if deletion is permanent), or relationships to sibling tools like get_pool or patch_pool. With no usage context, an agent cannot make informed decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_variableC
Delete a variable by key
| Name | Required | Description | Default |
|---|---|---|---|
| key | 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 deletes a variable, implying a destructive mutation, but lacks details on permissions required, whether deletion is permanent or reversible, error handling (e.g., if the key doesn't exist), or side effects. This is a significant gap for a destructive operation with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It's front-loaded with the core action and resource, making it highly efficient and easy to parse at a glance.
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 destructive nature, lack of annotations, no output schema, and low parameter coverage, the description is inadequate. It doesn't address behavioral aspects like safety, errors, or return values, leaving the agent with insufficient context to use the tool reliably in complex scenarios.
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 0%, so the description must compensate. It mentions 'by key', which clarifies the single parameter's role, but doesn't explain what a 'key' is (e.g., format, constraints, or examples). This adds minimal value beyond the schema's property name 'key', leaving the parameter largely undocumented.
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') and resource ('a variable by key'), making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'delete_connection' or 'delete_dag', but the specific resource 'variable' is unambiguous within the context of the toolset.
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. For example, it doesn't mention prerequisites (e.g., the variable must exist), contrast with 'clear_variable' if such a tool existed, or specify error conditions. The description is purely functional without contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_dagsC
Fetch all DAGs
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| order_by | No | ||
| tags | No | ||
| only_active | No | ||
| paused | No | ||
| dag_id_pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Fetch' implies a read operation, but it doesn't disclose behavioral traits like whether this requires authentication, rate limits, pagination behavior (implied by limit/offset but not explained), or what format the returned DAGs are in. The description is too minimal to provide adequate transparency for a tool with 7 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 at just three words, with zero wasted language. It's front-loaded with the core action, though this brevity comes at the cost of completeness.
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 7 parameters with 0% schema coverage, no annotations, no output schema, and multiple sibling tools, the description is incomplete. It doesn't explain what DAGs are (Airflow Directed Acyclic Graphs), how results are structured, or how parameters interact. For a list/fetch tool with rich filtering options, this is inadequate.
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 0%, so the schema provides only parameter names and types without explanations. The description 'Fetch all DAGs' adds no meaning about any of the 7 parameters—it doesn't mention filtering by tags, active status, dag_id_pattern, ordering, or pagination. This fails to compensate for the complete lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Fetch all DAGs' states a clear verb ('fetch') and resource ('DAGs'), but it's vague about scope and doesn't distinguish from siblings like 'get_dag' (singular) or 'get_dag_details'. It doesn't specify what 'all' means in context of the filtering parameters available.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_dag' (for single DAG) or 'get_dag_details'. The description doesn't mention any prerequisites, context, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_configD
Get current configuration
| Name | Required | Description | Default |
|---|---|---|---|
| section | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden but offers no behavioral details. It doesn't disclose if this is a read-only operation, requires permissions, has side effects, or involves rate limits. The vague 'Get' implies retrieval but lacks transparency on safety or constraints.
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 a single sentence, 'Get current configuration', which is front-loaded and wastes no words. However, this brevity comes at the cost of under-specification, but it earns full marks for conciseness as every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, no output schema, and a vague purpose, the description is incomplete. It fails to compensate for missing structured data, leaving the agent without necessary context for a tool that likely retrieves system or application settings.
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 1 parameter with 0% description coverage, and the tool description adds no parameter information. It doesn't explain what 'section' means, its format, or how it affects the retrieval, leaving the parameter undocumented and unclear.
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 current configuration' restates the tool name 'get_config' with minimal elaboration, making it tautological. It specifies the verb 'Get' and resource 'configuration' but lacks detail on what configuration entails or scope, failing to distinguish it from sibling tools like get_variable or get_connection.
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. With many sibling tools for retrieving specific resources (e.g., get_variable, get_connection), the description offers no context, prerequisites, or exclusions, leaving the agent without direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connectionC
Get a connection by ID
| Name | Required | Description | Default |
|---|---|---|---|
| conn_id | 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 it's a 'Get' operation, implying read-only behavior, but doesn't disclose any behavioral traits such as error handling (e.g., what happens if the ID is invalid), authentication requirements, rate limits, or return format. The description is minimal and lacks critical 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 extremely concise with a single sentence 'Get a connection by ID', which is front-loaded and wastes no words. It efficiently conveys the core action without unnecessary details, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a read operation with 1 parameter), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It fails to provide sufficient context for effective use, such as what data is returned, error conditions, or how it fits into the broader system with many 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 has 1 parameter with 0% description coverage, so the schema provides no semantic information. The description mentions 'by ID', which adds some meaning by indicating the parameter is an identifier, but it doesn't specify the ID format, source, or constraints, leaving significant gaps in 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 'Get a connection by ID' clearly states the verb ('Get') and resource ('connection'), but it's vague about what a 'connection' entails in this context. It distinguishes from siblings like 'create_connection' or 'delete_connection' by focusing on retrieval, but lacks specificity about the connection type or system.
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. It doesn't mention prerequisites (e.g., needing a valid connection ID), when not to use it, or compare it to similar tools like 'list_connections' for browsing connections without a specific ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dagC
Get a DAG by ID
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | 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 'Get a DAG by ID', implying a read-only operation, but does not disclose behavioral traits like authentication needs, rate limits, error handling, or what data is returned (e.g., metadata, tasks, status). For a tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence, 'Get a DAG by ID', which is front-loaded and wastes no words. It efficiently conveys the core action, though this brevity contributes to gaps in other dimensions.
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 (simple retrieval but with many sibling alternatives), no annotations, no output schema, and low parameter coverage, the description is incomplete. It does not provide enough context for an AI agent to understand when to use it, what it returns, or how it behaves, making it inadequate for effective tool selection.
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 1 parameter with 0% description coverage, and the description does not add any meaning beyond the schema. It mentions 'by ID' but does not explain what 'dag_id' represents, its format, or constraints. With low schema coverage, the description fails to compensate, leaving the parameter poorly documented.
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 DAG by ID' clearly states the verb ('Get') and resource ('a DAG'), but it's vague about what 'Get' entails—whether it retrieves metadata, configuration, or status. It distinguishes from siblings like 'delete_dag' or 'patch_dag' by implying retrieval, but lacks specificity compared to tools like 'get_dag_details' or 'get_dag_source', which might offer more detailed information.
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. With siblings such as 'get_dag_details', 'get_dag_source', and 'fetch_dags', the description does not indicate if this is for basic retrieval, detailed info, or batch operations. There's no mention of prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dag_dataset_queued_eventC
Get a queued Dataset event for a DAG
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| uri | 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 of behavioral disclosure. The description only states what the tool does ('Get a queued Dataset event'), but doesn't disclose any behavioral traits such as whether this is a read-only operation, what format the event data is returned in, error conditions, or performance characteristics. For a tool with zero annotation coverage, this is 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 extremely concise at just 7 words, which is appropriate for a simple-sounding retrieval tool. It's front-loaded with the core purpose. However, the extreme brevity comes at the cost of completeness, making it more under-specified than optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no annotations, no output schema, and the input schema has 0% description coverage, the description is incomplete. It doesn't explain what a 'queued Dataset event' is, what data is returned, or how the two parameters identify the specific event. For a tool that appears to retrieve potentially complex event data, this minimal description leaves too many questions unanswered.
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 0% description coverage, so the schema provides no semantic information about the two required parameters (dag_id and uri). The description doesn't mention either parameter or explain what they represent, leaving the agent to guess their meaning and format. The description fails to compensate for the schema's lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose as 'Get a queued Dataset event for a DAG', which is a clear verb+resource combination. However, it doesn't distinguish this tool from its sibling 'get_dag_dataset_queued_events' (plural), which appears to fetch multiple events. The description is vague about whether this retrieves a single specific event or just any queued event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use this versus 'get_dag_dataset_queued_events' (plural) or 'get_dataset_queued_events', nor does it specify prerequisites or exclusions. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dag_dataset_queued_eventsC
Get queued Dataset events for a DAG
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | 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 'Get queued Dataset events for a DAG', implying a read-only operation, but doesn't disclose behavioral traits such as permissions required, rate limits, pagination, or what 'queued' means in practice. This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded and appropriately sized for the tool's purpose, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and low schema description coverage (0%), the description is incomplete. It lacks details on behavior, return values, and parameter semantics, making it inadequate for a tool that likely returns event data. More context is needed to fully understand its 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?
The input schema has 1 parameter (dag_id) with 0% description coverage. The description doesn't add any meaning beyond the schema, as it doesn't explain what 'dag_id' represents or its format. With low schema coverage, the description fails to compensate, but the single parameter is straightforward, so a baseline 3 is appropriate given minimal complexity.
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 queued Dataset events for a DAG' clearly states the action (get) and resource (queued Dataset events for a DAG), but it's somewhat vague about what 'queued Dataset events' specifically entails. It doesn't differentiate from sibling tools like 'get_dag_dataset_queued_event' (singular) or 'get_dataset_queued_events' (general), leaving ambiguity in 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. With siblings like 'get_dag_dataset_queued_event' (singular) and 'get_dataset_queued_events' (general), the description lacks explicit context or exclusions, offering only basic usage without distinguishing from related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dag_detailsC
Get a simplified representation of DAG
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| fields | No |
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 states this is a 'Get' operation, implying read-only behavior, but doesn't disclose any behavioral traits like authentication requirements, rate limits, error conditions, or what 'simplified' entails in practice. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.
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 a single sentence that directly states the tool's function. There's no wasted language or unnecessary elaboration, making it front-loaded and easy to parse. 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?
Given the complexity of DAG operations, 2 parameters with 0% schema coverage, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'simplified' means, how it differs from other DAG tools, what the 'fields' parameter controls, or what the return format looks like. For a tool in this context, more detail is 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 description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'DAG' which relates to 'dag_id', but doesn't explain what 'fields' parameter does or what 'simplified representation' means in terms of output. With 2 parameters and no schema descriptions, the description adds minimal semantic value beyond the parameter names themselves.
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 the tool 'Get a simplified representation of DAG' which provides a basic verb+resource combination ('Get' + 'DAG representation'). However, it's vague about what 'simplified' means compared to other DAG-related tools like 'get_dag' or 'get_dag_tasks', and doesn't clearly distinguish from siblings. It avoids tautology but lacks 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?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'get_dag', 'get_dag_tasks', and 'get_dag_stats', there's no indication of what makes this 'simplified representation' unique or when it's preferred over other DAG retrieval tools. Usage is implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dag_runC
Get a DAG run by DAG ID and DAG run ID
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| dag_run_id | 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 of behavioral disclosure. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't clarify aspects like error handling (e.g., what happens if IDs are invalid), authentication requirements, rate limits, or the format of the returned DAG run. This leaves significant gaps for an agent to understand how the tool behaves in practice.
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, direct sentence with zero wasted words. It front-loads the core action and parameters efficiently, making it easy to parse. Every part of the sentence contributes essential information 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 complexity (a read operation with 2 required parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral traits, parameter details, or return values, leaving the agent with inadequate context to use the tool effectively beyond basic invocation. More information is needed to compensate for the missing structured data.
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 0%, meaning parameters are undocumented in the schema. The description mentions 'DAG ID and DAG run ID' but adds minimal semantic value—it doesn't explain what these IDs represent, their format (e.g., strings, numeric), or where to obtain them. For a tool with 2 required parameters, this is insufficient to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a DAG run') with specific identifiers ('by DAG ID and DAG run ID'), making the purpose unambiguous. It doesn't explicitly differentiate from sibling tools like 'get_dag_runs' (plural) or 'get_dag_details', but the specificity of requiring both IDs implies it retrieves a single run rather than a list or 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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_dag_runs' for listing multiple runs or 'get_dag_details' for broader DAG information, nor does it specify prerequisites such as needing existing DAG and run IDs. Usage is implied only by the parameter names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dag_runsD
Get DAG runs by ID
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| limit | No | ||
| offset | No | ||
| execution_date_gte | No | ||
| execution_date_lte | No | ||
| start_date_gte | No | ||
| start_date_lte | No | ||
| end_date_gte | No | ||
| end_date_lte | No | ||
| updated_at_gte | No | ||
| updated_at_lte | No | ||
| state | No | ||
| order_by | No |
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. The description reveals nothing about whether this is a read-only operation, whether it has side effects, what permissions are required, rate limits, pagination behavior (despite having limit/offset parameters), or what format the results will be in. For a tool with 13 parameters and no annotation coverage, this is a significant gap in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 4 words. While this represents under-specification rather than ideal conciseness, according to the scoring rules, conciseness focuses on appropriate sizing and front-loading. The description wastes no words and gets straight to the point, even if that point is insufficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (13 parameters, no annotations, no output schema), the description is completely inadequate. It doesn't explain what the tool returns, how to interpret the numerous filtering parameters, what DAG runs are in this context, or any behavioral characteristics. For a data retrieval tool with extensive filtering options, this minimal description fails to provide the context needed for effective 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 0%, meaning none of the 13 parameters have descriptions in the schema. The tool description mentions 'by ID' which only hints at the 'dag_id' parameter, leaving 12 other parameters completely undocumented. The description fails to explain what parameters like 'execution_date_gte', 'state', or 'order_by' do, what values they accept, or how they affect the query. With low schema coverage, the description should compensate but doesn't.
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 DAG runs by ID' is a tautology that essentially restates the tool name 'get_dag_runs'. It specifies the verb 'Get' and resource 'DAG runs', but lacks specificity about what 'by ID' means (the schema shows dag_id is required, but the description doesn't clarify this is filtering by DAG identifier). It doesn't distinguish this tool from sibling tools like 'get_dag_run' (singular) or 'get_dag_runs_batch'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools like 'get_dag_run', 'get_dag_runs_batch', and 'get_dag_details', there's no indication of when this specific filtering/list tool is appropriate versus those other options. No prerequisites, exclusions, or comparative context is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dag_runs_batchC
List DAG runs (batch)
| Name | Required | Description | Default |
|---|---|---|---|
| dag_ids | No | ||
| execution_date_gte | No | ||
| execution_date_lte | No | ||
| start_date_gte | No | ||
| start_date_lte | No | ||
| end_date_gte | No | ||
| end_date_lte | No | ||
| state | No | ||
| order_by | No | ||
| page_offset | No | ||
| page_limit | No |
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 of behavioral disclosure. It mentions 'batch' but doesn't explain what this entails (e.g., pagination behavior, rate limits, or performance implications). For a read operation with 11 parameters, this lack of detail on how the tool behaves (e.g., response format, error handling) is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with only three words, which is efficient and front-loaded. However, it's arguably under-specified rather than optimally concise, as it could benefit from a bit more detail to clarify the 'batch' aspect without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain the tool's behavior, parameter usage, or output, leaving the agent with insufficient context to use the tool effectively beyond basic inference from the name and 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?
With 0% schema description coverage for 11 parameters, the description does not compensate by explaining any parameters. It mentions 'batch' but doesn't clarify how this relates to parameters like 'dag_ids', 'page_offset', or 'page_limit'. The description adds minimal value beyond what the schema's property names imply.
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 DAG runs (batch)' states the verb ('List') and resource ('DAG runs'), which clarifies the basic purpose. However, it's vague about what 'batch' means (e.g., multiple DAGs, pagination, or bulk retrieval) and doesn't distinguish it from the sibling tool 'get_dag_runs', leaving ambiguity about when to use one over the other.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_dag_runs' or other listing tools. The description lacks context about prerequisites, typical use cases, or exclusions, leaving the agent to infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dag_sourceD
Get a source code
| Name | Required | Description | Default |
|---|---|---|---|
| file_token | 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 of behavioral disclosure. 'Get a source code' gives no information about whether this is a read-only operation, whether it requires specific permissions, what format the source code is returned in, potential rate limits, or error conditions. For a tool with no annotation coverage, this description provides essentially zero behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with just three words, this is an example of under-specification rather than effective conciseness. The description doesn't earn its place by providing necessary information. A proper concise description would still include essential context about what's being retrieved and for what 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 a tool with 1 required parameter, no annotations, no output schema, and 0% schema description coverage, the description 'Get a source code' is completely inadequate. It provides no information about what the tool returns, how to use it correctly, what the parameter means, or how this differs from similar sibling tools. This leaves the AI agent with insufficient information to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about the single required parameter 'file_token'. With 0% schema description coverage (the schema has no descriptions for the parameter), the description fails completely to compensate. It doesn't explain what a file_token is, how to obtain it, what format it should be in, or what it represents in the context of getting source code.
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 source code' is a tautology that essentially restates the tool name 'get_dag_source' without adding meaningful specificity. It doesn't clarify what type of source code (DAG definition, Python file, configuration) or from what system (Airflow DAG repository, version control, etc.). Compared to sibling tools like 'get_dag' or 'get_dag_details', it fails to distinguish its specific purpose.
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 absolutely no guidance on when to use this tool versus alternatives. With many sibling tools available (like get_dag, get_dag_details, get_dag_tasks), there's no indication whether this retrieves raw DAG definition files, Python source code for tasks, or something else. No context about prerequisites, dependencies, or appropriate scenarios is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dag_statsD
Get DAG stats
| Name | Required | Description | Default |
|---|---|---|---|
| dag_ids | No |
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 of behavioral disclosure. 'Get DAG stats' provides no information about what the tool actually does behaviorally - whether it's a read-only operation, what permissions might be required, whether it has side effects, what format the statistics are returned in, or any limitations. The description is completely inadequate for understanding the tool's 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 extremely concise at just three words, which could be appropriate if it were more informative. However, this brevity comes at the cost of being under-specified rather than efficiently informative. There's no structure to speak of - it's a single phrase with no front-loading of critical 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 complexity of DAG systems, the lack of annotations, 0% schema description coverage, and no output schema, the description is completely inadequate. 'Get DAG stats' doesn't explain what statistics are returned, how they're formatted, what the optional dag_ids parameter does, or any behavioral characteristics. For a tool in a complex workflow orchestration system with many similar tools, this minimal description provides insufficient 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?
The input schema has 1 parameter (dag_ids) with 0% description coverage, meaning the schema provides no semantic information about this parameter. The description 'Get DAG stats' adds nothing about what the dag_ids parameter does, whether it's required, what format it expects, or how it affects the results. For a tool with undocumented parameters, the description fails to compensate.
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 DAG stats' is a tautology that essentially restates the tool name. While it indicates the tool retrieves statistics about DAGs (Directed Acyclic Graphs), it lacks specificity about what kind of statistics (e.g., execution metrics, status counts, performance data) or what scope of DAGs it covers. It doesn't differentiate from sibling tools like get_dag, get_dag_details, or get_dag_runs which also retrieve DAG-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools that retrieve DAG information (get_dag, get_dag_details, get_dag_runs, get_dag_tasks, etc.), there's no indication of what makes this tool unique or when it should be preferred. No context about prerequisites, constraints, or typical use cases is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dag_tasksD
Get tasks for DAG
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | 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 only states 'Get tasks for DAG', offering no behavioral details such as read-only vs. destructive nature, authentication needs, rate limits, error handling, or output format. This is inadequate for a tool with unknown 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 extremely concise with a single sentence 'Get tasks for DAG', which is front-loaded and wastes no words. However, this conciseness comes at the cost of under-specification, but structurally it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, no output schema, and a simple but unclear purpose, the description is incomplete. It fails to provide necessary context for a tool that interacts with DAG tasks, lacking details on behavior, parameters, and usage relative to siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, with one parameter 'dag_id' undocumented in the schema. The description adds no parameter information, failing to explain what 'dag_id' is, its format, or examples. This leaves the parameter's meaning and usage unclear.
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 tasks for DAG' restates the tool name 'get_dag_tasks' almost verbatim, making it tautological. It specifies the resource ('tasks for DAG') but lacks a clear verb beyond 'Get', which is generic. It does not distinguish from siblings like 'get_tasks' or 'get_task', leaving ambiguity about 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. Sibling tools include 'get_tasks' and 'get_task', but the description offers no context on differences, prerequisites, or exclusions. This leaves the agent without direction for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datasetC
Get a dataset by URI
| Name | Required | Description | Default |
|---|---|---|---|
| uri | 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 of behavioral disclosure. It only states 'Get a dataset by URI' without detailing what 'Get' involves (e.g., read-only operation, potential side effects, authentication needs, rate limits, or error handling). This leaves critical behavioral traits unspecified for a tool with unknown complexity.
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 ('Get a dataset by URI') that is front-loaded with the core action. There is no wasted text, making it appropriately sized for the minimal information provided.
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 is unknown, no annotations, no output schema, and low schema coverage, the description is incomplete. It lacks details on what 'Get' returns, error conditions, or behavioral context, making it inadequate for effective tool selection and invocation by an AI agent.
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 1 parameter ('uri') with 0% description coverage, and the description adds minimal meaning by specifying 'by URI'. However, it doesn't explain the URI format, expected values, or constraints, failing to compensate for the low schema coverage. This leaves the parameter semantics largely undocumented.
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 dataset by URI' clearly states the verb ('Get') and resource ('dataset'), but it's vague about what 'Get' entails (e.g., retrieve metadata, fetch content, or download). It distinguishes from siblings like 'get_datasets' (plural) by focusing on a single dataset, but lacks specificity on the dataset type or context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't explain if this is for retrieving a specific dataset identified by URI, as opposed to 'get_datasets' for listing multiple datasets or other sibling tools for related operations. The description implies usage by mentioning 'by URI' but offers no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataset_eventsD
Get dataset events
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| order_by | No | ||
| dataset_id | No | ||
| source_dag_id | No | ||
| source_task_id | No | ||
| source_run_id | No | ||
| source_map_index | No |
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 of behavioral disclosure. 'Get dataset events' gives no information about whether this is a read-only operation, what permissions are required, whether it's paginated, what format the results come in, or any rate limits. For a tool with 8 parameters and no output schema, this leaves the agent completely in the dark about behavioral characteristics.
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 (three words) but this is under-specification rather than effective brevity. While it's front-loaded with the core action, every sentence should earn its place, and this single phrase doesn't earn its place by providing sufficient value. It's structured as a simple verb-noun phrase but lacks the substance needed for a tool of this 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?
For a tool with 8 parameters, no annotations, no output schema, and multiple similar sibling tools, the description is completely inadequate. It doesn't explain what the tool returns, how to interpret parameters, when to use it versus alternatives, or any behavioral characteristics. The agent would struggle to use this tool correctly given the minimal information provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 8 parameters and 0% schema description coverage, the description provides absolutely no information about any parameters. It doesn't mention that parameters like dataset_id, source_dag_id, or order_by exist, let alone explain what they mean or how they affect the results. The description fails to compensate for the complete lack of parameter documentation in 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 'Get dataset events' is a tautology that restates the tool name without adding meaningful information. It doesn't specify what 'get' means (list, retrieve, fetch?), what 'dataset events' are, or how this differs from sibling tools like 'get_dataset_queued_events' or 'get_upstream_dataset_events'. While it identifies the resource (dataset events), the verb is generic and lacks 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?
The description provides zero guidance on when to use this tool versus alternatives. There are multiple related tools in the sibling list (get_dataset_queued_events, get_upstream_dataset_events, get_event_logs) with no indication of how this tool differs or when it's appropriate. No context about prerequisites, typical use cases, or exclusions is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataset_queued_eventsC
Get queued Dataset events for a Dataset
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action without behavioral details. It doesn't disclose whether this is a read-only operation, what permissions are needed, how results are returned (e.g., pagination), or any rate limits. This leaves significant gaps for a tool that likely interacts with event queues.
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 with no wasted words. It's front-loaded with the core action, though it could be more informative without sacrificing brevity. The structure is clear but minimal.
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, 0% schema coverage, no output schema, and a parameter-heavy sibling list, the description is incomplete. It doesn't address key aspects like return format, error conditions, or how 'queued' differs from other event types, making it inadequate for safe and effective use by an agent.
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 0%, and the description adds no parameter information beyond implying a Dataset is involved. It doesn't explain what 'uri' represents, its format, or how it relates to queued events. With one undocumented parameter, the description fails to compensate for the schema's lack of 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 'Get queued Dataset events for a Dataset' clearly states the verb ('Get') and resource ('queued Dataset events'), but it's vague about what 'queued' means and doesn't differentiate from siblings like 'get_dataset_events' or 'get_dag_dataset_queued_events'. It provides basic purpose but lacks 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 guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context, or exclusions, leaving the agent with no hints about appropriate usage scenarios compared to related tools in the list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datasetsD
List datasets
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| order_by | No | ||
| uri_pattern | No | ||
| dag_ids | No |
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 of behavioral disclosure. 'List datasets' gives minimal information - it suggests a read operation but doesn't disclose pagination behavior (despite limit/offset parameters), authentication requirements, rate limits, error conditions, or what format the datasets are returned in. For a tool with 5 parameters and no annotation coverage, 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 extremely concise at just two words. While this represents under-specification rather than ideal conciseness, it's not verbose or poorly structured. Every word earns its place, though more words would be beneficial for this complex tool.
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, no output schema), the description is completely inadequate. It doesn't explain what the tool returns, how to interpret parameters, behavioral characteristics, or when to use it versus sibling tools. For a list operation with filtering and pagination capabilities, this minimal description leaves the agent guessing about fundamental aspects of tool usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage (all parameters have only titles like 'Limit', 'Offset', etc.), the description provides zero information about any parameters. It doesn't mention that filtering by uri_pattern or dag_ids is possible, nor explain what order_by expects, or how limit/offset work together. The description fails completely to compensate for the schema's lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List datasets' is a tautology that essentially restates the tool name 'get_datasets'. While it indicates a listing/retrieval action, it doesn't specify what kind of datasets, from what system, or what scope. Compared to sibling tools like 'get_dataset' (singular) or 'get_dataset_events', this description fails to distinguish itself meaningfully.
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 absolutely no guidance about when to use this tool versus alternatives. With sibling tools like 'get_dataset' (singular), 'get_dataset_events', and 'get_dataset_queued_events', there's no indication of when this list operation is appropriate versus those more specific retrieval tools. No context, prerequisites, or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_logC
Get a specific log entry by ID
| Name | Required | Description | Default |
|---|---|---|---|
| event_log_id | 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 it 'gets' a log entry, implying a read-only operation, but doesn't disclose behavioral traits like authentication needs, rate limits, error handling (e.g., what happens if the ID doesn't exist), or return format. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, no output schema, and a sibling tool ('get_event_logs'), the description is incomplete. It doesn't explain the return values, error cases, or how it differs from similar tools, leaving gaps for the agent to infer behavior in a complex environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'by ID', which aligns with the single parameter 'event_log_id', but schema description coverage is 0%, so the schema provides no details about the parameter. The description adds minimal meaning (it's an ID) but doesn't specify format, constraints, or examples, failing to compensate for the low 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 'Get a specific log entry by ID' clearly states the action (get) and resource (log entry), but it's vague about what kind of log entry (event log) and doesn't distinguish it from sibling tools like 'get_event_logs' (plural) or other get_* tools. It's functional but lacks 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 guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention when to use 'get_event_log' (by ID) versus 'get_event_logs' (list) or other retrieval tools like 'get_dag_run'. The description assumes the agent knows the context without explicit instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_logsC
List log entries from event log
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| order_by | No | ||
| dag_id | No | ||
| task_id | No | ||
| run_id | No | ||
| map_index | No | ||
| try_number | No | ||
| event | No | ||
| owner | No | ||
| before | No | ||
| after | No | ||
| included_events | No | ||
| excluded_events | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'List log entries' implies a read-only operation, but it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the logs are in. The description provides minimal behavioral context beyond the basic 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 at just 6 words. It's front-loaded with the core purpose and contains no unnecessary words or sentences. For such a brief statement, every word earns its place in conveying the basic operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (14 parameters, no output schema, no annotations), the description is severely incomplete. A listing tool with extensive filtering capabilities needs more context about parameter usage, return format, and behavioral constraints. The minimal description doesn't provide enough information for effective tool selection and 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?
With 14 parameters and 0% schema description coverage, the description provides no information about any parameters. 'List log entries from event log' doesn't mention filtering capabilities, pagination options (limit/offset), sorting (order_by), or any of the 12 other parameters. The description fails to compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List log entries from event log' clearly states the verb ('List') and resource ('log entries from event log'), making the purpose understandable. However, it doesn't distinguish this tool from its sibling 'get_event_log' (singular vs plural), leaving ambiguity about their differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_event_log' (singular) and 'get_dag_dataset_queued_events' available, there's no indication of when this specific listing tool is appropriate versus other event-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_healthC
Get instance status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Get instance status' implies a read-only operation, but it doesn't disclose behavioral traits like authentication needs, rate limits, what 'status' entails (e.g., uptime, errors), or response format. For a tool with zero annotation coverage, this minimal description leaves critical 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 ('Get instance status'), which could be efficient, but it's under-specified rather than appropriately sized. It lacks necessary detail to be helpful, so it doesn't earn a high score for conciseness. However, it's not verbose or poorly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema), the description is incomplete. It doesn't explain what 'instance status' means, what the return value includes, or how it differs from other get_* tools. With no annotations and no output schema, more context is needed for the agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it doesn't incorrectly mention any. Baseline 4 is appropriate as it avoids misleading parameter information.
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 instance status' restates the tool name 'get_health' in slightly different words (tautology). It doesn't specify what 'instance' refers to or what 'status' includes, making it vague. However, it's not completely missing or misleading, just insufficiently specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Given the many sibling tools (e.g., get_config, get_version, get_connection), there's no indication of when health status is needed versus other diagnostic or configuration tools. This absence is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_import_errorC
Get a specific import error by ID
| Name | Required | Description | Default |
|---|---|---|---|
| import_error_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic operation. It doesn't disclose behavioral traits such as read/write nature, error responses, authentication needs, or rate limits, leaving significant gaps for a tool that likely queries data.
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 with no wasted words, making it easy to parse. It's appropriately sized for a simple tool and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, and no output schema, the description is incomplete. It lacks details on behavior, parameters, return values, and error handling, making it inadequate for a tool that likely involves data retrieval.
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 0%, so the description must compensate but adds no parameter details beyond the name 'import_error_id'. It doesn't explain what an import error ID is, its format, or where to find it, failing to address the coverage gap.
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') and target resource ('a specific import error by ID'), making the purpose unambiguous. However, it doesn't differentiate from its sibling 'get_import_errors' (plural), which likely retrieves multiple errors, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_import_errors'. The description implies usage for a single error by ID but doesn't specify prerequisites, error handling, or contextual recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_import_errorsC
List import errors
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| order_by | No |
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 only states 'List import errors' without any details on permissions, rate limits, pagination, or what the output looks like (e.g., format, error types). This is inadequate for a tool with parameters and no output 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 extremely concise with 'List import errors', a single phrase that front-loads the core purpose without unnecessary words. It efficiently communicates the basic action, though this brevity contributes to gaps in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, 0% schema coverage, no output schema, no annotations), the description is severely incomplete. It lacks details on behavior, parameters, output, and usage context, making it insufficient for an AI agent to effectively invoke the tool without guesswork.
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 0%, so the description must compensate by explaining parameters. It provides no information about 'limit', 'offset', or 'order_by', leaving their purposes and usage undocumented. This fails to add meaning beyond the bare schema, resulting in poor parameter guidance.
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 import errors' clearly states the action (list) and resource (import errors), making the purpose understandable. However, it lacks specificity about what import errors are (e.g., from data imports in Airflow) and doesn't distinguish it from sibling tools like 'get_import_error' (singular), leaving ambiguity about 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. It doesn't mention sibling tools like 'get_import_error' (singular) or other error-related tools, nor does it specify prerequisites or contexts for usage, leaving the agent to infer based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pluginsC
Get a list of loaded plugins
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
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. 'Get a list' implies a read operation, but the description doesn't specify whether this requires authentication, what format the list returns, whether it's paginated, or any rate limits. For a tool with zero annotation coverage, 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 a single, efficient sentence with no wasted words. It's front-loaded with the core purpose and appropriately sized for a simple list-retrieval tool. 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?
Given 2 undocumented parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what a 'loaded plugin' means in this context, how results are structured, or how parameters affect the operation. For a tool with this level of complexity and poor structured data coverage, the description should provide more 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 0%, so parameters 'limit' and 'offset' are completely undocumented in the schema. The description provides no information about these parameters, their purpose, or how they affect the returned list. The description fails to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'list of loaded plugins', making the purpose unambiguous. It doesn't differentiate from sibling tools, but since no other plugin-related tools exist in the sibling list, this is adequate. The description avoids tautology by specifying what kind of list is retrieved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are no explicit instructions about context, prerequisites, or comparisons with other tools in the sibling list. The agent must infer usage based solely on the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_poolC
Get a pool by name
| Name | Required | Description | Default |
|---|---|---|---|
| pool_name | 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 states a read operation ('Get'), which implies non-destructive behavior, but doesn't disclose permissions needed, rate limits, error handling, or what data is returned. For a tool with zero annotation coverage, 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 ('Get a pool by name') with zero wasted words, making it easy to parse. It's front-loaded with the core action, though brevity may contribute to gaps in other dimensions.
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, no output schema, and low schema coverage (0%), the description is incomplete. It doesn't explain what a 'pool' is, what data is returned, error scenarios, or how it fits with siblings like 'get_pools'. For a retrieval tool in a complex system (Airflow-like context inferred from siblings), more context is 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 description coverage is 0%, with one parameter ('pool_name') undocumented in the schema. The description adds minimal semantics by implying the parameter is used to identify a pool by name, but doesn't explain format, constraints, or examples (e.g., case sensitivity, allowed characters). It partially compensates but not fully for the coverage gap.
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 pool by name' clearly states the verb ('Get') and resource ('pool'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_pools' (plural) or explain what a 'pool' represents in this context, leaving some ambiguity about 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 like 'get_pools' (which likely lists multiple pools). The description implies retrieval by name but doesn't specify prerequisites, error conditions, or contextual triggers for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_poolsD
List pools
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| order_by | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers none. 'List pools' doesn't indicate whether this is a read-only operation, what permissions are required, whether it supports pagination (though parameters suggest it), what format the output takes, or any rate limits. For a tool with 3 parameters and no annotations, this is critically insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just two words. While this leads to severe under-specification, it is not verbose or poorly structured—every word serves a purpose (though that purpose is minimal). There is no wasted language, making it technically efficient in terms of 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 complexity (3 parameters, no annotations, no output schema, and many sibling tools), the description is completely inadequate. It doesn't explain what 'pools' are, how to use the parameters, what the tool returns, or when to choose it over alternatives. For a list operation in a system with extensive sibling tools, this provides almost no useful 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?
The schema description coverage is 0%, meaning none of the 3 parameters (limit, offset, order_by) are documented in the schema. The description 'List pools' adds no information about these parameters—it doesn't mention pagination, sorting, or any constraints. With 3 undocumented parameters and no compensation in the description, this fails to provide meaningful parameter semantics.
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 pools' is a tautology that essentially restates the tool name 'get_pools'. While it indicates a listing operation, it provides no additional specificity about what 'pools' are in this context or what distinguishes this tool from sibling tools like 'get_pool' (singular). The verb+resource combination is minimal and lacks differentiation.
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 absolutely no guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or comparisons to sibling tools like 'get_pool' (which presumably retrieves a single pool) or 'post_pool'/'patch_pool' (which create/modify pools). The agent receives no help in selecting this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_providersC
Get a list of loaded providers
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
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 states 'Get a list' which implies a read-only operation, but doesn't disclose behavioral traits like whether it requires authentication, has rate limits, returns paginated results, or what 'loaded' means (e.g., active vs. all providers). The description adds minimal context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action, though it could be slightly more specific (e.g., 'Get a paginated list of loaded data providers'). Every word earns its place, but it's borderline under-specified rather than 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?
Given no annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't explain what 'providers' are, how they're used, or what the return format looks like. For a tool with parameters and in a context with many siblings, more detail is needed to guide effective use by an AI agent.
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 0%, so the schema provides no parameter details. The description doesn't mention parameters at all, failing to compensate for the coverage gap. With 2 parameters (limit and offset) that control pagination, the description should explain their purpose (e.g., to paginate through providers) but doesn't add any 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?
The description 'Get a list of loaded providers' states a clear verb ('Get') and resource ('loaded providers'), but it's somewhat vague about what 'providers' are in this context (e.g., data providers, service providers) and doesn't distinguish from siblings like 'get_plugins' or 'get_connection'. It avoids tautology by not just restating the name 'get_providers'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'get_plugins' or 'get_connection', there's no indication of context, prerequisites, or exclusions. Usage is implied only by the name and description, lacking explicit instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskC
Get a task by ID
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| task_id | 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. 'Get a task by ID' implies a read-only operation, but it doesn't disclose behavioral traits like authentication needs, rate limits, error handling, or what data is returned (e.g., task definition, status). For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.
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 a single sentence ('Get a task by ID'), front-loaded with the core action. There's no wasted text, making it easy to parse quickly, though this brevity contributes to gaps in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a read operation with 2 required parameters), no annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't explain what 'get' returns, parameter semantics, or usage context, leaving the agent with insufficient information to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The description mentions 'by ID' but doesn't explain what 'dag_id' and 'task_id' represent, their formats, or relationships. It adds minimal meaning beyond the parameter names, failing to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a task by ID' clearly states the action (get) and resource (task), but it's vague about what 'get' entails (retrieve metadata, status, details?) and doesn't differentiate from siblings like 'get_tasks' (plural) or 'get_task_instance'. It specifies the lookup method (by ID) which adds some 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'get_tasks' for listing multiple tasks or 'get_task_instance' for instance details, nor does it specify prerequisites (e.g., needing a DAG ID). Usage is implied only by the name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_instanceC
Get a task instance by DAG ID, task ID, and DAG run ID
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| task_id | Yes | ||
| dag_run_id | 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 of behavioral disclosure. It states the tool retrieves data, implying it's read-only, but doesn't cover aspects like error handling, permissions, or response format, leaving significant gaps for a tool with three required 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 a single, efficient sentence with no wasted words, clearly front-loading the purpose. It's appropriately sized for a straightforward retrieval tool.
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, 0% schema coverage, and no output schema, the description is incomplete. It lacks details on behavioral traits, parameter semantics, and return values, making it inadequate for a tool with three required parameters in a complex domain like task management.
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 0%, so the description must compensate. It lists the three required parameters (DAG ID, task ID, DAG run ID) but doesn't explain their meaning, format, or relationships, adding minimal value beyond the schema's property names.
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') and resource ('a task instance'), specifying it requires DAG ID, task ID, and DAG run ID. It distinguishes from siblings like 'list_task_instances' by focusing on retrieval of a single instance, though it doesn't explicitly mention this distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_task' or 'list_task_instances'. The description implies usage for retrieving a specific task instance but lacks context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tasksC
Get tasks for DAG
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| order_by | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read operation ('Get') but doesn't disclose permissions needed, rate limits, pagination, return format, or error conditions. For a tool with no annotation coverage, this is 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 extremely concise at 3 words, front-loaded with the core action. There's no wasted language, though this brevity contributes to underspecification rather than 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?
For a tool with 2 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't provide enough context for an agent to understand what the tool returns, how to use parameters effectively, or how it differs from similar tools in the sibling 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 description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what 'dag_id' refers to, what 'order_by' options exist, or how parameters affect results. With 2 parameters (1 required) and no schema descriptions, this leaves significant gaps.
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 tasks for DAG' states the basic purpose (retrieving tasks) and resource (DAG), but it's vague about scope and doesn't differentiate from sibling tools like 'get_dag_tasks' or 'get_task'. It doesn't specify whether it returns all tasks, specific tasks, or tasks with certain statuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_dag_tasks' or 'get_task'. The description doesn't mention prerequisites, context, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upstream_dataset_eventsC
Get dataset events for a DAG run
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| dag_run_id | 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 states 'Get' which implies a read operation, but doesn't disclose any behavioral traits like whether it's safe, what permissions are needed, if it's paginated, or what format the events are returned in. For a tool with no annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a simple tool, though it could benefit from additional context given the lack of annotations and schema descriptions.
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, 0% schema description coverage, and no output schema, the description is incomplete. It doesn't explain what 'upstream dataset events' are, how they differ from other event types, what the return format is, or any behavioral constraints. For a tool in this context, more information is 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 description coverage is 0%, so the schema provides no parameter descriptions. The tool description doesn't mention parameters at all, failing to explain what 'dag_id' and 'dag_run_id' represent or how to obtain them. With 2 required parameters and no schema descriptions, the description adds no semantic 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 'Get dataset events for a DAG run' clearly states the action (get) and resource (dataset events) with a specific scope (for a DAG run). However, it doesn't differentiate from sibling tools like 'get_dataset_events' or 'get_dag_dataset_queued_events', leaving ambiguity about what makes this tool distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_dataset_events' and 'get_dag_dataset_queued_events', there's no indication of what 'upstream' means or when this specific tool is appropriate, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_valueC
Get a specific option from configuration
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes | ||
| option | 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 of behavioral disclosure. While 'Get' implies a read-only operation, the description doesn't specify whether this requires authentication, what happens if the option doesn't exist, whether there are rate limits, or what format the returned value takes. This leaves significant behavioral gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just one sentence that directly states the tool's purpose. There's no wasted language or unnecessary elaboration, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 required parameters, 0% schema description coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'configuration' refers to in this system, what values might be returned, error conditions, or how this differs from similar tools. The context demands more comprehensive documentation.
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 0% description coverage, providing only parameter names ('section', 'option') without explaining what they mean. The description adds minimal value by implying these parameters identify a 'specific option from configuration', but doesn't clarify what sections or options are available, their format, or examples. This is insufficient compensation for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a specific option from configuration' clearly states the verb ('Get') and resource ('option from configuration'), but it's somewhat vague about what 'configuration' refers to in this context. It doesn't distinguish this tool from similar siblings like 'get_config' or 'get_variable', which also retrieve configuration-like data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'get_config', 'get_variable', 'get_connection', etc., there's no indication of what makes this tool unique or when it should be preferred over other configuration-retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_variableC
Get a variable by key
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'gets' a variable, implying a read-only operation, but doesn't disclose whether authentication is needed, what happens if the key doesn't exist, rate limits, or the format of the returned value. The description is minimal and leaves critical behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just four words, front-loaded with the core action. There's zero wasted language, though this conciseness comes at the cost of completeness. Every word earns its place by specifying the action and primary 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 no annotations, no output schema, and 0% schema description coverage for a single-parameter tool, the description is incomplete. It doesn't explain what a 'variable' is in this system, what format the returned value takes, error conditions, or how this tool fits within the broader variable management context alongside siblings like create_variable and delete_variable.
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 description coverage is 0%, so the description must compensate. It mentions 'by key' which corresponds to the single parameter 'key', but provides no additional meaning about what constitutes a valid key, key format, examples, or constraints. This leaves the parameter poorly documented despite the low 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 'Get a variable by key' clearly states the action (get) and resource (variable), but it's vague about what 'variable' means in this context. It distinguishes from siblings like 'create_variable' and 'delete_variable' by indicating retrieval rather than modification, but doesn't specify what type of variable or system it belongs to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_value', 'list_variables', or 'get_config'. The description implies it's for retrieving a specific variable by key, but doesn't clarify prerequisites, error conditions, or when other retrieval tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_versionC
Get version information
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 of behavioral disclosure. 'Get version information' implies a read-only operation, but it doesn't specify whether this requires authentication, what format the version info is returned in (e.g., string, object), or if there are any rate limits or side effects. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description 'Get version information' is extremely concise—just three words—and front-loaded with the core action. There's no wasted language or unnecessary elaboration, making it easy to parse quickly. Every word earns its place by directly conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no annotations, and no output schema, the description is incomplete for effective use. It doesn't explain what 'version information' entails (e.g., is it a simple string, a JSON object with details?), nor does it provide context on dependencies or errors. For a tool in a server with many sibling tools, more detail is needed to ensure the agent can invoke it correctly without confusion.
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 tool has 0 parameters, and the schema description coverage is 100% (since there are no parameters to describe). The description doesn't need to add parameter semantics, and it doesn't incorrectly imply any parameters. A baseline score of 4 is appropriate as the description doesn't mislead about parameters, though it could theoretically mention if version retrieval depends on implicit context (e.g., server vs. client).
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 version information' clearly states the verb ('Get') and resource ('version information'), making the purpose understandable. However, it doesn't specify what system or component's version is being retrieved, nor does it differentiate from similar tools like 'get_health' or 'get_config' that might provide related system information. It's adequate but vague about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_health' (for system health) and 'get_config' (for configuration), there's no indication of whether this tool is for API version, software version, or something else, leaving the agent to guess based on context. No explicit when/when-not or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_xcom_entriesD
Get all XCom entries
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| dag_run_id | Yes | ||
| task_id | Yes | ||
| map_index | No | ||
| xcom_key | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but fails to disclose behavioral traits. It doesn't indicate if this is a read-only operation, its potential impact (e.g., performance), rate limits, authentication needs, or return format. The description is too vague to inform the agent about how the tool behaves.
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 a single sentence, 'Get all XCom entries', which is front-loaded and wastes no words. However, this brevity comes at the cost of clarity and completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, 3 required), lack of annotations, and no output schema, the description is severely incomplete. It doesn't explain what XCom entries are, how to use the tool effectively, or what to expect in return, making it inadequate for informed tool selection.
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 0%, so the description must compensate but adds no parameter information. It doesn't explain what parameters like 'dag_id', 'xcom_key', or 'limit' mean or how they filter results, leaving all 7 parameters undocumented beyond their titles in 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 'Get all XCom entries' restates the tool name with minimal elaboration, making it tautological. It specifies the resource ('XCom entries') but lacks detail on what XCom entries are or how they differ from the sibling tool 'get_xcom_entry' (singular).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_xcom_entry' or other data-fetching tools. The description offers no context, prerequisites, or exclusions, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_xcom_entryD
Get an XCom entry
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| dag_run_id | Yes | ||
| task_id | Yes | ||
| xcom_key | Yes | ||
| map_index | No | ||
| deserialize | No | ||
| stringify | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but offers none. It doesn't indicate whether this is a read-only operation, what permissions are required, whether it's idempotent, what happens on failure, or what the return format looks like. 'Get' implies retrieval but lacks any behavioral context about rate limits, side effects, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise with a single four-word phrase. While severely under-specified, it contains no wasted words and is appropriately sized for its limited content. The structure is front-loaded with the core action, though it lacks supporting details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, no output schema, and 0% schema description coverage, the description is completely inadequate. It doesn't explain what XCom entries are, how they're used in the system, what values are returned, or any behavioral characteristics. The agent would struggle to use this tool correctly without extensive external knowledge.
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?
With 0% schema description coverage and 7 parameters (4 required), the description provides zero information about parameter meanings or usage. It doesn't explain what 'dag_id', 'xcom_key', 'deserialize', or any other parameters represent, nor their relationships. The description fails to compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get an XCom entry' is a tautology that restates the tool name with minimal elaboration. It specifies the verb 'Get' and resource 'XCom entry', but doesn't explain what an XCom entry is or how it differs from sibling tools like 'get_xcom_entries' (plural). The purpose is vague without context about what XCom represents in this system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when this tool is appropriate versus 'get_xcom_entries', or any contextual constraints. The agent must infer usage solely from the tool name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_connectionsC
List all connections
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| order_by | No |
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. 'List all connections' reveals nothing about permissions needed, rate limits, pagination behavior (despite limit/offset parameters), response format, or whether this is a read-only operation. For a tool with 3 parameters and no annotation coverage, this is a significant gap in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise at three words, with no wasted language. It's front-loaded with the core action and resource. While under-specified, it achieves perfect efficiency within its limited scope.
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 3 parameters with 0% schema coverage, no annotations, no output schema, and multiple sibling tools in a complex server environment, the description is completely inadequate. It doesn't explain what 'connections' are, how results are returned, parameter usage, or behavioral characteristics. For a list operation in what appears to be an Airflow/ETL context, this leaves critical 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 0% (parameters have only titles, no descriptions), and the description provides zero information about the three parameters (limit, offset, order_by). The description doesn't mention pagination, sorting, or any parameter usage at all. With 3 undocumented parameters and no compensation in the description, this fails to add value beyond the bare 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 'List all connections' clearly states the verb ('List') and resource ('connections'), making the basic purpose understandable. However, it lacks specificity about what 'connections' are in this context and doesn't differentiate from sibling tools like 'get_connection' (which retrieves a single connection). The description is functional but vague about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_connection' (for single connection retrieval) and 'test_connection' (for validation), the agent receives no explicit or implied direction about when this list operation is appropriate versus those alternatives. No prerequisites, exclusions, or comparative context is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_task_instancesC
List task instances by DAG ID and DAG run ID
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| dag_run_id | Yes | ||
| execution_date_gte | No | ||
| execution_date_lte | No | ||
| start_date_gte | No | ||
| start_date_lte | No | ||
| end_date_gte | No | ||
| end_date_lte | No | ||
| updated_at_gte | No | ||
| updated_at_lte | No | ||
| duration_gte | No | ||
| duration_lte | No | ||
| state | No | ||
| pool | No | ||
| queue | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read-only list operation but doesn't disclose pagination behavior (despite 'limit' and 'offset' parameters), sorting, rate limits, authentication needs, or what the output looks like. This leaves significant gaps for agent understanding.
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 - a single sentence that directly states the tool's core function. There's no wasted language or unnecessary elaboration, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 parameters, no annotations, and no output schema, the description is severely incomplete. It doesn't explain the filtering logic, return format, pagination, or how the various date parameters interact. The agent would struggle to use this effectively without 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 0%, so the description must compensate but only mentions two parameters ('dag_id' and 'dag_run_id'). It ignores the other 15 parameters including date ranges, state filters, and pagination controls. This provides inadequate guidance for a tool with 17 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 verb ('List') and resource ('task instances'), specifying filtering by 'DAG ID and DAG run ID'. It distinguishes from siblings like 'get_task_instance' (singular) and 'clear_task_instances' (destructive), but doesn't explicitly differentiate from other list-like tools such as 'get_dag_runs' or 'get_tasks'.
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. For example, it doesn't mention when to prefer 'get_task_instance' for a single instance or how it relates to 'get_dag_runs' for broader workflow context. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_variablesD
List all variables
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| order_by | No |
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. 'List all variables' reveals nothing about permissions required, rate limits, pagination behavior, return format, or whether this is a read-only operation. For a tool with 3 parameters and no output schema, this leaves critical behavioral aspects completely unspecified.
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 maximally concise at just three words with no wasted language. While severely under-specified, it's efficiently structured as a direct imperative statement without unnecessary elaboration.
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 3 parameters, 0% schema description coverage, no annotations, and no output schema, the description 'List all variables' is completely inadequate. It fails to explain what 'variables' are in this context, how results are returned, what the parameters do, or any behavioral characteristics needed for effective tool 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 0%, meaning none of the 3 parameters (limit, offset, order_by) have any documentation in the schema. The description 'List all variables' provides zero information about these parameters - it doesn't mention pagination, sorting, or any parameter usage at all. This fails to compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all variables' is a tautology that essentially restates the tool name 'list_variables' without adding meaningful context. It specifies the verb 'list' and resource 'variables' but lacks any distinguishing details about scope, format, or differentiation from sibling tools like 'get_variable' or 'delete_variable'.
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 absolutely no guidance on when to use this tool versus alternatives. With sibling tools like 'get_variable' (for retrieving a single variable) and 'delete_variable' (for removal), the agent receives no indication about appropriate contexts, prerequisites, or comparative use cases for this listing operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch_dagD
Update a DAG
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| is_paused | No | ||
| tags | No |
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. 'Update a DAG' provides minimal information - it implies a mutation operation but doesn't specify what gets modified, whether changes are reversible, what permissions are required, or what the response looks like. For a mutation tool with zero annotation coverage, this is inadequate behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, which could be appropriate if it were more informative. However, this brevity results in under-specification rather than efficient communication. While front-loaded, it lacks the substance needed for the tool's 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 a mutation tool with 3 parameters, 0% schema description coverage, no annotations, and no output schema, the description 'Update a DAG' is completely inadequate. It doesn't explain what the tool does beyond the obvious, provides no parameter guidance, offers no behavioral context, and fails to distinguish it from numerous sibling DAG manipulation tools. This leaves the agent with insufficient information 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 description coverage is 0%, meaning none of the three parameters (dag_id, is_paused, tags) have descriptions in the schema. The tool description provides no information about any parameters - it doesn't mention what dag_id refers to, what is_paused controls, or what tags represent. With zero parameter information in either schema or description, this fails to provide necessary semantic context.
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 'Update a DAG' is a tautology that restates the tool name 'patch_dag' without adding specificity. It doesn't clarify what aspects of a DAG are updated or distinguish this tool from sibling tools like 'pause_dag', 'unpause_dag', or 'patch_dags'. The verb 'Update' is generic and the resource 'DAG' is too broad given the context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'pause_dag', 'unpause_dag', 'patch_dags', and 'update_dag_run_state', there's no indication of when this specific patch operation is appropriate versus those other DAG modification tools. No prerequisites, constraints, or comparison context is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch_dagsC
Update multiple DAGs
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id_pattern | No | ||
| is_paused | No | ||
| tags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action ('update') without detailing behavioral traits. It doesn't mention permissions required, whether updates are reversible, rate limits, side effects on DAG runs, or what the response contains. This leaves significant gaps for a mutation tool affecting multiple resources.
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 with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't cover parameter meanings, behavioral implications, or output expectations, making it inadequate for safe and effective use by an AI agent.
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 0%, so parameters are undocumented in the schema. The description adds no information about parameters—it doesn't explain what 'dag_id_pattern' filters, what 'is_paused' does, or how 'tags' are used. This fails to compensate for the schema gap, leaving all three parameters semantically unclear.
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 'Update multiple DAGs' clearly states the action (update) and resource (DAGs), and specifies scope (multiple). However, it doesn't distinguish from sibling tools like 'patch_dag' (singular) or 'pause_dag'/'unpause_dag' (specific updates), leaving ambiguity about when to choose this over alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'patch_dag' (for single DAG updates) or 'pause_dag'/'unpause_dag' (for specific pause state changes). The description implies bulk updates but doesn't clarify prerequisites, exclusions, 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.
patch_poolC
Update a pool
| Name | Required | Description | Default |
|---|---|---|---|
| pool_name | Yes | ||
| slots | No | ||
| description | No | ||
| include_deferred | No |
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 of behavioral disclosure. 'Update a pool' implies a mutation operation, but it doesn't describe what happens during the update—whether it's partial or full, if it requires specific permissions, what the response looks like, or potential side effects. For a mutation tool with zero annotation coverage, this leaves critical behavioral traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at three words ('Update a pool'), with no wasted language. It's front-loaded and to the point, making it easy to parse quickly. However, this conciseness comes at the cost of completeness, as noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a mutation tool with 4 parameters), lack of annotations, 0% schema description coverage, and no output schema, the description is incomplete. It doesn't explain what the tool returns, how parameters interact, or the scope of updates. For a tool that modifies resources, this minimal description is inadequate for safe and effective use by an agent.
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 0%, meaning none of the 4 parameters have descriptions in the schema. The tool description doesn't mention any parameters, so it adds no semantic value beyond what the schema provides. Parameters like 'slots', 'description', and 'include_deferred' are entirely undocumented, leaving their purpose and usage unclear to an agent.
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 'Update a pool' states a clear verb ('Update') and resource ('pool'), which provides basic purpose. However, it doesn't specify what aspects of a pool can be updated or differentiate this tool from sibling tools like 'post_pool' (which likely creates pools) or 'delete_pool' (which removes them). The purpose is understandable but lacks 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing pool), when not to use it, or how it differs from similar tools like 'post_pool' (create) or 'delete_pool' (remove). Without this context, an agent might struggle to choose the right tool for modifying pool resources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_dagC
Pause a DAG by ID
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a state change (pausing) but doesn't disclose effects (e.g., halts executions, retains history), permissions needed, error conditions (e.g., invalid ID), or response format. For a mutation tool with zero annotation coverage, this leaves critical gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It front-loads the core action and resource efficiently, making it easy to parse. Every word earns its place, adhering to ideal conciseness for a simple tool.
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 (a mutation with no annotations, no output schema, and 0% schema coverage), the description is insufficiently complete. It lacks details on behavior, outcomes, error handling, and usage context, leaving the agent with inadequate information to invoke it correctly beyond the basic action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter details beyond the schema, which has 0% description coverage. It mentions 'by ID' but doesn't explain what 'dag_id' represents (e.g., a string identifier) or provide examples. With one parameter and low schema coverage, the description fails to compensate, resulting in a baseline score due to the minimal parameter count.
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 ('Pause') and target resource ('a DAG by ID'), making the purpose immediately understandable. It distinguishes from siblings like 'unpause_dag' by specifying the opposite action, though it doesn't explicitly differentiate from other DAG-related tools like 'delete_dag' or 'patch_dag' beyond the verb itself.
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. It doesn't mention prerequisites (e.g., DAG must be running), exclusions (e.g., cannot pause if already paused), or comparisons to siblings like 'unpause_dag' or 'set_task_instances_state'. The description solely states what it does without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_dag_runC
Trigger a DAG by ID
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| dag_run_id | No | ||
| data_interval_end | No | ||
| data_interval_start | No | ||
| end_date | No | ||
| execution_date | No | ||
| external_trigger | No | ||
| last_scheduling_decision | No | ||
| logical_date | No | ||
| note | No | ||
| run_type | No | ||
| start_date | No |
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 of behavioral disclosure. 'Trigger' implies a write/mutation operation, but it doesn't specify permissions needed, side effects (e.g., if it starts execution immediately), error conditions, or response format. This is a significant gap for a tool with 12 parameters and no output 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 extremely concise with a single sentence, 'Trigger a DAG by ID', which is front-loaded and wastes no words. However, this conciseness comes at the cost of clarity and completeness for such a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (12 parameters, 1 required), lack of annotations, 0% schema description coverage, and no output schema, the description is completely inadequate. It doesn't explain what 'trigger' entails, parameter meanings, or expected outcomes, making it insufficient for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 12 parameters are documented in the schema. The description adds no information about parameters beyond 'by ID', which only hints at 'dag_id'. It doesn't explain the purpose of other parameters like 'dag_run_id', 'data_interval_start', or 'run_type', leaving them completely undocumented.
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 'Trigger a DAG by ID' states a clear verb ('trigger') and resource ('DAG'), but it's vague about what 'trigger' means in this context (e.g., start execution, schedule, or create a run). It doesn't distinguish from siblings like 'update_dag_run_state' or 'delete_dag_run', which involve DAG runs but with different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'update_dag_run_state' and 'delete_dag_run', the description doesn't indicate if this is for initial runs, rescheduling, or other scenarios, leaving the agent to guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_poolD
Create a pool
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| slots | Yes | ||
| description | No | ||
| include_deferred | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers none. It doesn't indicate whether this is a read or write operation (though 'create' implies mutation), what permissions are needed, what happens on success/failure, or any side effects. This is inadequate for a tool that likely modifies system state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two words, which could be efficient if it were informative. However, it's under-specified rather than appropriately brief, as it lacks necessary details. It's front-loaded but doesn't earn its place with useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a creation tool with 4 parameters, 0% schema coverage, no annotations, and no output schema, the description is severely incomplete. It doesn't explain what a pool is, how to use it, what the parameters mean, or what to expect in return, making it inadequate for effective tool 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 0%, meaning none of the 4 parameters are documented in the schema. The description adds no information about parameters like 'name', 'slots', 'description', or 'include_deferred', leaving their purposes and formats completely unspecified. This fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a pool' is a tautology that merely restates the tool name 'post_pool' without adding meaningful context. It specifies the verb 'create' but doesn't clarify what a 'pool' is in this system or what resources it involves, leaving the purpose vague compared to siblings like 'get_pool' or 'delete_pool'.
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. There's no mention of prerequisites, when it's appropriate, or how it differs from sibling tools like 'patch_pool' or 'get_pools'. The agent must infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reparse_dag_fileC
Request re-parsing of a DAG file
| Name | Required | Description | Default |
|---|---|---|---|
| file_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the action without behavioral details. It doesn't disclose if this is a read/write operation, requires permissions, has side effects (e.g., triggering DAG refreshes), rate limits, or response format. 'Request' implies a mutation, but specifics are missing, leaving significant 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 a single, efficient sentence with zero waste—it directly states the tool's action. It's appropriately sized for a simple tool and front-loaded with the core purpose, though brevity contributes to gaps in other dimensions.
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, 0% schema coverage, no output schema, and a mutation-like tool ('request re-parsing'), the description is incomplete. It lacks details on behavior, parameters, outcomes, and how it fits with siblings (e.g., vs. 'get_dag_source'). For a tool that likely triggers system changes, more context is 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 description coverage is 0%, and the description adds no parameter information. It doesn't explain what 'file_token' represents (e.g., a file path, identifier, or token), its format, or how to obtain it. With 1 undocumented parameter, the description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Request re-parsing of a DAG file' states a clear action ('request re-parsing') and target ('DAG file'), but is vague about what re-parsing entails and doesn't distinguish from siblings like 'get_dag_source' or 'patch_dag'. It provides basic purpose but lacks specificity about the operation's scope or outcome.
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. The description doesn't mention prerequisites (e.g., after file changes), exclusions, or related tools like 'get_dag_source' for reading DAG files or 'patch_dag' for updates. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_dag_run_noteC
Update the DagRun note
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| dag_run_id | Yes | ||
| note | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Update' implies a mutation operation, but the description doesn't specify whether this requires special permissions, if notes have length/format restrictions, whether updates are idempotent, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 4 words, with zero wasted language. It's front-loaded with the core action and target. While it may be too brief for adequate tool understanding, it earns full marks for conciseness as every word 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?
For a mutation tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what DagRuns are, how notes are used, what happens after update, or provide any error handling context. The minimal description leaves too many gaps for effective tool 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?
With 0% schema description coverage for all 3 parameters, the description provides no additional parameter information beyond what's in the schema. It doesn't explain what 'dag_id', 'dag_run_id', or 'note' represent, their formats, or constraints. The description fails to compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update the DagRun note' clearly states the action (update) and target (DagRun note), providing a basic understanding of purpose. However, it lacks specificity about what a DagRun is or how notes are used, and doesn't differentiate from sibling tools like 'update_dag_run_state' or 'clear_dag_run' that also modify DagRuns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'update_dag_run_state' and 'clear_dag_run' that also operate on DagRuns, there's no indication of when note updates are appropriate versus state changes or clearing operations. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_task_instances_stateD
Set a state of task instances
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| state | Yes | ||
| task_ids | No | ||
| execution_date | No | ||
| include_upstream | No | ||
| include_downstream | No | ||
| include_future | No | ||
| include_past | No | ||
| dry_run | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but provides almost none. 'Set a state' implies a mutation/write operation, but the description doesn't mention permissions required, whether this is destructive or reversible, rate limits, side effects, or what happens to downstream/upstream dependencies. For a tool with 9 parameters that can modify workflow states, this is critically 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?
While technically concise with just 5 words, this is under-specification rather than effective conciseness. The single sentence doesn't front-load critical information and fails to provide the necessary context for a complex tool. Every word earns its place, but there are far too few words for what this tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no annotations, no output schema, and 0% schema description coverage, the description is completely inadequate. It doesn't explain what the tool actually does beyond the name, provides no behavioral context, offers no parameter guidance, and gives no indication of when to use it versus sibling tools. This leaves an AI agent with insufficient information 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?
The description mentions 'state' but provides no context about what states are valid or what setting a state means. With 0% schema description coverage and 9 parameters (7 optional), the description fails to explain any parameters beyond the minimal implication of 'state' in the tool name. It doesn't clarify what 'dag_id', 'task_ids', 'execution_date', or the various include/dry_run parameters mean or how they interact.
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 'Set a state of task instances' is a tautology that essentially restates the tool name 'set_task_instances_state' with minimal additional information. It doesn't specify what kind of state (e.g., success, failed, running) or provide any meaningful differentiation from sibling tools like 'clear_task_instances' or 'update_task_instance'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools that manipulate task instances (clear_task_instances, update_task_instance) and DAG states (update_dag_run_state), but the description offers no context about appropriate use cases, prerequisites, or distinctions from these related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_connectionD
Test a connection
| Name | Required | Description | Default |
|---|---|---|---|
| conn_type | Yes | ||
| host | No | ||
| port | No | ||
| login | No | ||
| password | No | ||
| schema | No | ||
| extra | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but fails completely. 'Test a connection' gives no indication of whether this is a read-only diagnostic operation or has side effects, what authentication is required, what happens during testing, what the output looks like, or any error conditions. For a tool with 7 parameters and no annotation coverage, this is severely 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 maximally concise at just three words. While this represents severe under-specification rather than ideal conciseness, from a pure structural perspective, there's no wasted language or unnecessary elaboration. Every word directly relates to the tool's purpose, though that purpose is minimally expressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, no output schema, and 0% schema description coverage, the description is completely inadequate. It provides no context about what the tool actually does beyond the name, no parameter guidance, no behavioral information, and no differentiation from sibling tools. This leaves the agent with insufficient information 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?
The description provides zero information about any of the 7 parameters. With 0% schema description coverage (titles only, no descriptions), the description fails to compensate by explaining what conn_type, host, port, login, password, schema, or extra parameters mean, their relationships, or how they're used in testing. This leaves all parameters semantically undefined.
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 'Test a connection' is a tautology that essentially restates the tool name 'test_connection'. It provides no additional specificity about what kind of connection is being tested, what 'testing' entails, or what resource is involved. While the verb 'test' is clear, the description lacks any meaningful elaboration beyond the 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?
The description provides absolutely no guidance on when to use this tool versus alternatives. There are multiple sibling tools related to connections (create_connection, delete_connection, get_connection, list_connections, update_connection), but the description offers no differentiation or context about when testing versus creating/getting/updating is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpause_dagC
Unpause a DAG by ID
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Unpause' implies a state-changing mutation, but the description doesn't disclose permission requirements, side effects, error conditions, or what happens if the DAG isn't paused. It provides minimal behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 5 words, front-loading the essential action and parameter. Every word earns its place with zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't address behavioral aspects like permissions, side effects, error handling, or what 'unpausing' actually entails operationally. The context demands more comprehensive disclosure.
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 0%, so the description must compensate. It mentions 'by ID' which clarifies the 'dag_id' parameter's purpose, but doesn't explain ID format, where to find it, or validation rules. The description adds some meaning but doesn't fully compensate for the schema coverage gap.
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 ('Unpause') and target resource ('a DAG by ID'), providing a specific verb+resource combination. It distinguishes from siblings like 'pause_dag' by indicating the opposite operation, though it doesn't explicitly mention this distinction in the description text itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., that the DAG must be paused first), when-not-to-use scenarios, or reference sibling tools like 'pause_dag' for the opposite operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_connectionC
Update a connection by ID
| Name | Required | Description | Default |
|---|---|---|---|
| conn_id | Yes | ||
| conn_type | No | ||
| host | No | ||
| port | No | ||
| login | No | ||
| password | No | ||
| schema | No | ||
| extra | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'update' implies a mutation, but fails to describe what gets updated (e.g., fields like host, port), whether changes are reversible, permission requirements, or error handling. This leaves significant gaps in understanding the tool's 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 with no wasted words, making it front-loaded and easy to parse. However, its brevity leads to under-specification, as it omits necessary details for a tool with 8 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 8 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It lacks details on what fields can be updated, expected outcomes, error conditions, and how it differs from related tools, making it incomplete for effective agent 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 0%, meaning parameters are undocumented in the schema. The description only mentions 'by ID', referencing the 'conn_id' parameter, but ignores the other 7 parameters (e.g., conn_type, host, password). It adds minimal value beyond the schema, failing to compensate for the coverage gap.
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 'Update a connection by ID' restates the tool name and title (which is null) without providing specific details about what 'update' entails. It mentions the resource (connection) and key parameter (ID), but lacks differentiation from sibling tools like 'create_connection' or 'delete_connection', making it vague about the exact operation.
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. The description does not mention prerequisites (e.g., needing an existing connection ID), exclusions, or comparisons to sibling tools like 'create_connection' for new connections or 'delete_connection' for removal, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dag_run_stateC
Update a DAG run state by DAG ID and DAG run ID
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| dag_run_id | Yes | ||
| state | No |
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 states 'Update' implying mutation, but doesn't disclose behavioral traits like required permissions, whether the operation is reversible, what happens to dependent tasks, or if it triggers downstream effects. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the core action, zero waste. It efficiently conveys the essential purpose without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (mutation tool with 3 parameters), no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It lacks details on behavior, parameter meanings, return values, and usage context, making it inadequate for safe and effective tool 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 0%, so the description must compensate. It mentions 'DAG ID and DAG run ID' but doesn't explain the 'state' parameter (e.g., valid values like 'success', 'failed', or 'running', or that null might reset to default). With 3 parameters and no schema descriptions, the description adds minimal value beyond naming two of them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and target resource ('DAG run state'), specifying it requires DAG ID and DAG run ID. It distinguishes from siblings like 'set_task_instances_state' by focusing on DAG runs rather than tasks, but doesn't explicitly contrast with 'clear_dag_run' or 'delete_dag_run'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'clear_dag_run', 'delete_dag_run', or 'set_task_instances_state'. It doesn't mention prerequisites (e.g., DAG must exist) or typical scenarios (e.g., manual state changes for workflow management).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_task_instanceC
Update a task instance by DAG ID, DAG run ID, and task ID
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| dag_run_id | Yes | ||
| task_id | Yes | ||
| state | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only mentions the update action without disclosing behavioral traits like required permissions, whether changes are reversible, rate limits, or what the response looks like. It lacks critical details for a mutation tool, though it doesn't contradict any 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 a single, efficient sentence that front-loads the core action. It wastes no words but could be more structured by including key details like parameter meanings or usage context, though it's appropriately sized for its limited content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no annotations, no output schema), the description is incomplete. It lacks information on behavioral aspects, parameter meanings, and expected outcomes, making it inadequate for safe and effective use by an AI agent in this 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 0%, so the description must compensate but only lists the three required parameters (dag_id, dag_run_id, task_id) without explaining their semantics or the optional 'state' parameter. It adds minimal value beyond the schema's property names, failing to clarify usage or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('a task instance'), specifying it's done by three identifiers (DAG ID, DAG run ID, task ID). It's specific but doesn't differentiate from sibling tools like 'set_task_instances_state' or 'update_dag_run_state', which might have overlapping purposes.
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 'set_task_instances_state' or 'clear_task_instances'. The description only states what it does without context, prerequisites, or exclusions, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_variableC
Update a variable by key
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| value | No | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't mention whether this requires specific permissions, if updates are reversible, what happens when updating non-existent variables, or any rate limits. The description is insufficient for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just five words, front-loaded with the core action. There's zero wasted language, though this conciseness comes at the expense of completeness. Every word serves a purpose in stating the basic function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is severely incomplete. It doesn't explain what happens during updates, what values are acceptable, error conditions, or return values. The minimal description fails to provide adequate context for safe and effective 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 0%, so the description must compensate but adds no parameter information beyond the tool name. It doesn't explain what 'key' identifies, what 'value' represents, or what 'description' is for. The three parameters remain largely undocumented, failing to compensate for the schema gap.
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 'Update a variable by key' clearly states the action (update) and target (variable), but it's vague about what 'update' entails and doesn't distinguish from sibling tools like 'create_variable' or 'delete_variable'. It provides basic purpose but lacks specificity about what fields can be updated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_variable' or 'delete_variable', nor does it mention prerequisites such as the variable needing to exist first. There's no context about appropriate use cases or limitations.
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.
66 tool updates
v1.0.0- Changed
clear_dag_run1 field changed- added
Input schema / titleAdded value: +"clear_dag_runArguments"
- Changed
clear_task_instances1 field changed- added
Input schema / titleAdded value: +"clear_task_instancesArguments"
- Changed
create_connection1 field changed- added
Input schema / titleAdded value: +"create_connectionArguments"
- Changed
create_dataset_event1 field changed- added
Input schema / titleAdded value: +"create_dataset_eventArguments"
- Changed
create_variable1 field changed- added
Input schema / titleAdded value: +"create_variableArguments"
- Changed
delete_connection1 field changed- added
Input schema / titleAdded value: +"delete_connectionArguments"
- Changed
delete_dag1 field changed- added
Input schema / titleAdded value: +"delete_dagArguments"
- Changed
delete_dag_dataset_queued_event1 field changed- added
Input schema / titleAdded value: +"delete_dag_dataset_queued_eventArguments"
- Changed
delete_dag_dataset_queued_events1 field changed- added
Input schema / titleAdded value: +"delete_dag_dataset_queued_eventsArguments"
- Changed
delete_dag_run1 field changed- added
Input schema / titleAdded value: +"delete_dag_runArguments"
- Changed
delete_dataset_queued_events1 field changed- added
Input schema / titleAdded value: +"delete_dataset_queued_eventsArguments"
- Changed
delete_pool1 field changed- added
Input schema / titleAdded value: +"delete_poolArguments"
- Changed
delete_variable1 field changed- added
Input schema / titleAdded value: +"delete_variableArguments"
- Changed
fetch_dags1 field changed- added
Input schema / titleAdded value: +"get_dagsArguments"
- Changed
get_config1 field changed- added
Input schema / titleAdded value: +"get_configArguments"
- Changed
get_connection1 field changed- added
Input schema / titleAdded value: +"get_connectionArguments"
- Changed
get_dag1 field changed- added
Input schema / titleAdded value: +"get_dagArguments"
- Changed
get_dag_dataset_queued_event1 field changed- added
Input schema / titleAdded value: +"get_dag_dataset_queued_eventArguments"
- Changed
get_dag_dataset_queued_events1 field changed- added
Input schema / titleAdded value: +"get_dag_dataset_queued_eventsArguments"
- Changed
get_dag_details1 field changed- added
Input schema / titleAdded value: +"get_dag_detailsArguments"
- Changed
get_dag_run1 field changed- added
Input schema / titleAdded value: +"get_dag_runArguments"
- Changed
get_dag_runs1 field changed- added
Input schema / titleAdded value: +"get_dag_runsArguments"
- Changed
get_dag_runs_batch1 field changed- added
Input schema / titleAdded value: +"get_dag_runs_batchArguments"
- Changed
get_dag_source1 field changed- added
Input schema / titleAdded value: +"get_dag_sourceArguments"
- Changed
get_dag_stats1 field changed- added
Input schema / titleAdded value: +"get_dag_statsArguments"
- Changed
get_dag_tasks1 field changed- added
Input schema / titleAdded value: +"get_dag_tasksArguments"
- Changed
get_dataset1 field changed- added
Input schema / titleAdded value: +"get_datasetArguments"
- Changed
get_dataset_events1 field changed- added
Input schema / titleAdded value: +"get_dataset_eventsArguments"
- Changed
get_dataset_queued_events1 field changed- added
Input schema / titleAdded value: +"get_dataset_queued_eventsArguments"
- Changed
get_datasets1 field changed- added
Input schema / titleAdded value: +"get_datasetsArguments"
- Changed
get_event_log1 field changed- added
Input schema / titleAdded value: +"get_event_logArguments"
- Changed
get_event_logs1 field changed- added
Input schema / titleAdded value: +"get_event_logsArguments"
- Changed
get_health1 field changed- added
Input schema / titleAdded value: +"get_healthArguments"
- Changed
get_import_error1 field changed- added
Input schema / titleAdded value: +"get_import_errorArguments"
- Changed
get_import_errors1 field changed- added
Input schema / titleAdded value: +"get_import_errorsArguments"
- Changed
get_plugins1 field changed- added
Input schema / titleAdded value: +"get_pluginsArguments"
- Changed
get_pool1 field changed- added
Input schema / titleAdded value: +"get_poolArguments"
- Changed
get_pools1 field changed- added
Input schema / titleAdded value: +"get_poolsArguments"
- Changed
get_providers1 field changed- added
Input schema / titleAdded value: +"get_providersArguments"
- Changed
get_task1 field changed- added
Input schema / titleAdded value: +"get_taskArguments"
- Changed
get_task_instance1 field changed- added
Input schema / titleAdded value: +"get_task_instanceArguments"
- Changed
get_tasks1 field changed- added
Input schema / titleAdded value: +"get_tasksArguments"
- Changed
get_upstream_dataset_events1 field changed- added
Input schema / titleAdded value: +"get_upstream_dataset_eventsArguments"
- Changed
get_value1 field changed- added
Input schema / titleAdded value: +"get_valueArguments"
- Changed
get_variable1 field changed- added
Input schema / titleAdded value: +"get_variableArguments"
- Changed
get_version1 field changed- added
Input schema / titleAdded value: +"get_versionArguments"
- Changed
get_xcom_entries1 field changed- added
Input schema / titleAdded value: +"get_xcom_entriesArguments"
- Changed
get_xcom_entry1 field changed- added
Input schema / titleAdded value: +"get_xcom_entryArguments"
- Changed
list_connections1 field changed- added
Input schema / titleAdded value: +"list_connectionsArguments"
- Changed
list_task_instances1 field changed- added
Input schema / titleAdded value: +"list_task_instancesArguments"
- Changed
list_variables1 field changed- added
Input schema / titleAdded value: +"list_variablesArguments"
- Changed
patch_dag1 field changed- added
Input schema / titleAdded value: +"patch_dagArguments"
- Changed
patch_dags1 field changed- added
Input schema / titleAdded value: +"patch_dagsArguments"
- Changed
patch_pool1 field changed- added
Input schema / titleAdded value: +"patch_poolArguments"
- Changed
pause_dag1 field changed- added
Input schema / titleAdded value: +"pause_dagArguments"
- Changed
post_dag_run1 field changed- added
Input schema / titleAdded value: +"post_dag_runArguments"
- Changed
post_pool1 field changed- added
Input schema / titleAdded value: +"post_poolArguments"
- Changed
reparse_dag_file1 field changed- added
Input schema / titleAdded value: +"reparse_dag_fileArguments"
- Changed
set_dag_run_note1 field changed- added
Input schema / titleAdded value: +"set_dag_run_noteArguments"
- Changed
set_task_instances_state1 field changed- added
Input schema / titleAdded value: +"set_task_instances_stateArguments"
- Changed
test_connection1 field changed- added
Input schema / titleAdded value: +"test_connectionArguments"
- Changed
unpause_dag1 field changed- added
Input schema / titleAdded value: +"unpause_dagArguments"
- Changed
update_connection1 field changed- added
Input schema / titleAdded value: +"update_connectionArguments"
- Changed
update_dag_run_state1 field changed- added
Input schema / titleAdded value: +"update_dag_run_stateArguments"
- Changed
update_task_instance1 field changed- added
Input schema / titleAdded value: +"update_task_instanceArguments"
- Changed
update_variable1 field changed- added
Input schema / titleAdded value: +"update_variableArguments"
66 tool updates
- First observed
clear_dag_run - First observed
clear_task_instances - First observed
create_connection - First observed
create_dataset_event - First observed
create_variable - First observed
delete_connection - First observed
delete_dag - First observed
delete_dag_dataset_queued_event - First observed
delete_dag_dataset_queued_events - First observed
delete_dag_run - First observed
delete_dataset_queued_events - First observed
delete_pool - First observed
delete_variable - First observed
fetch_dags - First observed
get_config - First observed
get_connection - First observed
get_dag - First observed
get_dag_dataset_queued_event - First observed
get_dag_dataset_queued_events - First observed
get_dag_details - First observed
get_dag_run - First observed
get_dag_runs - First observed
get_dag_runs_batch - First observed
get_dag_source - First observed
get_dag_stats - First observed
get_dag_tasks - First observed
get_dataset - First observed
get_dataset_events - First observed
get_dataset_queued_events - First observed
get_datasets - First observed
get_event_log - First observed
get_event_logs - First observed
get_health - First observed
get_import_error - First observed
get_import_errors - First observed
get_plugins - First observed
get_pool - First observed
get_pools - First observed
get_providers - First observed
get_task - First observed
get_task_instance - First observed
get_tasks - First observed
get_upstream_dataset_events - First observed
get_value - First observed
get_variable - First observed
get_version - First observed
get_xcom_entries - First observed
get_xcom_entry - First observed
list_connections - First observed
list_task_instances - First observed
list_variables - First observed
patch_dag - First observed
patch_dags - First observed
patch_pool - First observed
pause_dag - First observed
post_dag_run - First observed
post_pool - First observed
reparse_dag_file - First observed
set_dag_run_note - First observed
set_task_instances_state - First observed
test_connection - First observed
unpause_dag - First observed
update_connection - First observed
update_dag_run_state - First observed
update_task_instance - First observed
update_variable
TDQS
Most tools have distinct purposes targeting specific resources and actions, such as clear_dag_run vs. delete_dag_run. However, some overlap exists, like get_dag_details and get_dag, which could cause confusion about which to use for DAG information, and get_tasks and get_dag_tasks appear redundant.
Tool names follow a highly consistent verb_noun pattern throughout, using snake_case uniformly. Examples include create_connection, delete_dag, get_config, and update_variable, making them predictable and easy to parse.
With 66 tools, the count is excessive for typical MCP server use, likely overwhelming for agents and indicating poor scoping. While Airflow is complex, this many tools suggests fragmentation rather than a streamlined interface.
The tool set provides comprehensive CRUD and lifecycle coverage for Airflow's domain, including DAGs, tasks, connections, variables, datasets, and more. No obvious gaps are present; it supports full management workflows from creation to deletion and monitoring.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Related MCP Servers
- AlicenseBqualityFmaintenanceA Model Context Protocol server that allows AI assistants to interact with Prefect's workflow automation platform through natural language, enabling users to manage flows, deployments, tasks, and other Prefect resources via conversational commands.4615Apache 2.0
- -licenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server that provides access to messages from an external API endpoint using Bearer token authentication for integration with Claude Desktop.-
- AlicenseAqualityDmaintenanceA production-ready Model Context Protocol server that enables AI assistants and applications to interact with Airtable bases through a standardized interface with secure OAuth 2.0 authentication.103MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Apache Airflow through the Model Context Protocol, allowing users to manage DAGs, task instances, variables, connections, pools, XComs, and datasets.MIT
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/nikhil-ganage/mcp-server-airflow-token'
If you have feedback or need assistance with the MCP directory API, please join our Discord server