MCP server for Python projects.
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names follow verb_noun convention (get_*, extract_*), which is good. However, descriptions lack actionable context for LLM selection, parameter descriptions are sparse or missing, and output schemas are not formally documented. No error handling guidance. The extract_library_signatures tool has complex logic but minimal parameter validation hints. Overall, this is a fair-to-poor implementation typical of community servers.
Searches for a library in the virtual environment and extracts function or class signatures concisely.
Returns information about a specified file.
Returns dependencies from pyproject.toml in the specified directory.
Output schemas not documented. Tools return dicts with keys like 'dependencies', 'signatures', but LLMs cannot infer field types, nested structure, or what to do with results. No guidance on pagination, limits, or chaining to downstream tools.
extract_library_signatures has 5 parameters but only 2 have descriptions in the docstring. 'library_name' and 'project_path' are documented; 'search_term', 'max_results', and 'exact_match' lack context. LLMs cannot infer when to use exact_match=true or what search_term should contain.
No error handling guidance. Exceptions are raised (ValueError) but responses do not tell the LLM what to do next. E.g., 'pyproject.toml not found', should suggest checking the project_path or running from the correct directory.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
extract_library_signatures description is vague ('Searches for a library... and extracts function or class signatures concisely'). Does not explain when to use it vs. other tools, what 'concisely' means, or what the output format is. Baseline: descriptions should be 50-200 chars and answer WHAT, WHEN, and WHAT IT RETURNS.
No input validation hints. extract_library_signatures accepts max_results=50 by default but does not document min/max bounds. LLMs could pass max_results=999999, causing performance issues. Baseline: numeric params should have explicit range constraints in descriptions.