//! Quality lints for an MCP server's tool catalog.
//!
//! Agents pay tokens for every tool description they ingest, and bad
//! descriptions silently degrade tool-selection accuracy. The research in
//! arXiv:2602.14878 and arXiv:2602.18914 measured that effect across real
//! servers. This module turns those findings into a small linter that runs
//! against a `tools/list` response, producing per-tool findings with stable
//! rule IDs so CI can gate on them.
//!
//! The description lints feed the `tool_quality` suite check; the schema lints
//! ([`lint_schema_catalog`] + the [`tighten`] autofix) are surfaced by the
//! `mcptest schema-lint` subcommand and the same suite check.

pub mod tdqs;
pub mod tool_descriptions;
pub mod tool_schema;

pub use tdqs::{score_catalog, CoherenceSignals, TdqsReport, ToolScore, ToolSignals};
pub use tool_descriptions::{
    default_rules, lint_catalog, render_pretty, Finding, LintReport, Rule, Severity,
};
pub use tool_schema::{
    lint_catalog as lint_schema_catalog, tighten, SchemaFinding, SchemaLintReport,
};
