MCP server for analyzing Kotlin code structure, methods, classes, and method call relationships
Server provides 7 tools with explicit schemas, descriptions, and parameter documentation. However, descriptions are generic and lack LLM-optimization depth. All tools follow a consistent naming pattern (verb_noun) and accept a 'project' enum parameter. Schemas are present and properly typed, but lack rich contextual information about outputs and error cases. Parameter descriptions exist but are minimal (10-30 chars on average) and don't explain when/why to use each tool or what the agent should do with results. No tool annotations (readOnlyHint, etc.) despite all tools being read-only. Pagination support is present (offset/limit/maxResults) in search tools but inconsistent. Output schemas are not documented, LLMs must infer result structures.
Analyze methods of a specified class.
Analyze method calls made by a specified method.
Get detailed source code for specified classes.
Get detailed source code and metadata for a specified method.
Returns the total number of source files in the project.
Search for class names in the project using a regex pattern.
Search for files in the project using a regex pattern.
Output schemas not documented. LLMs cannot predict what fields are returned from analyze_method_calls, get_method_details, get_class_details, or other tools. This forces agents to call tools blind and parse unstructured responses.
Descriptions are generic and lack LLM optimization. 'Returns the total number of source files in the project' (47 chars) and 'Search for files in the project using a regex pattern' (52 chars) don't explain when to use each tool vs alternatives, what the use case is, or what downstream actions become possible. Baseline for A+ tools is 50-200 chars with clear differentiation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 63 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 37 | - | v1 |
Parameter descriptions are minimal and don't explain constraints or usage context. E.g., 'pattern' in search_files is just 'Regular expression pattern to match file names' with no guidance on anchoring, case sensitivity, or scope. 'methodSearchScope' in analyze_method_calls is 'Package scope for method search (e.g., org.example)' but doesn't explain why it's required or what happens if omitted.
No tool annotations (readOnlyHint, idempotentHint, etc.) despite all 7 tools being stateless read-only operations. Agents cannot determine safety or retry behavior from the tool definition.
Pagination parameters inconsistent and poorly documented. search_files has 'offset', 'limit', and 'maxResults' all with default values, but no explanation of their relationship (is maxResults a hard cap, or does it override limit?). No guidance on what to do when results exceed limit or how to fetch the next page.
No error handling guidance in any tool. Descriptions don't explain what errors are possible (file not found, invalid regex, permission denied) or what the agent should do next. Pattern 'pattern' could fail if regex is malformed, but no recovery path is documented.