Skip to main content
Glama
ssasuoirafen

airflow-mcp-server

by ssasuoirafen

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Each tool has a clearly distinct purpose. For example, 'get_dag' retrieves a single DAG, while 'list_dags' lists multiple; 'clear_task_instances' resets tasks, distinct from 'trigger_dag_run'. No overlapping functionality.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., 'get_dag', 'list_pools', 'set_dag_paused'). Verbs like 'get' for single entities, 'list' for collections, 'clear', 'set', and 'trigger' are used uniformly.

    Tool Count5/5

    14 tools is well-scoped for an Airflow MCP server. Core operations for DAGs, runs, task instances, pools, health, and version are covered without bloat or excessive specialization.

    Completeness4/5

    The toolset covers the main lifecycle for DAGs (list, get, pause, trigger), runs, and task instances (list, get, clear, logs). However, it lacks management operations for pools (only list), DAG run deletion, and advanced task retry options, leaving minor gaps for some workflows.

  • Average 3.8/5 across 14 of 14 tools scored. Lowest: 3.1/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 10 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    Annotations already declare readOnlyHint=true. The description adds no behavioral detail beyond 'details', failing to disclose the nature or scope of returned data. With annotations present, the bar is lower, but the description still provides no additional behavioral context.

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

    Conciseness4/5

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

    Single sentence is concise and front-loaded. However, it could be slightly more informative without losing conciseness, e.g., by mentioning output nature.

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

    Completeness3/5

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

    Given the simplicity (one parameter, read-only, output schema exists), the description is adequate but lacks usage and behavioral context. It does not cover when to prefer this over 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?

    Schema description coverage is 0% for the dag_id parameter. The description only says 'by dag_id' without explaining the parameter's format, allowed values, or expected usage. For a single required parameter, this minimal addition is insufficient.

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

    Purpose5/5

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

    Description clearly states the verb 'Get', the resource 'single DAG's details', and the key parameter 'dag_id'. It distinguishes from sibling tools like list_dags (which lists all DAGs) and get_dag_run (which retrieves a 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 get_dag_run or list_dags. The description implies usage when a specific dag_id is known, but lacks explicit when-to-use or when-not-to-use context.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, and the description ('Get') is consistent. There is no contradiction. However, the description adds no behavioral details beyond what annotations provide.

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

    Conciseness5/5

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

    The description is a single, concise sentence with no extraneous information. It is front-loaded and efficient.

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

    Completeness2/5

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

    Given the tool has 3 required parameters and no parameter descriptions, the description is insufficient. It does not explain parameter semantics or provide usage context, even though output schema exists.

    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 merely restates parameter names (dag_id, dag_run_id, task_id) without adding any meaning, validations, or examples. The description fails to compensate for the lack of schema descriptions.

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

    Purpose5/5

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

    The description clearly states the verb 'Get' and the resource 'single task instance', and specifies the three required parameters (dag_id, dag_run_id, task_id). This distinguishes it from sibling tools like list_task_instances and clear_task_instances.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives such as list_task_instances or clear_task_instances. No context or exclusions are given.

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

  • Behavior3/5

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

    Description mentions ordering behavior ('most recent first'), which adds value beyond the readOnlyHint annotation. However, it omits pagination details, limits, or any side effects; the annotation already declares read-only.

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

    Conciseness4/5

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

    Single sentence, very concise and front-loaded. However, for a tool with 5 parameters, it could provide a bit more high-level context without becoming verbose.

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

    Completeness2/5

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

    Despite having output schema and annotations, the description is too brief for a tool with multiple filtering and pagination options. It does not explain filtering by state, limit/offset, or ordering beyond the default.

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

    Parameters3/5

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

    Schema coverage is 100% with descriptions for all 5 parameters. The description adds no extra parameter context beyond 'most recent first', which is implied by the default order_by. Baseline of 3 is appropriate.

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

    Purpose5/5

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

    Description clearly states 'List runs of a DAG' with specific verb 'list' and resource 'runs of a DAG', and adds ordering 'most recent first'. It distinguishes from siblings like get_dag_run (single run) and list_dags (list DAGs).

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives (e.g., get_dag_run for a single run). The context implies usage but lacks exclusions or prerequisites.

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

  • Behavior2/5

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

    Annotations indicate readOnlyHint=false and destructiveHint=false, but the description adds no behavioral details beyond the basic action. It does not disclose side effects, permissions, rate limits, or the impact on the DAG state, which is a gap for a write operation.

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

    Conciseness4/5

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

    The description is a single sentence with no fluff, front-loaded with the action verb. It is concise but could include additional useful context without losing brevity.

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

    Completeness2/5

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

    Despite having 5 parameters and an output schema, the description offers no extra context about typical usage, error scenarios, or integration hints. It is too minimal for a write operation of this complexity.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the input schema already explains all parameters. The description adds no parameter-level meaning beyond what the schema provides, meeting the baseline.

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

    Purpose5/5

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

    The description 'Trigger a new run of a DAG' uses a specific verb ('Trigger') and resource ('a new run of a DAG'), which clearly distinguishes it from sibling tools that list, inspect, or manage DAG states.

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

    Usage Guidelines3/5

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

    No explicit when-to-use or when-not-to-use guidance is provided. The context is implied: use this to start a DAG run. No alternatives or exclusions are mentioned, which is adequate but not helpful for an agent choosing between similar actions.

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

  • Behavior3/5

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

    The annotation declares readOnlyHint=true, and the description's 'Get' is consistent. However, no additional behavioral traits are disclosed (e.g., error handling, response structure) beyond what annotations already convey.

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

    Conciseness5/5

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

    A single, clear sentence with no unnecessary words. It is efficiently front-loaded with key information.

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

    Completeness4/5

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

    For a simple read tool with few parameters and an existing output schema, the description is minimally adequate. However, it could mention the response nature (e.g., 'returns a single DAG run object').

    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 only repeats parameter names without explaining their meaning, format, or constraints. While names are self-explanatory, the description adds no value beyond the schema.

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

    Purpose5/5

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

    The description clearly states the action (get), resource (single DAG run), and required identifiers (dag_id, dag_run_id). It is specific and distinguishes from sibling tools like list_dag_runs.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives such as list_dag_runs or other get tools. The description does not provide context for appropriate usage.

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

  • Behavior3/5

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

    The annotations already declare readOnlyHint=true, so the description's 'List' action is consistent. However, the description adds no additional behavioral context beyond that, such as pagination behavior or rate limits. With annotations covering safety, the description is adequate but minimal.

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

    Conciseness5/5

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

    The description is a single short sentence with immediate verb and resource. No wasted words; every term earns its place.

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

    Completeness4/5

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

    Despite its brevity, the description captures the core purpose. With an output schema present and all parameters documented, the description is complete enough. Could mention filtering support, but not necessary given the schema.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the input schema already documents all 6 parameters thoroughly. The description adds little extra meaning beyond listing returned fields. With high schema coverage, a baseline score of 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states the verb 'List' and resource 'DAGs', and specifies the fields returned (pause state, schedule, owners, tags). This distinguishes it from sibling tools like 'get_dag' (single DAG) and 'list_dag_runs' (runs).

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool vs alternatives, such as when to use 'get_dag' for details or 'list_dag_runs' for runs. The usage context must be inferred 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.

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, so the safety profile is clear. The description adds that it returns states and timings, but does not elaborate on pagination behavior, filtering capabilities, or any other operational traits. With annotations covering the read-only nature, the description provides minimal extra behavioral context.

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

    Conciseness4/5

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

    The description is a single sentence with 8 words, front-loading the key action. It is concise and avoids fluff, but it is at the edge of being too terse.

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

    Completeness3/5

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

    Given the tool has 5 parameters and an output schema, the description is minimal. It does not mention filtering by state, pagination, or limits. The output schema likely documents return values, so the description is adequate but incomplete for a full understanding without consulting the schema.

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

    Parameters3/5

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

    The input schema has 100% description coverage, so all parameters are already documented in the schema. The tool description does not add any additional meaning or usage hints beyond what is in the schema, such as explaining the limit cap or state filtering. Baseline is 3 because schema covers the parameters.

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

    Purpose5/5

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

    The description clearly states the tool lists task instances within a DAG run and mentions it returns states and timings. This distinguishes it from siblings like get_task_instance (single) and clear_task_instances (delete). The verb 'list' and resource 'task instances' are specific.

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

    Usage Guidelines3/5

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

    No explicit guidance on when to use this tool versus alternatives such as get_task_instance or list_dag_runs. The context is implied by the name and description, but there are no when-not-to-use instructions or sibling comparisons.

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

  • Behavior3/5

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

    Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds 'Pause or unpause', which aligns with idempotency but offers no additional behavioral context like effects on running tasks or required permissions.

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

    Conciseness5/5

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

    The description is a single front-loaded sentence that conveys the core action without any unnecessary words. Every part serves a purpose.

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

    Completeness4/5

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

    For a simple setter tool with full schema coverage and an output schema (indicated by context), the description is sufficiently complete. It covers the key action and leaves no critical gaps.

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

    Parameters3/5

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

    Schema coverage is 100% with clear descriptions for both parameters (dag_id, is_paused). The description does not add extra meaning beyond what the schema provides, meeting the baseline.

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

    Purpose5/5

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

    The description clearly states the tool's purpose: to pause or unpause a DAG. It uses a specific verb (set) and resource (dag paused), and distinguishes from siblings like trigger_dag_run or list_dags.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it or any prerequisites, leaving the agent to infer usage from the tool name and schema.

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

  • Behavior4/5

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

    Annotations provide readOnlyHint=true, confirming safety. The description adds value by detailing that slot usage information is returned, which is not in annotations. No contradictions.

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

    Conciseness5/5

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

    One sentence with no extraneous information. Efficiently described.

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

    Completeness4/5

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

    Given the presence of an output schema (not shown) and simple pagination parameters, the description covers the key purpose and return content. Minor gap: no mention of default limit or ordering behavior.

    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 coverage is 0% and the description does not explain the limit and offset parameters. While their names hint at pagination, the description adds no additional meaning or constraints.

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

    Purpose5/5

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

    The description clearly states the verb 'list' and the resource 'worker pools', and specifies slot usage details (occupied/running/queued/open). This distinguishes it from sibling tools which operate on DAGs, tasks, etc.

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

    Usage Guidelines3/5

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

    The description implies usage for listing pools but does not provide explicit when-to-use or when-not-to-use guidance. Sibling tool names do suggest different domains, but the description itself lacks direct usage context.

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

  • Behavior4/5

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

    Annotations already provide readOnlyHint=true, so the description adds value by specifying the output includes filename and stack trace. It does not contradict annotations and provides behavioral context for what the tool returns.

    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?

    Two sentences, front-loaded with the verb 'List' and the resource 'DAG import errors'. Every sentence earns its place, with no wasted words. Highly efficient.

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

    Completeness4/5

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

    Given the tool's simplicity (list operation, optional pagination params), the description explains the purpose, output content, and typical use case. An output schema exists, so return values are not needed in description. Missing details about pagination are implicit. Generally complete.

    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% for the two parameters (limit, offset). The description does not mention these parameters at all, so it adds no semantic meaning beyond the schema. For a tool with 2 parameters, the description should compensate for the lack of schema descriptions, but it fails to do so.

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

    Purpose5/5

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

    Description clearly states it lists DAG import errors (parse failures) with filename and stack trace. It also provides the specific use case: finding why a DAG is missing or broken. This distinguishes it from sibling tools like get_dag or list_dags.

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

    Usage Guidelines4/5

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

    Description says 'The quickest way to find why a DAG is missing from the list or broken', which gives clear context for when to use this tool. However, it does not explicitly state when not to use it or mention alternatives, but the context is strong.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true. The description adds the specific components checked but nothing about rate limits, side effects, or response structure beyond what annotations provide.

    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 purpose, no wasted words. Perfectly concise.

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

    Completeness4/5

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

    Given no parameters and presence of output schema, the description is adequate. It lists components but could optionally mention typical return format (e.g., status strings).

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

    Parameters4/5

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

    No parameters exist, so the description cannot add meaning beyond schema. Baseline 4 for 0 params is appropriate.

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

    Purpose5/5

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

    The description clearly states it returns Airflow component health for specific components (metadatabase, scheduler, triggerer, dag-processor), distinguishing it from siblings like get_dag or get_airflow_version.

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

    Usage Guidelines4/5

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

    The description implies usage for health checks, but does not explicitly state when to use versus alternatives or provide exclusions. However, the tool name and context make it clear.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true. The description adds that it returns a version string, but does not disclose additional behavioral traits such as authentication requirements or response format details. It does not contradict annotations.

    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?

    Two short, front-loaded sentences: the first states the core function, the second adds usage context. No redundant words.

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

    Completeness5/5

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

    Given the tool has no parameters, an output schema is present, and annotations are provided, the description sufficiently covers what the tool does and when to use it.

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

    Parameters4/5

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

    There are zero parameters and schema coverage is 100% (trivially). The description adds no parameter information, but none is needed. Baseline for zero params is 4.

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

    Purpose5/5

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

    The description explicitly states 'Return the Airflow version reported by the API', which is a specific verb and resource. It clearly distinguishes from the sibling tool get_airflow_health (health status) by focusing on version.

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

    Usage Guidelines4/5

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

    The description provides clear context: 'Handy for confirming connectivity and which Airflow major version is in use.' It implies when to use (connectivity check) but does not explicitly state when not to use or name alternatives beyond the implied health check.

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

  • Behavior5/5

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

    Description explains that only the trailing portion is returned by default (where errors/tracebacks are), and implies that setting tail_chars=0 retrieves full log. This adds value beyond the readOnlyHint annotation, disclosing size-related 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?

    Two sentences with no unnecessary words. Front-loaded with the core purpose, then immediately addresses the key behavioral nuance about log size and truncation.

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

    Completeness4/5

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

    With output schema present, return value details are not needed. Description covers the primary behavior and default truncation. Could mention that logs are for a single attempt, but 'attempt' is already implied by 'try_number' parameter. Minor gap: no mention of potential errors or required permissions, but annotations indicate read-only.

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

    Parameters3/5

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

    Input schema covers all 5 parameters with descriptions (100% coverage). Description does not add significant new information about parameters; it merely states the default truncation behavior already implied by the 'tail_chars' description. Baseline score of 3 is appropriate.

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

    Purpose5/5

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

    Description clearly states 'Read the log for one task attempt,' specifying the action and resource. This distinguishes it from sibling tools like 'get_task_instance' (which returns task info) and 'clear_task_instances' (which modifies state).

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

    Usage Guidelines4/5

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

    Description implicitly advises that logs can be large and default behavior returns trailing portion, guiding usage of the 'tail_chars' parameter. However, it does not explicitly state when to use this tool versus alternatives like 'get_task_instance' for debugging.

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

  • Behavior5/5

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

    The description explicitly states the destructive nature (resets state, re-executes work), which aligns with annotations (destructiveHint: true). It adds context beyond annotations by explaining the consequence and suggesting dry run for safety.

    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 two short sentences, front-loaded with the core purpose 'Clear task instances so they re-run.' Every sentence adds value; no wasted text.

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

    Completeness5/5

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

    Given the tool has 7 parameters (all covered by schema) and an output schema, the description provides essential behavioral context (destructive, dry run) without needing to repeat schema details. It is complete for the complexity level.

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

    Parameters3/5

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

    Schema coverage is 100%, so parameters are already well-documented. The description adds minimal extra meaning beyond what the schema provides, mainly the advice to use dry_run. This meets the baseline for high coverage.

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

    Purpose5/5

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

    The description clearly states the tool clears task instances so they re-run, using specific verbs ('Clear', 're-run', 'resets'). It distinguishes from siblings which are mostly read-only or other mutations (e.g., list_dags, set_dag_paused).

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

    Usage Guidelines4/5

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

    The description recommends using dry_run=True first to preview effects, providing a clear usage pattern. However, it does not explicitly state when to use this tool versus alternatives or when not to use it, leaving some ambiguity.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

airflow-mcp-server MCP server

Copy to your README.md:

Score Badge

airflow-mcp-server MCP server

Copy to your README.md:

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/ssasuoirafen/airflow-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server