Skip to main content
Glama
nikhil-ganage

MCP Server Airflow Token

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

/api/v1/dags

Get DAG Details

/api/v1/dags/{dag_id}

Pause DAG

/api/v1/dags/{dag_id}

Unpause DAG

/api/v1/dags/{dag_id}

Update DAG

/api/v1/dags/{dag_id}

Delete DAG

/api/v1/dags/{dag_id}

Get DAG Source

/api/v1/dagSources/{file_token}

Patch Multiple DAGs

/api/v1/dags

Reparse DAG File

/api/v1/dagSources/{file_token}/reparse

DAG Runs

List DAG Runs

/api/v1/dags/{dag_id}/dagRuns

Create DAG Run

/api/v1/dags/{dag_id}/dagRuns

Get DAG Run Details

/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}

Update DAG Run

/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}

Delete DAG Run

/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}

Get DAG Runs Batch

/api/v1/dags/~/dagRuns/list

Clear DAG Run

/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/clear

Set DAG Run Note

/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/setNote

Get Upstream Dataset Events

/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/upstreamDatasetEvents

Tasks

List DAG Tasks

/api/v1/dags/{dag_id}/tasks

Get Task Details

/api/v1/dags/{dag_id}/tasks/{task_id}

Get Task Instance

/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}

List Task Instances

/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances

Update Task Instance

/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}

Clear Task Instances

/api/v1/dags/{dag_id}/clearTaskInstances

Set Task Instances State

/api/v1/dags/{dag_id}/updateTaskInstancesState

Variables

List Variables

/api/v1/variables

Create Variable

/api/v1/variables

Get Variable

/api/v1/variables/{variable_key}

Update Variable

/api/v1/variables/{variable_key}

Delete Variable

/api/v1/variables/{variable_key}

Connections

List Connections

/api/v1/connections

Create Connection

/api/v1/connections

Get Connection

/api/v1/connections/{connection_id}

Update Connection

/api/v1/connections/{connection_id}

Delete Connection

/api/v1/connections/{connection_id}

Test Connection

/api/v1/connections/test

Pools

List Pools

/api/v1/pools

Create Pool

/api/v1/pools

Get Pool

/api/v1/pools/{pool_name}

Update Pool

/api/v1/pools/{pool_name}

Delete Pool

/api/v1/pools/{pool_name}

XComs

List XComs

/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries

Get XCom Entry

/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries/{xcom_key}

Datasets

List Datasets

/api/v1/datasets

Get Dataset

/api/v1/datasets/{uri}

Get Dataset Events

/api/v1/datasetEvents

Create Dataset Event

/api/v1/datasetEvents

Get DAG Dataset Queued Event

/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents/{uri}

Get DAG Dataset Queued Events

/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents

Delete DAG Dataset Queued Event

/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents/{uri}

Delete DAG Dataset Queued Events

/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents

Get Dataset Queued Events

/api/v1/datasets/{uri}/dagRuns/queued/datasetEvents

Delete Dataset Queued Events

/api/v1/datasets/{uri}/dagRuns/queued/datasetEvents

Monitoring

Get Health

/api/v1/health

DAG Stats

Get DAG Stats

/api/v1/dags/statistics

Config

Get Config

/api/v1/config

Plugins

Get Plugins

/api/v1/plugins

Providers

List Providers

/api/v1/providers

Event Logs

List Event Logs

/api/v1/eventLogs

Get Event Log

/api/v1/eventLogs/{event_log_id}

System

Get Import Errors

/api/v1/importErrors

Get Import Error Details

/api/v1/importErrors/{import_error_id}

Get Health Status

/api/v1/health

Get Version

/api/v1/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:

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 v1

Basic 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 v1

Note: 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-token

Add to your claude_desktop_config.json:

{
  "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-only

In 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 run

make 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-sse

Installation

You can install the server using pip or uvx:

# Using pip
pip install mcp-server-airflow-token

# Using uvx (recommended)
uvx mcp-server-airflow-token

Development

Setting up Development Environment

  1. Clone the repository:

git clone https://github.com/nikhil-ganage/mcp-server-airflow-token.git
cd mcp-server-airflow-token
  1. Install development dependencies:

uv sync --dev
  1. Create a .env file for environment variables (optional for development):

touch .env

Note: No environment variables are required for running tests. The AIRFLOW_HOST defaults to http://localhost:8080 for development and testing purposes.

Running Tests

The project uses pytest for testing with the following commands available:

# Run all tests
make test

Code Quality

# Run linting
make lint

# Run code formatting
make format

Continuous 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 main branch

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

MIT License

Available Tools

66 tools
clear_dag_runD

Clear a DAG run

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
dag_run_idYes
dry_runNo

TDQS

D1.7/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure 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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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

Schema description coverage is 0%, and the description 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.

Purpose2/5

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.

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
task_idsNo
start_dateNo
end_dateNo
include_subdagsNo
include_parentdagNo
include_upstreamNo
include_downstreamNo
include_futureNo
include_pastNo
dry_runNo
reset_dag_runsNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden but 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description 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

ParametersJSON Schema
NameRequiredDescriptionDefault
conn_idYes
conn_typeYes
hostNo
portNo
loginNo
passwordNo
schemaNo
extraNo

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. It 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_uriYes
extraNo

TDQS

D1.7/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. '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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
valueYes
descriptionNo

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention 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

ParametersJSON Schema
NameRequiredDescriptionDefault
conn_idYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It'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.

Completeness2/5

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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It 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.

Purpose4/5

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

The description clearly states the action ('Delete') and the resource ('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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. '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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
uriYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries full burden 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate 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.

Purpose4/5

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

The description clearly states the action ('Delete') and 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
beforeNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
dag_run_idYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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

The description clearly states the action ('Delete') and 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYes
beforeNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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

The description clearly states the action ('Delete') and 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
pool_nameYes

TDQS

D1.8/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. '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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters2/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. It 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

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It 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.

Purpose4/5

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

The description clearly states the action ('Delete') and 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, it 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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
order_byNo
tagsNo
only_activeNo
pausedNo
dag_id_patternNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'get_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

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNo

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
conn_idYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
uriYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It 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.

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It'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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
fieldsNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate 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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
dag_run_idYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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

The description clearly states the action ('Get') and 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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
limitNo
offsetNo
execution_date_gteNo
execution_date_lteNo
start_date_gteNo
start_date_lteNo
end_date_gteNo
end_date_lteNo
updated_at_gteNo
updated_at_lteNo
stateNo
order_byNo

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. 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)

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idsNo
execution_date_gteNo
execution_date_lteNo
start_date_gteNo
start_date_lteNo
end_date_gteNo
end_date_lteNo
stateNo
order_byNo
page_offsetNo
page_limitNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault
file_tokenYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. '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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idsNo

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. '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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries full burden. It only states '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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYes

TDQS

C2.4/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states '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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, it 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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
order_byNo
dataset_idNo
source_dag_idNo
source_task_idNo
source_run_idNo
source_map_indexNo

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. '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.

Conciseness3/5

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.

Completeness1/5

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

For a tool with 8 parameters, no 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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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

Schema description coverage is 0%, and the description 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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description 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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
order_byNo
uri_patternNo
dag_idsNo

TDQS

D1.6/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. '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.

Conciseness4/5

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.

Completeness1/5

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

Given the tool's complexity (5 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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
event_log_idYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, it 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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
order_byNo
dag_idNo
task_idNo
run_idNo
map_indexNo
try_numberNo
eventNo
ownerNo
beforeNo
afterNo
included_eventsNo
excluded_eventsNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. '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.

Conciseness3/5

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.

Completeness2/5

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

Given the tool's simplicity (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.

Parameters4/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
import_error_idYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate 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.

Purpose4/5

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

The description clearly states the action ('Get') and 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
order_byNo

TDQS

C2.3/5.0
Behavior1/5

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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate 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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It'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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
pool_nameYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
order_byNo

TDQS

D1.7/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure 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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
task_idYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. '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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
task_idYes
dag_run_idYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It 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.

Purpose4/5

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

The description clearly states the action ('Get') and 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
order_byNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate 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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
dag_run_idYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionYes
optionYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. '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.

Conciseness5/5

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.

Completeness2/5

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

Given the tool has no 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.

Parameters4/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
dag_run_idYes
task_idYes
map_indexNo
xcom_keyNo
limitNo
offsetNo

TDQS

D1.7/5.0
Behavior1/5

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

With no annotations provided, the description carries 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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate 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.

Purpose2/5

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.

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
dag_run_idYes
task_idYes
xcom_keyYes
map_indexNo
deserializeNo
stringifyNo

TDQS

D1.7/5.0
Behavior1/5

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

With no annotations provided, the description carries 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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
order_byNo

TDQS

C2.1/5.0
Behavior1/5

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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
dag_run_idYes
execution_date_gteNo
execution_date_lteNo
start_date_gteNo
start_date_lteNo
end_date_gteNo
end_date_lteNo
updated_at_gteNo
updated_at_lteNo
duration_gteNo
duration_lteNo
stateNo
poolNo
queueNo
limitNo
offsetNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate 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.

Purpose4/5

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

The description clearly states the verb ('List') and 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, it 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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
order_byNo

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
is_pausedNo
tagsNo

TDQS

D1.6/5.0
Behavior1/5

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.

Conciseness4/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_id_patternNo
is_pausedNo
tagsNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault
pool_nameYes
slotsNo
descriptionNo
include_deferredNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. '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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
dag_run_idNo
data_interval_endNo
data_interval_startNo
end_dateNo
execution_dateNo
external_triggerNo
last_scheduling_decisionNo
logical_dateNo
noteNo
run_typeNo
start_dateNo

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
slotsYes
descriptionNo
include_deferredNo

TDQS

D1.5/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure 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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives. There'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

ParametersJSON Schema
NameRequiredDescriptionDefault
file_tokenYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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

Schema description coverage is 0%, and the description 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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
dag_run_idYes
noteYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description 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.

Conciseness5/5

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.

Completeness2/5

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

For a mutation tool with 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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
stateYes
task_idsNo
execution_dateNo
include_upstreamNo
include_downstreamNo
include_futureNo
include_pastNo
dry_runNo

TDQS

D1.3/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure 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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
conn_typeYes
hostNo
portNo
loginNo
passwordNo
schemaNo
extraNo

TDQS

D1.7/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure 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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. '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.

Conciseness5/5

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.

Completeness2/5

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

For a mutation tool with 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.

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It 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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It 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

ParametersJSON Schema
NameRequiredDescriptionDefault
conn_idYes
conn_typeNo
hostNo
portNo
loginNo
passwordNo
schemaNo
extraNo

TDQS

C2.2/5.0
Behavior2/5

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

With no annotations provided, the description carries 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.

Conciseness4/5

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.

Completeness2/5

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

For a mutation tool with 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.

Parameters2/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
dag_run_idYes
stateNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It 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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault
dag_idYes
dag_run_idYes
task_idYes
stateNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate 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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as '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

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
valueNo
descriptionNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description 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.

Conciseness5/5

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.

Completeness2/5

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

For a mutation tool with 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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate 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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like '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.

  1. 66 tool updatesv1.0.0
    • Changedclear_dag_run1 field changed
      • addedInput schema / title
        Added value: +"clear_dag_runArguments"
    • Changedclear_task_instances1 field changed
      • addedInput schema / title
        Added value: +"clear_task_instancesArguments"
    • Changedcreate_connection1 field changed
      • addedInput schema / title
        Added value: +"create_connectionArguments"
    • Changedcreate_dataset_event1 field changed
      • addedInput schema / title
        Added value: +"create_dataset_eventArguments"
    • Changedcreate_variable1 field changed
      • addedInput schema / title
        Added value: +"create_variableArguments"
    • Changeddelete_connection1 field changed
      • addedInput schema / title
        Added value: +"delete_connectionArguments"
    • Changeddelete_dag1 field changed
      • addedInput schema / title
        Added value: +"delete_dagArguments"
    • Changeddelete_dag_dataset_queued_event1 field changed
      • addedInput schema / title
        Added value: +"delete_dag_dataset_queued_eventArguments"
    • Changeddelete_dag_dataset_queued_events1 field changed
      • addedInput schema / title
        Added value: +"delete_dag_dataset_queued_eventsArguments"
    • Changeddelete_dag_run1 field changed
      • addedInput schema / title
        Added value: +"delete_dag_runArguments"
    • Changeddelete_dataset_queued_events1 field changed
      • addedInput schema / title
        Added value: +"delete_dataset_queued_eventsArguments"
    • Changeddelete_pool1 field changed
      • addedInput schema / title
        Added value: +"delete_poolArguments"
    • Changeddelete_variable1 field changed
      • addedInput schema / title
        Added value: +"delete_variableArguments"
    • Changedfetch_dags1 field changed
      • addedInput schema / title
        Added value: +"get_dagsArguments"
    • Changedget_config1 field changed
      • addedInput schema / title
        Added value: +"get_configArguments"
    • Changedget_connection1 field changed
      • addedInput schema / title
        Added value: +"get_connectionArguments"
    • Changedget_dag1 field changed
      • addedInput schema / title
        Added value: +"get_dagArguments"
    • Changedget_dag_dataset_queued_event1 field changed
      • addedInput schema / title
        Added value: +"get_dag_dataset_queued_eventArguments"
    • Changedget_dag_dataset_queued_events1 field changed
      • addedInput schema / title
        Added value: +"get_dag_dataset_queued_eventsArguments"
    • Changedget_dag_details1 field changed
      • addedInput schema / title
        Added value: +"get_dag_detailsArguments"
    • Changedget_dag_run1 field changed
      • addedInput schema / title
        Added value: +"get_dag_runArguments"
    • Changedget_dag_runs1 field changed
      • addedInput schema / title
        Added value: +"get_dag_runsArguments"
    • Changedget_dag_runs_batch1 field changed
      • addedInput schema / title
        Added value: +"get_dag_runs_batchArguments"
    • Changedget_dag_source1 field changed
      • addedInput schema / title
        Added value: +"get_dag_sourceArguments"
    • Changedget_dag_stats1 field changed
      • addedInput schema / title
        Added value: +"get_dag_statsArguments"
    • Changedget_dag_tasks1 field changed
      • addedInput schema / title
        Added value: +"get_dag_tasksArguments"
    • Changedget_dataset1 field changed
      • addedInput schema / title
        Added value: +"get_datasetArguments"
    • Changedget_dataset_events1 field changed
      • addedInput schema / title
        Added value: +"get_dataset_eventsArguments"
    • Changedget_dataset_queued_events1 field changed
      • addedInput schema / title
        Added value: +"get_dataset_queued_eventsArguments"
    • Changedget_datasets1 field changed
      • addedInput schema / title
        Added value: +"get_datasetsArguments"
    • Changedget_event_log1 field changed
      • addedInput schema / title
        Added value: +"get_event_logArguments"
    • Changedget_event_logs1 field changed
      • addedInput schema / title
        Added value: +"get_event_logsArguments"
    • Changedget_health1 field changed
      • addedInput schema / title
        Added value: +"get_healthArguments"
    • Changedget_import_error1 field changed
      • addedInput schema / title
        Added value: +"get_import_errorArguments"
    • Changedget_import_errors1 field changed
      • addedInput schema / title
        Added value: +"get_import_errorsArguments"
    • Changedget_plugins1 field changed
      • addedInput schema / title
        Added value: +"get_pluginsArguments"
    • Changedget_pool1 field changed
      • addedInput schema / title
        Added value: +"get_poolArguments"
    • Changedget_pools1 field changed
      • addedInput schema / title
        Added value: +"get_poolsArguments"
    • Changedget_providers1 field changed
      • addedInput schema / title
        Added value: +"get_providersArguments"
    • Changedget_task1 field changed
      • addedInput schema / title
        Added value: +"get_taskArguments"
    • Changedget_task_instance1 field changed
      • addedInput schema / title
        Added value: +"get_task_instanceArguments"
    • Changedget_tasks1 field changed
      • addedInput schema / title
        Added value: +"get_tasksArguments"
    • Changedget_upstream_dataset_events1 field changed
      • addedInput schema / title
        Added value: +"get_upstream_dataset_eventsArguments"
    • Changedget_value1 field changed
      • addedInput schema / title
        Added value: +"get_valueArguments"
    • Changedget_variable1 field changed
      • addedInput schema / title
        Added value: +"get_variableArguments"
    • Changedget_version1 field changed
      • addedInput schema / title
        Added value: +"get_versionArguments"
    • Changedget_xcom_entries1 field changed
      • addedInput schema / title
        Added value: +"get_xcom_entriesArguments"
    • Changedget_xcom_entry1 field changed
      • addedInput schema / title
        Added value: +"get_xcom_entryArguments"
    • Changedlist_connections1 field changed
      • addedInput schema / title
        Added value: +"list_connectionsArguments"
    • Changedlist_task_instances1 field changed
      • addedInput schema / title
        Added value: +"list_task_instancesArguments"
    • Changedlist_variables1 field changed
      • addedInput schema / title
        Added value: +"list_variablesArguments"
    • Changedpatch_dag1 field changed
      • addedInput schema / title
        Added value: +"patch_dagArguments"
    • Changedpatch_dags1 field changed
      • addedInput schema / title
        Added value: +"patch_dagsArguments"
    • Changedpatch_pool1 field changed
      • addedInput schema / title
        Added value: +"patch_poolArguments"
    • Changedpause_dag1 field changed
      • addedInput schema / title
        Added value: +"pause_dagArguments"
    • Changedpost_dag_run1 field changed
      • addedInput schema / title
        Added value: +"post_dag_runArguments"
    • Changedpost_pool1 field changed
      • addedInput schema / title
        Added value: +"post_poolArguments"
    • Changedreparse_dag_file1 field changed
      • addedInput schema / title
        Added value: +"reparse_dag_fileArguments"
    • Changedset_dag_run_note1 field changed
      • addedInput schema / title
        Added value: +"set_dag_run_noteArguments"
    • Changedset_task_instances_state1 field changed
      • addedInput schema / title
        Added value: +"set_task_instances_stateArguments"
    • Changedtest_connection1 field changed
      • addedInput schema / title
        Added value: +"test_connectionArguments"
    • Changedunpause_dag1 field changed
      • addedInput schema / title
        Added value: +"unpause_dagArguments"
    • Changedupdate_connection1 field changed
      • addedInput schema / title
        Added value: +"update_connectionArguments"
    • Changedupdate_dag_run_state1 field changed
      • addedInput schema / title
        Added value: +"update_dag_run_stateArguments"
    • Changedupdate_task_instance1 field changed
      • addedInput schema / title
        Added value: +"update_task_instanceArguments"
    • Changedupdate_variable1 field changed
      • addedInput schema / title
        Added value: +"update_variableArguments"
  2. 66 tool updates
    • First observedclear_dag_run
    • First observedclear_task_instances
    • First observedcreate_connection
    • First observedcreate_dataset_event
    • First observedcreate_variable
    • First observeddelete_connection
    • First observeddelete_dag
    • First observeddelete_dag_dataset_queued_event
    • First observeddelete_dag_dataset_queued_events
    • First observeddelete_dag_run
    • First observeddelete_dataset_queued_events
    • First observeddelete_pool
    • First observeddelete_variable
    • First observedfetch_dags
    • First observedget_config
    • First observedget_connection
    • First observedget_dag
    • First observedget_dag_dataset_queued_event
    • First observedget_dag_dataset_queued_events
    • First observedget_dag_details
    • First observedget_dag_run
    • First observedget_dag_runs
    • First observedget_dag_runs_batch
    • First observedget_dag_source
    • First observedget_dag_stats
    • First observedget_dag_tasks
    • First observedget_dataset
    • First observedget_dataset_events
    • First observedget_dataset_queued_events
    • First observedget_datasets
    • First observedget_event_log
    • First observedget_event_logs
    • First observedget_health
    • First observedget_import_error
    • First observedget_import_errors
    • First observedget_plugins
    • First observedget_pool
    • First observedget_pools
    • First observedget_providers
    • First observedget_task
    • First observedget_task_instance
    • First observedget_tasks
    • First observedget_upstream_dataset_events
    • First observedget_value
    • First observedget_variable
    • First observedget_version
    • First observedget_xcom_entries
    • First observedget_xcom_entry
    • First observedlist_connections
    • First observedlist_task_instances
    • First observedlist_variables
    • First observedpatch_dag
    • First observedpatch_dags
    • First observedpatch_pool
    • First observedpause_dag
    • First observedpost_dag_run
    • First observedpost_pool
    • First observedreparse_dag_file
    • First observedset_dag_run_note
    • First observedset_task_instances_state
    • First observedtest_connection
    • First observedunpause_dag
    • First observedupdate_connection
    • First observedupdate_dag_run_state
    • First observedupdate_task_instance
    • First observedupdate_variable

TDQS

C2.5/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count2/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    A 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.
    46
    15
    Apache 2.0
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A Model Context Protocol server that provides access to messages from an external API endpoint using Bearer token authentication for integration with Claude Desktop.
    -
  • A
    license
    A
    quality
    D
    maintenance
    A 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.
    10
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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

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