MCP server for Gigadoc-style Python documentation in Gigacode/Gemini/Qwen CLI.
Server has 5 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-100 chars, mostly adequate) and input schemas with type definitions. However, parameter descriptions are sparse or missing context. No output schemas documented. Error handling is minimal, tools return JSON-stringified payloads without guidance on failure modes or recovery. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tool names follow verb_noun pattern (analyze_*, build_*, validate_*) but lack clarity on when to use one vs. another. Parameters like 'analysis' accept z.unknown() with no validation or format guidance, forcing LLMs to guess structure. No pagination, no per-item error reporting, no chaining IDs in responses.
Analyzes a Python module and returns structured information about classes, functions, and parameters.
Analyzes a Python file or a directory with Python modules. For large projects use include_modules=false to reduce context size.
Builds a strict Sber-style documentation outline from a Python module analysis result.
Builds a strict Sber-style project documentation outline from project-level Python analysis.
Validates that a Markdown document follows the required Sber-style structure.
Unknown parameter types ('analysis': z.unknown()) in build_sber_doc_outline and build_sber_project_outline. LLMs cannot infer what structure to pass. No schema documentation or format hints.
No output schemas documented for any tool. Responses are JSON-stringified payloads with no field descriptions. LLMs cannot plan downstream calls or extract specific data.
Error handling is absent. Tools return JSON payloads on success but no guidance on failure modes, retryability, or recovery steps. Errors are not categorized.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Parameter descriptions lack actionable detail. 'Path to a Python module file' does not explain format (absolute vs. relative), encoding, or what happens if the file is not found. No constraints on max_modules beyond min/max bounds.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but this is not declared, forcing LLMs to infer safety from descriptions alone.