Skip to main content
Glama
Anselmoo

mcp-zen-of-languages

by Anselmoo

An MCP server for AI assistants that brings multi-language idiomatic code analysis into your editor. Zen of Languages codifies best practices ("zen principles") into machine-readable rules across programming languages, CI automation, and configuration formats — so AI agents and developers get actionable, language-aware feedback in every review. Connect it to Codex, Claude Desktop, VS Code, Cursor, or any MCP-compatible client and start analyzing code in seconds.

  • 348 zen principles across programming, markup, workflow, and config domains

  • 367 detector/check coverage points with severity scoring

  • MCP server for IDE and agent workflows (13 tools, 3 resources, 1 prompt)

  • CLI reports with remediation prompts and JSON / Markdown export

  • Rule-driven pipelines configurable per language and project

Why MCP for Zen Analysis

MCP turns zen analysis from a standalone report into an interactive engineering loop. Instead of copying output between tools, your editor/agent can call zen tools directly, inspect violations in context, generate remediation prompts, and apply fixes in one flow.

  • Less context switching: analyze, explain, and remediate without leaving your coding session.

  • Higher-fidelity fixes: prompts are generated from structured violations, not ad-hoc lint text.

  • Team consistency: MCP workflows make review behavior repeatable across IDEs and agents.

Related MCP server: QoutaMCP

Zen Philosophy

Zen of Languages treats idioms as engineering constraints, not style preferences. Every language guide encodes the practices that make code maintainable in that ecosystem, then scores violations by risk so teams can fix what matters first.

  • Language-native quality over one-size-fits-all linting.

  • Architectural feedback beyond formatting checks.

  • Actionable prioritization through severity-guided remediation.

The project is guided by the 10 Dogmas of Zen — a set of language-agnostic principles that drive every detector and architectural decision. Read the full philosophy document for anti-patterns, rationale, and detector mappings.

Quickstart

# MCP server (IDE/agent workflows)
uvx --from mcp-zen-of-languages mcp-zen-of-languages-server

# CLI without installing (recommended)
uvx --from mcp-zen-of-languages mcp-zen-of-languages-cli --help

# Or install globally
pip install mcp-zen-of-languages

# Analyze a file (CLI)
mcp-zen-of-languages-cli report path/to/file.py

# Analyze a project with remediation prompts (CLI)
mcp-zen-of-languages-cli report path/to/project --include-prompts

Legacy aliases remain available after install: zen for the CLI and zen-mcp-server for the MCP server.

Ignore files during analysis

Directory scans in both CLI and MCP repository analysis honor:

  • .gitignore

  • .zen-of-languages.ignore

zen init now bootstraps a starter .zen-of-languages.ignore file when one is missing.

Naming Guide

Keep these names distinct to avoid setup confusion:

  • Package name: mcp-zen-of-languages (for pip install and uvx --from)

  • Preferred CLI command: mcp-zen-of-languages-cli

  • Preferred server command: mcp-zen-of-languages-server

  • Compatibility aliases: mcp-zen-of-languages, zen, and zen-mcp-server

  • MCP client server key: zen-of-languages (JSON config label in VS Code/Claude/Cursor; use the same label as a quoted TOML table name in Codex)

Installation

MCP Integration

Add the server to your MCP client configuration. For the full setup guide, see MCP Integration.

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "zen-of-languages": {
      "command": "uvx",
      "args": ["--from", "mcp-zen-of-languages", "mcp-zen-of-languages-server"]
    }
  }
}

VS Code — add to .vscode/mcp.json:

{
  "servers": {
    "zen-of-languages": {
      "command": "uvx",
      "args": ["--from", "mcp-zen-of-languages", "mcp-zen-of-languages-server"]
    }
  }
}

Cursor — add to .cursor/mcp.json:

{
  "mcpServers": {
    "zen-of-languages": {
      "command": "uvx",
      "args": ["--from", "mcp-zen-of-languages", "mcp-zen-of-languages-server"]
    }
  }
}

Codex — add to ~/.codex/config.toml:

[mcp_servers."zen-of-languages"]
command = "uvx"
args = ["--from", "mcp-zen-of-languages", "mcp-zen-of-languages-server"]
enabled = true

Codex loads MCP servers from the global ~/.codex/config.toml file rather than a repo-local workspace config.

One-Click (VS Code)

Method

VS Code

VS Code Insiders

UVX (native)

Install

Install

Docker (isolated)

Install

Install

Docker

# MCP server via Docker
docker run --rm -i ghcr.io/anselmoo/mcp-zen-of-languages:latest

# CLI via Docker
docker run --rm ghcr.io/anselmoo/mcp-zen-of-languages:latest mcp-zen-of-languages-cli --help

CLI — First Code Anamnesis

The CLI is a powerful tool for first code anamnesis — an initial diagnostic sweep of any codebase. Before wiring up MCP or choosing which files to focus on, run a single command to get a full-project health picture with severity-ranked violations, architectural smells, and remediation guidance.

# Install globally
pip install mcp-zen-of-languages

# Full-project diagnostic in one command
mcp-zen-of-languages-cli report path/to/project --include-prompts

# Export structured results for CI or dashboards
mcp-zen-of-languages-cli report path/to/project --export-json report.json --export-markdown report.md

From source:

git clone https://github.com/Anselmoo/mcp-zen-of-languages.git
cd mcp-zen-of-languages
uv sync --all-groups --all-extras

# Start the MCP server
mcp-zen-of-languages-server

# Run a CLI report
mcp-zen-of-languages-cli report path/to/file.py

MCP Tools

The server exposes 13 tools, 3 resources, and 1 prompt for AI-assisted code analysis.

Family

Tools

Purpose

Analysis

analyze_zen_violations, analyze_repository, check_architectural_patterns

Idiomatic and structural analysis

Reporting

generate_prompts, generate_agent_tasks, generate_report

Remediation guidance, task lists, gap reports

Configuration

get_config, set_config_override, clear_config_overrides

Read and tune thresholds at runtime

Metadata

detect_languages, get_supported_languages, export_rule_detector_mapping

Discover languages, rules, detector coverage

Onboarding

onboard_project

Initialize zen-config.yaml for a project

See the full MCP Tools Reference for parameters, return types, and workflow diagrams.

Use Cases

  1. AI Code Review — Call analyze_zen_violations on a file, then generate_prompts for remediation instructions in a single editor round-trip.

  2. Project-Wide Gap Analysisanalyze_repository scans a codebase, generate_report produces a Markdown/JSON report, and generate_agent_tasks creates a prioritised fix list.

  3. One-Click Onboardingonboard_project detects languages and writes a tuned zen-config.yaml, making analysis immediately project-aware.

Supported Languages

Tier

Languages

Notes

Stable

Python

Full parser + richest detector coverage

Beta

Pydantic, FastAPI, Django, SQLAlchemy, TypeScript, React, Angular, Next.js, Go, Rust, JavaScript, Vue

Rule-driven pipelines and framework-aware heuristics

Experimental

Bash, PowerShell, Ruby, C++, C#

Heuristic detectors

Data/Config

YAML, TOML, JSON/JSON5, XML, GitHub Actions

Structure, schema, and workflow checks

Configuration

Analysis pipelines are derived from language zen rules and merged with project overrides in zen-config.yaml. See the Configuration Guide for the full reference.

# Generate reports in multiple formats
zen report path/to/project --export-json report.json --export-markdown report.md

Documentation

Full documentation is available at anselmoo.github.io/mcp-zen-of-languages.

Contributing

See Adding a Language and Development Guide to get started.

License

MIT


Available Tools

16 tools
analyze_batchAnalyze repository (batch / LLM-safe)A
Read-onlyIdempotent

Analyse a repository path and return token-budgeted, paginated violations designed for LLM context windows. Highest-severity violations appear first. Pass the returned cursor to resume from the next page.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or relative path to the repository root.
cursorNoOpaque continuation token from a previous call. Omit or pass ``None`` to start from the first page. Default to None.
languageYesLanguage identifier to restrict analysis (e.g. ``"python"``).
max_filesNoCap on the number of files to analyse. Default to 100.
max_tokensNoApproximate token budget for the ``violations`` payload. Violations are added until the budget would be exceeded; the envelope overhead is excluded from this count. Default to 8000.
enable_external_toolsNoOpt-in execution of external linters. Default to False.
allow_temporary_runnersNoPermit temporary-runner strategies. Default to False.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
cursorYes
has_moreYes
violationsYes
files_totalYes
files_in_pageYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds meaningful behavioral context by revealing token budgeting, severity ordering, and cursor-based pagination, which are not visible from annotations alone. This goes beyond schema parameter descriptions and helps the agent anticipate the tool's output characteristics.

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 compact: two sentences capture the main purpose and the crucial pagination mechanism. It is front-loaded with the core action and outcome, and no unnecessary details or repetition inflate the length.

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 an output schema present, the description need not explain return values. It adequately conveys the primary function, token budget, ordering, and resume behavior, which are the key operational aspects. The only notable gap is the lack of guidance on choosing this tool over sibling analysis tools, but given the schema and annotation coverage, the description remains sufficiently complete for a 7-parameter tool.

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 baseline is 3. The description does not add extra parameter-level insight beyond what the schema already provides; it simply reflects the overall token-budget and pagination behavior. No additional syntax, format, or edge-case details are given, so it meets but does not exceed 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 action (analyse a repository path) and its specific output (token-budgeted, paginated violations) with a memorable detail (highest-severity first). The title adds 'batch / LLM-safe,' which helps distinguish it from sibling tools like analyze_repository without needing to name them.

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 the intended use case ('designed for LLM context windows') but does not explicitly say when to use this tool over alternatives such as analyze_repository or analyze_batch_summary. It lacks any exclusion criteria or direct mention of alternative tools, so the guidance is implicit rather than explicit.

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

analyze_batch_autoAnalyze repository (auto-routing)A
Read-onlyIdempotent

Smart entry point for LLM agents: automatically decides between returning all violations at once (small repos) or paginating (large repos). Pass the returned cursor back to continue pagination if has_more is true. Prefer this over manually choosing between analyze_repository and analyze_batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or relative path to the repository root.
cursorNoOpaque continuation token from a previous call. Omit or pass ``None`` to start from the first page. Default to None.
languageYesLanguage identifier to restrict analysis (e.g. ``"python"``).
max_filesNoCap on the number of files to analyse. Default to 100.
max_tokensNoApproximate token budget for the ``violations`` payload. When all violations fit, they are returned in full; otherwise the first page is returned. Default to 8000.
enable_external_toolsNoOpt-in execution of external linters. Default to False.
allow_temporary_runnersNoPermit temporary-runner strategies. Default to False.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
cursorYes
has_moreYes
violationsYes
files_totalYes
files_in_pageYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint, idempotentHint, destructiveHint=false), the description discloses the auto-routing behavior between small and large repos, and the cursor-based pagination mechanism. This adds valuable context about how the tool behaves at runtime, which annotations alone do not 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 two sentences, front-loaded with the core purpose ('Smart entry point'), and every phrase earns its place. It efficiently conveys the auto-routing logic, pagination guidance, and sibling preference without 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 the tool's complexity (7 params, 2 required), the description sufficiently covers the essential behavior and usage. Since an output schema exists, return values like has_more are already defined; the description adds the necessary context about auto-routing and pagination, making it complete for an agent to invoke 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?

The schema description coverage is 100%, so all parameters are already described. The description adds minimal parameter-level meaning; it only reinforces the cursor's role in pagination ('Pass the returned cursor back') without introducing new details beyond the schema. Baseline 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 tool's purpose: 'automatically decides between returning all violations at once (small repos) or paginating (large repos).' It distinguishes from siblings by explicitly recommending it over analyze_repository and analyze_batch, making it a distinct and purposeful entry point.

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?

The description provides explicit usage guidance: 'Prefer this over manually choosing between analyze_repository and analyze_batch.' It also explains the pagination flow with 'Pass the returned cursor back to continue pagination if has_more is true,' giving clear step-by-step instructions for using the tool correctly.

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

analyze_batch_summaryAnalyze repository — batch summaryA
Read-onlyIdempotent

Return a compact project health score and top-5 hotspot files from a repository scan. Always fits within a single LLM context window. Use this before analyze_batch to decide whether full pagination is needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or relative path to the repository root.
languageYesLanguage identifier to restrict analysis (e.g. ``"python"``).
max_filesNoCap on the number of files to analyse. Default to 100.
enable_external_toolsNoOpt-in execution of external linters. Default to False.
allow_temporary_runnersNoPermit temporary-runner strategies. Default to False.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hotspotsYes
total_filesYes
health_scoreYes
total_violationsYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering safety. The description adds valuable behavioral context by guaranteeing the output 'Always fits within a single LLM context window' and indicating the compact, top-5 nature of the result. This goes beyond annotations and helps the agent understand the tool's practical impact.

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-loaded with purpose and output, followed by usage guidance. There is zero filler or redundancy; every word contributes to understanding the tool's role.

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 an output schema present, return values are already specified. The description covers purpose, usage context, and a key behavioral constraint (context window fit). It is complete enough for an agent to decide on invocation, though it could briefly mention what constitutes a 'hotspot' but that is not essential.

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% (all 5 parameters have descriptions). The description does not add meaning beyond the schema, but the schema itself fully documents all parameters, so the 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?

The description states a specific verb ('Return') and a clear resource/output: a compact project health score and top-5 hotspot files. It explicitly distinguishes from sibling 'analyze_batch' by positioning itself as a pre-pagination summary, making its purpose unmistakable.

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?

The description provides an explicit when-to-use directive: 'Use this before analyze_batch to decide whether full pagination is needed.' This clearly positions it relative to a specific alternative and implies when the full version would be needed, giving actionable usage guidance.

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

analyze_repositoryAnalyze repositoryB
Read-onlyIdempotent

Analyze a repository path and return per-file analysis results.

ParametersJSON Schema
NameRequiredDescriptionDefault
languagesNoRestrict analysis to specific language identifiers. Defaults to ``["python"]`` internally.
max_filesNoPer-language cap on the number of files to analyse, protecting against excessive runtime on monorepos. Default to 100.
repo_pathYesAbsolute path to the repository root. The MCP client typically resolves this from the active workspace.
enable_external_toolsNoOpt-in execution of allow-listed external tools while analyzing files. Default to False.
allow_temporary_runnersNoPermit temporary-runner fallback strategies for external tools. Default to False.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is known. The description adds the behavior of returning per-file results, but does not disclose the potential execution of external tools or file caps, which are only visible in the 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 a single, front-loaded sentence that conveys the core purpose without wasted words. It is appropriately concise.

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?

The description is minimal but the presence of a detailed schema and annotations helps. However, it lacks context about the type of analysis performed, the meaning of per-file results, and when to apply this tool, making it only minimally complete for a tool with five parameters.

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 all parameters have detailed descriptions. The tool description adds no additional parameter semantics, though it does identify repo_path as the main input. This aligns with the baseline of 3.

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 analyzes a repository path and returns per-file analysis results, using a specific verb and resource. It is distinguishable from siblings like detect_languages, though it does not specify the exact nature of the analysis.

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 guidance is provided. The description does not indicate when to use this tool versus alternatives such as analyze_zen_violations or generate_prompts, nor does it mention any exclusions or prerequisites.

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

analyze_zen_violationsAnalyze zen violations (v2)C
Read-onlyIdempotent

Analyze a code snippet against zen rules with stricter request-quality guardrails and richer telemetry metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesSource code to analyse.
languageYesProgramming language identifier.
project_asNoProjection-family target when ``perspective`` is ``projection``.
perspectiveNoRequested analysis perspective. Default to ``PerspectiveMode.ALL``.all
severity_thresholdNoSeverity threshold. Default to None.
enable_external_toolsNoEnable external tools. Default to False.
allow_temporary_runnersNoAllow temporary runners. Default to False.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathNo
metricsYesContainer for every numeric measurement extracted from a source file. The analyser's ``compute_metrics`` hook populates this model after parsing is complete. Downstream, the detection pipeline reads these numbers to decide which zen-principle thresholds have been crossed, and the MCP server serialises them back to the client alongside the violation list. Attributes: cyclomatic: Full complexity profile with per-block detail. maintainability_index: Halstead-derived maintainability score (0-100). lines_of_code: Physical line count of the analysed source. Example: >>> m = Metrics( ... cyclomatic=CyclomaticSummary(blocks=[], average=0.0), ... maintainability_index=72.5, ... lines_of_code=340, ... ) >>> m.maintainability_index > 65 True See Also: ``CyclomaticSummary``: Detailed breakdown stored inside ``cyclomatic``. ``AnalysisResult``: Final output that embeds ``Metrics``.
languageYes
violationsYes
overall_scoreYes
rules_summaryNo
dogma_analysisNo
external_analysisNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read. The description's phrase 'stricter request-quality guardrails' hints at validation but is ambiguous; 'richer telemetry metadata' relates to output not behavior. It adds no concrete behavioral context beyond 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 sentence that front-loads the core action. It is not excessively verbose, but the trailing qualifiers 'stricter request-quality guardrails and richer telemetry metadata' are vague and could be considered wasted words, preventing a perfect score.

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?

The presence of annotations and an output schema reduces the need to explain basic behavior and return format. However, the description lacks any usage guidance, and the vague qualifiers do not clarify when to use this tool or what distinguishes it in practice. It is adequate but has 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 description coverage is 100%, so all parameters are already documented. The description does not add any parameter-level meaning or clarify the 'project_as' field or 'perspective' enum. Baseline 3 is appropriate since the schema carries the full burden.

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 and resource: 'Analyze a code snippet against zen rules.' This distinguishes it from sibling tools like analyze_repository and analyze_batch by focusing on a single snippet. The added qualifiers 'stricter request-quality guardrails and richer telemetry metadata' are vague and not directly about purpose, but they don't obscure it.

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 when-to-use or when-not-to-use guidance is given. It does not mention alternatives like analyze_repository for broader scope, nor does it provide context for choosing this tool over siblings. The usage is only implied by the verb and the resource.

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

check_architectural_patternsCheck architectural patternsA
Read-onlyIdempotent

Return detected architectural patterns for a code snippet.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesSource fragment to inspect for structural patterns.
languageYesLanguage identifier guiding which pattern recognisers to apply (e.g. ``"python"``, ``"go"``).

Output Schema

ParametersJSON Schema
NameRequiredDescription
patternsYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds little beyond confirming a read-like operation; it does not disclose any additional behavioral traits like output size or error conditions. This is consistent with annotations, so no contradiction.

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 encodes purpose and scope without any fluff. It is concise and appropriately structured.

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 two-parameter tool with complete schema descriptions and an output schema, the description is largely sufficient. It lacks usage guidance but does not need to explain return values since an output schema exists. The gap in usage guidance prevents a perfect score.

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%, as both 'code' and 'language' have descriptive text. The description itself adds no parameter-specific information beyond what the schema already provides, so it meets the baseline for schema-driven clarity.

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 function with a specific verb ('Return'), a specific resource ('detected architectural patterns'), and scope ('for a code snippet'). It distinguishes itself from sibling tools like detect_languages and analyze_zen_violations by focusing on architectural patterns.

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 is provided about when to use this tool versus alternatives. The description lacks prerequisites, exclusions, or any mention of better-suited sibling tools.

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

clear_config_overridesClear configuration overridesA
Destructive

Clear all runtime configuration overrides, reverting to zen-config.yaml defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
languagesYes
config_pathYes
overrides_appliedYes
severity_thresholdYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true. The description adds context beyond that by specifying that ALL overrides are cleared and that the config reverts to zen-config.yaml defaults, clarifying the scope and target of the destructive 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 a single, front-loaded sentence with no wasted words. It clearly states the action and outcome in a compact format.

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 simplicity (0 params, destructive behavior) and presence of annotations (destructiveHint) plus an output schema, the description is fully complete. It specifies what is cleared and the resulting state, with no gaps.

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, so baseline is 4. The description adds meaning by clarifying that 'all' overrides are cleared, which is not represented in the empty schema. No parameter-level detail is needed.

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 uses a specific verb 'clear' and identifies the resource as 'runtime configuration overrides', with the effect 'reverting to zen-config.yaml defaults'. This clearly distinguishes it from siblings like set_config_override (which adds a specific override) and get_config (which reads config).

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 when you need to reset all overrides, but does not explicitly mention when to use this tool versus set_config_override or get_config. No exclusions or alternative tools are named, so guidance is only implicit.

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

detect_languagesDetect languagesB
Read-onlyIdempotent

Return supported language list for analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesWorkspace root passed by the MCP client — reserved for future per-repo config resolution but currently unused.

Output Schema

ParametersJSON Schema
NameRequiredDescription
languagesYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds minimal context ('for analysis') but does not disclose additional behavioral traits. It is consistent with annotations, so no contradiction.

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 sentence with no wasted words. It is front-loaded and clear.

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-only tool with full schema coverage and an output schema, the description is adequate. It could benefit from noting the distinction from get_supported_languages, but the current context covers the essential information.

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%; the repo_path parameter is fully described in the schema including its 'currently unused' status. The tool description adds no parameter information beyond the schema.

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 returns a supported language list with the verb 'Return' and resource 'supported language list'. However, it does not distinguish from the similarly named sibling tool 'get_supported_languages', which appears to serve a similar purpose.

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. There is no mention of context, exclusions, or alternative tools like 'get_supported_languages'.

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

export_rule_detector_mappingExport rule detector mappingA
Read-onlyIdempotent

Generate rule-detector mapping JSON from the live registry.

ParametersJSON Schema
NameRequiredDescriptionDefault
languagesNoRestrict the export to these language identifiers. When omitted, mappings for every registered language are returned. Default to None.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the context 'from the live registry', indicating the data source, but doesn't elaborate on other behavioral aspects. With annotations present, this is adequate.

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, front-loaded sentence that conveys the purpose and source without waste. It earns its place with no redundancy or extraneous detail.

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 tool is simple (one optional param, no required params) and has an output schema plus thorough annotations. The description, while brief, sufficiently covers the core purpose and source. It could mention the output shape, but the output schema exists, so this is acceptable.

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%. The schema already thoroughly explains the 'languages' parameter, including behavior when omitted and default semantics. The description adds no additional parameter information, which is fine since the baseline is 3 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 a specific verb ('Generate') and resource ('rule-detector mapping JSON') with a source ('from the live registry'). This uniquely distinguishes it from sibling tools like detect_languages or generate_prompts.

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 a clear use case: obtaining the current rule-detector mapping. While it doesn't explicitly state when not to use alternatives, the context is clear and no exclusions are needed given the distinct purpose.

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

generate_agent_tasksGenerate agent tasksA
Read-onlyIdempotent

Convert zen violations into structured agent task lists for automated remediation.

ParametersJSON Schema
NameRequiredDescriptionDefault
languagesNoRestrict scanning to these languages. Omit to analyse only Python files by default. Default to None.
repo_pathYesAbsolute path to the repository to scan. All eligible source files are discovered recursively.
min_severityNoSeverity floor (1-10 scale). Violations below this threshold are excluded from the task list. Default to 5.
enable_external_toolsNoOpt-in execution of allow-listed external tools while gathering repository analysis. Default to False.
allow_temporary_runnersNoPermit temporary-runner fallback strategies for external tools. Default to False.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tasksYes
projectYes
roadmapNo
clustersNo
total_tasksYes
health_scoreYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no extra behavioral context (e.g., prerequisites, side effects) beyond the core conversion purpose, so it meets the lowered bar but does not enrich beyond it.

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 that front-loads the verb and purpose. Every word earns its place, with no unnecessary fluff or repetition of schema details.

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 read-only, idempotent nature and the presence of an output schema, the short description is largely sufficient. It misses some workflow context (e.g., that it likely consumes results from analyze_zen_violations), but this is not critical for selection and invocation.

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 all five parameters are already documented in the input schema. The description does not add any additional parameter meaning or usage context, matching the baseline for full 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 uses a specific verb ('Convert') and clearly states the resource ('zen violations') and output ('structured agent task lists'). This distinguishes it from sibling tools like analyze_zen_violations (which likely analyzes violations) and generate_prompts (which generates prompts), making its unique role clear.

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 the tool is used after obtaining zen violations, but it does not explicitly state when to use it versus alternatives or provide workflow context. No exclusions are mentioned, and the positioning relative to sibling tools is left to inference.

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

generate_promptsGenerate remediation prompts (v2)B
Read-onlyIdempotent

Generate remediation prompts with MCP-first guidance metadata and v2 versioned prompt semantics.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesSource code to analyse.
languageYesProgramming language identifier.
project_asNoProjection-family target when ``perspective`` is ``projection``.
perspectiveNoRequested analysis perspective. Default to ``PerspectiveMode.ALL``.all
enable_external_toolsNoEnable external tools. Default to False.
allow_temporary_runnersNoAllow temporary runners. Default to False.

Output Schema

ParametersJSON Schema
NameRequiredDescription
big_pictureNo
file_promptsNo
generic_promptsNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that prompts include 'MCP-first guidance metadata' and 'v2 versioned prompt semantics,' which gives a hint about output structure but lacks concrete details about behavior such as return format or side effects. No contradiction with 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 sentence and is efficient in length. However, the specialized terms 'MCP-first' and 'v2 versioned' may not be universally understood and reduce clarity, though they do not add unnecessary bulk.

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?

The presence of an output schema and fully documented parameters lowers the burden on the description. Yet the description does not explain the broader context of remediation prompts, when to invoke this tool, or how the various parameters (e.g., perspective, project_as) interact. Given the large sibling set, additional context would be valuable.

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?

All six parameters are fully described in the schema (100% coverage), so the description does not need to elaborate on parameter semantics. The description itself mentions no parameters, and the schema already handles meaning, so 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.

Purpose4/5

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

The description clearly states the tool's action ('Generate') and resource ('remediation prompts'), which is specific and matches the name. However, it does not explicitly differentiate from sibling tools like 'generate_agent_tasks' or the analysis tools, and the added jargon ('MCP-first guidance metadata', 'v2 versioned prompt semantics') may confuse rather than clarify.

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 the many sibling tools (e.g., analyze_zen_violations, generate_agent_tasks). It does not mention prerequisites, typical use cases, or exclusions, leaving the agent to infer usage solely from the name.

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

generate_reportGenerate reportA
Read-onlyIdempotent

Generate a markdown/json report with gap analysis and prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoExplicit language override. When omitted, the language is inferred from file extensions. Default to None.
project_asNoProjection-family target when ``perspective`` is ``projection``.
perspectiveNoRequested report perspective. Default to ``PerspectiveMode.ALL``.all
target_pathYesPath to a single file or a directory. When a directory is given, all eligible files inside are analysed.
include_gapsNoInclude quality-gap and coverage-gap summaries highlighting areas that need attention. Default to True.
include_promptsNoAppend remediation prompt sections derived from ``build_prompt_bundle``. Default to False.
include_analysisNoInclude the violation-analysis body showing per-rule findings. Default to True.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
markdownYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds no additional behavioral traits (e.g., side effects, permissions, performance). It does not contradict annotations, but also provides minimal behavioral context 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?

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core purpose and output formats without redundancy. This is appropriate for the tool's relative simplicity.

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?

An output schema exists, so return values are covered. However, with 7 parameters and a wide range of perspectives and include/exclude options, the description is quite sparse. It does not explain the meaning of 'perspective' or the distinction between analysis, gaps, and prompts. The schema carries the burden, but the description could provide additional context 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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific information beyond the schema; it merely repeats the concept of 'gap analysis' and 'prompts' which are already reflected in include_gaps and include_prompts parameters. No extra value.

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 a specific verb ('Generate'), a specific resource ('report'), and the report's contents ('gap analysis and prompts'). It also specifies output formats ('markdown/json'), which distinguishes it from sibling tools like generate_prompts or analyze_zen_violations that focus on narrower outputs.

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 scenarios, prerequisites, or exclusions. With many sibling analysis tools, the lack of any usage context leaves the agent to infer when this aggregator is appropriate.

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

get_configGet current configurationA
Read-onlyIdempotent

Return the current server configuration including any runtime overrides.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
languagesYes
config_pathYes
overrides_appliedYes
severity_thresholdYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds useful context that the returned configuration includes runtime overrides, which tells the agent that changes from set_config_override are reflected. This goes beyond the annotations without contradicting them.

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 no unnecessary words. It front-loads the action and resource immediately.

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?

With no parameters, comprehensive annotations, and an output schema present, the description covers all necessary context. It mentions runtime overrides, which is important for a configuration read, and there is no need to explain return values given the output schema.

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 takes zero parameters (empty schema), so the baseline of 4 applies. The description does not need to explain parameter semantics because none exist.

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 uses a specific verb 'Return' and names the resource 'current server configuration', further clarifying scope with 'including any runtime overrides'. This clearly distinguishes it from sibling tools like set_config_override and clear_config_overrides, which are write operations.

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 usage context is implied by the read-only nature of the tool, but the description does not explicitly state when to use it versus alternatives like set_config_override. It gives no exclusions or alternative tool names.

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

get_supported_languagesGet supported languagesA
Read-onlyIdempotent

Return list of all languages with zen rules and their detector coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds the detail that the return includes 'zen rules and their detector coverage', which is content-specific but does not disclose additional behavioral traits such as ordering, pagination, or potential error modes. With annotations present, this is adequate but not rich.

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 that front-loads the primary action ('Return list') and specifies what the list contains. There is no redundant information or padding, making it highly 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?

Given that the tool has no parameters, an output schema exists, and the description clearly states the purpose and content, the description is sufficient. It does not need to explain return values because the output schema is provided. The description covers the essential context.

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, so the baseline is 4. The description does not need to explain parameters, and the input schema already confirms that no parameters are required. No additional semantic information is needed.

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 uses a specific verb ('Return') and identifies the exact resource ('list of all languages with zen rules and their detector coverage'). This clearly distinguishes it from sibling tools like detect_languages, which likely performs language detection rather than listing supported languages.

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 (e.g., when you need to know which languages have zen rules), but it does not explicitly state when to use this tool versus alternatives or provide any exclusion criteria. No mention of specific use cases or scenarios is given.

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

onboard_projectOnboard a new projectA
Read-onlyIdempotent

Get interactive onboarding guidance for setting up zen analysis on a project. Returns recommended configuration based on project characteristics.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_sizeNoDescriptive team-size hint (``"small"``, ``"medium"``, ``"large"``), reserved for future adaptive threshold scaling. Default to "small".small
strictnessNoPreset name controlling all numeric thresholds (``"relaxed"``, ``"moderate"``, or ``"strict"``). Default to "moderate".moderate
project_pathYesAbsolute path to the project root, used to derive the project name and populate example commands.
primary_languageNoLanguage used for example snippets and default pipeline selection (e.g. ``"python"``). Default to "python".python

Output Schema

ParametersJSON Schema
NameRequiredDescription
stepsYes
project_nameYes
recommended_configYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds 'interactive' and 'based on project characteristics', giving insight into the tool's behavior beyond what annotations capture. 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?

Two sentences, front-loaded with the primary action and outcome. Every word earns its place; no redundancy.

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 read-only onboarding tool with a full input schema and output schema, the description is adequate. It could add slightly more detail about what 'interactive' entails or when to use it, but overall it is complete enough given the strong annotations and 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?

Input schema provides 100% coverage with detailed descriptions for all four parameters. The description only refers generically to 'project characteristics', not adding specific meaning beyond the schema. Baseline 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 uses a specific verb ('Get interactive onboarding guidance') and resource ('setting up zen analysis on a project'), clearly distinguishing it from sibling analysis tools like analyze_zen_violations or analyze_repository. It also states the return value: recommended configuration.

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 clearly implies the tool is for initial onboarding/setup of zen analysis, which distinguishes it from analysis/reporting tools. However, it does not explicitly name alternatives or state when not to use it, so it lacks explicit exclusions.

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

set_config_overrideSet configuration overrideA
Destructive

Override configuration values for a specific language at runtime. Overrides persist for the session.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageYesLanguage whose thresholds should be adjusted (e.g. ``"python"``).
max_line_lengthNoOverride the maximum character width for a single source line. Default to None.
max_class_lengthNoOverride the maximum lines permitted in a single class definition. Default to None.
max_nesting_depthNoOverride the maximum allowed nesting depth for control-flow blocks. Default to None.
severity_thresholdNoOverride the minimum severity at which violations are surfaced in results. Default to None.
max_function_lengthNoOverride the maximum lines Default to None. permitted in a single function body.
max_cyclomatic_complexityNoOverride the per-function cyclomatic-complexity ceiling. Default to None.

Output Schema

ParametersJSON Schema
NameRequiredDescription
languagesYes
config_pathYes
overrides_appliedYes
severity_thresholdYes

TDQS

A3.9/5.0
Behavior4/5

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

The annotations already flag the operation as destructive, and the description adds that overrides persist for the session, which is valuable context beyond the annotations. However, it does not disclose whether overrides affect downstream analysis tools or what happens on repeated calls.

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-loaded with the core action, and contains no wasted words.

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 complexity (7 parameters, output schema), the description is minimal. It does not explain how overrides interact with other tools or how to reset them, though the schema covers parameters and the output schema presumably covers return values.

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?

All parameters are fully described in the schema (100% coverage), and the description provides no additional parameter-level detail beyond the schema, so the baseline 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 identifies the action (override), the resource (configuration values), and the scope (specific language at runtime). It distinguishes the tool from siblings like get_config and clear_config_overrides.

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 use for temporary runtime changes and notes session persistence, but it does not explicitly compare with alternatives or state when not to use it (e.g., when permanent changes are needed). It could mention clear_config_overrides for resetting.

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. 16 tool updatesv0.8.1
    • First observedanalyze_batch
    • First observedanalyze_batch_auto
    • First observedanalyze_batch_summary
    • First observedanalyze_repository
    • First observedanalyze_zen_violations
    • First observedcheck_architectural_patterns
    • First observedclear_config_overrides
    • First observeddetect_languages
    • First observedexport_rule_detector_mapping
    • First observedgenerate_agent_tasks
    • First observedgenerate_prompts
    • First observedgenerate_report
    • First observedget_config
    • First observedget_supported_languages
    • First observedonboard_project
    • First observedset_config_override

TDQS

A3.6/5.0
Disambiguation2/5

The repository analysis tools form a confusing cluster: analyze_repository, analyze_batch, analyze_batch_summary, and analyze_batch_auto all analyze a repository but differ in output format, pagination, and token budget. Additionally, detect_languages and get_supported_languages both return language lists with only subtle differences. This overlap creates real ambiguity for an agent despite the descriptive text.

Naming Consistency5/5

All tool names consistently use a verb_noun structure with snake_case, such as analyze_repository, set_config_override, and onboard_project. The pattern is predictable and easy to navigate.

Tool Count4/5

At 16 tools, the server is slightly over the ideal 3-15 range, but the tools cover distinct aspects of the analysis workflow: snippet analysis, repository analysis, batch processing, reporting, configuration, and onboarding. The count feels justified rather than bloated.

Completeness4/5

The tool set covers the core workflow of language detection, code and repository analysis, paginated scanning, summarization, remediation prompt generation, agent task creation, and configuration management. Minor gaps exist, such as no explicit rule-listing tool, but the export_rule_detector_mapping and get_supported_languages partially compensate.

Maintenance

ActivityMaintained
ResponsivenessResponsive

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
    A
    quality
    D
    maintenance
    Enables comprehensive code analysis including quality assessment, security vulnerability detection, refactoring suggestions, complexity calculations, and automatic documentation generation for multiple programming languages.
    5
    14
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables inspection and analysis of project structures to detect languages, frameworks, entry points, and dependencies across multiple programming languages including Node.js, Python, PHP, Go, Java, and Rust.
    3
    18
    1
    ISC
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive codebase analysis including project structure evaluation, cross-language duplicate detection, microservices validation, and configuration optimization with AI-powered pattern learning that generates actionable improvement reports.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    AI-powered code quality analysis that detects security issues, bugs, code smells, and performance problems across multiple languages.
    4
    -

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/Anselmoo/mcp-zen-of-languages'

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