A unified CLI tool for code formatting, linting, and quality assurance
py-lintro exposes only one tool: list-tools. The tool has a basic description and input parameters with type definitions, but the implementation reveals significant quality gaps. The tool name lacks an action verb prefix (list- is weak), descriptions are minimal, and the schema lacks critical pattern information. Most concerningly, this is a meta-tool for discovering other tools that may or may not be exposed via MCP, the tool does not represent actual domain functionality (linting, code analysis, tool invocation). The server appears to be a CLI wrapper around linting orchestration logic, not an agent-ready MCP server with properly designed tools. The Dockerfile and multi-stage build suggest production infrastructure, but the MCP surface is underdeveloped.
List all available tools and their configurations
Tool name lacks action verb prefix. 'list-tools' should be 'list_tools' (underscore convention) and ideally 'list_linting_tools' or 'describe_available_tools' to clarify what is being listed. Per naming patterns, tool names must start with a clear action verb (get_, list_, create_, etc.) for LLM intent inference.
Description is only 57 characters: 'List all available tools and their configurations'. This is below the recommended 10 - 1024 character range for LLM comprehension. It lacks context for WHEN to use this tool, WHAT it returns, and WHY an agent would call it. Expand to 100 - 200 characters with actionable guidance, e.g.: 'Discover all available linting and code analysis tools configured in this environment. Returns tool names, descriptions, supported file types, and configuration options. Call this first to understand what tools are available before analyzing code.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Input schema has no documented output format or response structure. The tool accepts three parameters (output, json_output, verbose) but the description does not specify what fields or structure will be returned. Per pattern:tool and pattern:response-shaper, tools must document their output schema so LLMs know what data to expect and can plan downstream operations.
Parameter descriptions are generic and lack implementation detail. E.g. 'Output file path for writing results' does not explain: Is this required? What is the default behavior if omitted? Can stdout be used? Does the tool fail if the directory does not exist? These details are essential for LLM parameter binding.
No error handling guidance. The tool description does not specify what errors may occur (missing tools, permission denied, malformed output file path) or what recovery steps an LLM should take. Per pattern:recovery-guide, error responses must tell the agent what to do next.
Single meta-tool only. The server exposes only list-tools, which is a discovery/introspection tool, not domain functionality. An MCP server for a linting orchestrator should expose tools that agents can use to analyze code, run linters, interpret results, and provide feedback. Without actual linting tools (e.g., run_linter, analyze_code, get_lint_results), the server cannot be used for agent workflows. This suggests the MCP interface is incomplete or is a shell waiting for full implementation.