Skip to main content
Glama

Delimit Tdqs Lint

delimit_tdqs_lint

Score MCP tool docstrings against 6 TDQS quality dimensions to catch low-quality descriptions before publication. Performs read-only static analysis on Python files via ast, with no side effects.

Instructions

Score MCP tool docstrings against the 6 TDQS dimensions (LED-2108).

When to use: as a CI gate before publishing the MCP server, to catch low-quality tool descriptions. Operates on any Python file with @mcp.tool()-decorated functions.

When NOT to use: for runtime tool selection or policy decisions — TDQS grades documentation, not behaviour. Use delimit_lint for OpenAPI specs and delimit_gov_evaluate for policy-class decisions.

Sibling contrast: unlike delimit_lint (OpenAPI specs) and delimit_spec_health (spec quality scoring), this scores Python source against Glama's Tool Definition Quality Score rubric.

Side effects: none. Pure read-only static analysis via ast (no import, no execution). Does not write ledger, evidence, or notify.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
humanNoIf True, include a human-readable "report" string in the response. Default False (JSON-only is cheaper for CI pipes).
target_fileNoPath to a Python file with @mcp.tool() decorators. Default "ai/server.py", resolved against cwd.ai/server.py

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv4.7.9

TDQS

A3.8/5.0
Behavior1/5

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

The description claims 'Side effects: none. Pure read-only static analysis via ast (no import, no execution)' and explicitly says it does not write ledger/evidence/notify. However, the annotations declare readOnlyHint=false, which signals the tool is not read-only. This direct contradiction undermines the agent's trust in whether invoking the tool can mutate state.

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 well-structured with clear 'When to use', 'When NOT to use', 'Sibling contrast', and 'Side effects' sections, and the main purpose is front-loaded. It is slightly longer than necessary — the ticket reference (LED-2108) and some repetition of the sibling distinction could be trimmed — but every substantive sentence earns its place.

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 tool with two optional parameters and an output schema, the description covers purpose, operational scope (file pattern), non-goals, side effects, and alternatives. No critical operational information for an agent selecting or invoking the tool is missing; the only issue is the annotation contradiction already scored.

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 schema already documents both parameters. The description adds some context for target_file by mentioning it operates on Python files with @mcp.tool() decorators, but it does not explain the 'human' parameter beyond the schema. Baseline 3 is appropriate because the schema carries the parameter-documentation load.

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 opens with a specific verb-resource pair: 'Score MCP tool docstrings against the 6 TDQS dimensions.' It also names sibling tools it is not, noting it differs from delimit_lint (OpenAPI specs) and delimit_spec_health (spec quality scoring). An agent can clearly distinguish this from the many delimit_* siblings.

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

Usage Guidelines5/5

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

Provides an explicit 'When to use' ('as a CI gate before publishing the MCP server') and 'When NOT to use' (runtime tool selection or policy decisions), and names alternatives for those cases (delimit_lint for OpenAPI specs, delimit_gov_evaluate for policy). This gives the agent unambiguous selection criteria.

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

Deploy Server

Other Tools