Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Every tool targets a distinct aspect of Airflow (failed DAGs, scheduler health, specific DAG run status, today's runs, task instances, DAG listing, manual trigger). No two tools overlap in purpose.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with lowercase and underscores (e.g., check_failed_dags, get_dag_run_status). No deviations or mixed conventions.

    Tool Count5/5

    7 tools is well-scoped for an Airflow monitoring/management server. It covers essential operations without being excessive or minimal.

    Completeness4/5

    Covers core monitoring (health, DAG run status, task instances) and triggering. Missing pause/unpause, DAG details, or run deletion, but these are secondary for typical agent workflows.

  • Average 4.1/5 across 7 of 7 tools scored.

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

    • No community issues in the last 6 months
    • 1 commit in the last 12 weeks
    • Last stable release on
    • 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

  • Behavior4/5

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

    Description discloses that the tool returns state, execution date, and duration, which is beyond the input schema. This provides behavioral transparency for a simple read operation. No annotations to contradict.

    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?

    Description is concise with a clear purpose statement followed by parameter and return information. Every sentence adds value. No fluff.

    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 one parameter, the description covers purpose, parameter, and return values. It lacks error handling context and usage guidelines, but given the simplicity it is reasonably complete.

    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 parameter dag_id is described as 'The DAG identifier.' This adds explanation beyond the schema's type and title. However, it lacks specifics like format, examples, or validation rules. With 0% schema coverage, the description provides minimal compensation.

    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 tool gets the latest run status for a specific DAG. It is distinct from siblings like get_dag_runs_today which gets multiple runs, but does not explicitly contrast.

    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 usage guidelines provided. The description does not indicate when to use this tool over alternatives like check_failed_dags or get_dag_runs_today. An agent would need to infer from the tool name.

    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?

    With no annotations, the description bears the burden of disclosing behavior. It states the return format (list with state, duration, operator) but does not mention side effects, auth requirements, or error scenarios. The safety profile (read-only) is implied but not explicit.

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

    Conciseness5/5

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

    The description is concise: one sentence for purpose, followed by parameter definitions and return statement. It is front-loaded and contains no redundant 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?

    Given the presence of an output schema (though not shown), the description covers the essential return details. It lacks mention of pagination or error handling, but for a simple retrieval tool with few parameters, it is mostly complete.

    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 input schema provides no descriptions (0% coverage), so the description fully compensates by defining dag_id as 'The DAG identifier' and run_id as 'The DAG run identifier.' These are brief but add meaning beyond the schema's type-only definitions.

    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 retrieves individual task instances for a specific DAG run, which is a distinct function from siblings like get_dag_run_status or get_dag_runs_today. It uses a specific verb ('Get') and resource ('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?

    No guidance is provided on when to use this tool versus alternatives. The description does not mention when it is appropriate to retrieve task instances compared to other DAG-related queries, leaving the agent to infer context.

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

  • Behavior2/5

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

    No annotations are provided, so the description must fully disclose behavior. It mentions triggering and returning confirmation (run ID, state), but omits critical details such as idempotency, permission requirements, potential side effects (e.g., overwriting scheduled runs), or error conditions. For a mutation tool, 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: two sentences plus a brief Args/Returns section. Every word adds value, and the purpose is front-loaded. The structure is clean and easy to parse.

    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's simplicity (one parameter, no nested objects) and existence of an output schema (implied by 'Returns confirmation'), the description covers the core action. However, it lacks integration with sibling tools (e.g., suggesting get_dag_run_status to monitor the triggered run) and fails to mention prerequisites or errors, making it just adequate.

    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?

    Schema description coverage is 0%, so the description compensates by explaining dag_id as 'The DAG identifier to trigger.' This adds meaningful context beyond the schema's title and type. For a single parameter, this is adequate.

    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 'Trigger' and the resource 'manual DAG run', making the tool's purpose unambiguous. It differentiates from sibling tools like check_failed_dags or list_dags by explicitly indicating a write/action operation.

    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 explicitly states when to use the tool: to trigger a manual DAG run. However, it provides no guidance on when not to use it or alternatives (e.g., if a DAG is already running). This is a minor gap.

    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?

    No annotations are provided, so the description carries the full burden. It discloses that the tool checks the last 24 hours and returns failed runs with dates. However, it does not mention side effects (though likely read-only), authorization requirements, rate limits, or potential errors. The core behavior is clear but not comprehensive.

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

    Conciseness5/5

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

    The description is two sentences with no redundant information. It is efficiently structured, front-loading the purpose and then providing detail on the return value.

    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?

    The description explains the return value (list of DAGs with execution dates), which is sufficient given the tool's simplicity. It does not detail the output schema format, but the context notes an output schema exists. For a check tool with no parameters, the description is adequately complete.

    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 zero parameters, and schema coverage is 100%. No additional parameter information is needed. Baseline for zero parameters 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 clearly states the tool checks for failed DAG runs in the last 24 hours and returns a list with execution dates. It uses specific verbs ('check', 'returns') and identifies the resource ('failed DAG runs'). The purpose is distinct from sibling tools like 'list_dags' or 'check_scheduler_health'.

    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 when monitoring recent failures, but does not explicitly specify when to avoid this tool or mention alternatives. It provides clear context for use but lacks exclusion criteria.

    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?

    The description indicates a read-only operation (health check) and specifies return values. No annotations were provided, so description carries full burden; it is clear but could explicitly state no 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?

    Two sentences, no wasted words. Front-loaded with verb 'Check' and resource 'scheduler health'. Efficient.

    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?

    For a simple parameterless health check tool with an output schema, the description covers purpose and return values adequately. No gaps for this complexity level.

    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, and schema coverage is 100%. Baseline for 0 params is 4, and description adds no unnecessary param info.

    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 checks Airflow scheduler health via a specific endpoint and lists the return values (status and heartbeat timestamp). It is distinct from sibling tools that focus on DAGs and tasks.

    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. It is implied that this is for scheduler health checks, but no alternatives are discussed or prerequisites mentioned.

    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?

    No annotations are provided, so the description carries the burden. It states the tool returns a summary with specific fields (dag_id, paused, active), which is transparent. However, it lacks any mention of side effects, pagination, or other behavioral nuances beyond the immediate output.

    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 two short sentences, no fluff, and front-loaded with the core purpose.

    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 zero parameters and an output schema (mentioned in context), the description fully explains what is returned and the scope of the tool. No missing information for an agent to use it correctly.

    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%. The description confirms the tool lists all DAGs without filtering, which adequately conveys the parameter semantics.

    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 'list all DAGs with their paused/active status', which is a specific verb and resource. This distinguishes it from siblings like 'check_failed_dags' or 'get_dag_run_status' which serve different purposes.

    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 for when to use the tool (to get a summary of all DAGs). While it does not explicitly contrast with alternatives, the tool's simple nature and sibling names make usage intuitive.

    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?

    With no annotations, the description bears full burden. It reveals that the tool returns runs from the current UTC date grouped by status, which is useful. However, it does not mention whether it's read-only, rate limits, or error handling, but the grouping detail adds value.

    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 sentences, front-loading the action and then adding detail. Every sentence adds value with no redundancy.

    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 zero parameters, the presence of an output schema, and sibling context, the description sufficiently covers what the tool does, including the output grouping. It feels complete for the tool's simplicity.

    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 input schema has zero parameters, so baseline is 4. The description correctly mentions no required inputs and adds no parameter information, which 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 'Get', the resource 'all DAG runs from today', and the grouping by status, distinguishing it from sibling tools like get_dag_run_status (specific run) or check_failed_dags (failure-focused).

    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 specifies the use case: retrieving today's DAG runs grouped by status. It does not explicitly state when not to use it or list alternatives, but the sibling tool list provides context for selection.

    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

mcp-airflow MCP server

Copy to your README.md:

Score Badge

mcp-airflow 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/antonio-mello-ai/mcp-airflow'

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