MCP server providing guidance on AOT (Ahead-of-Time) annotation for .NET libraries
Single tool with critical definition gaps. GetAotGettingStarted has a descriptive docstring (194 chars, within baseline 34-392 range) but ZERO input parameters and NO input schema visible in code. The tool takes no parameters, making schema validation impossible. Tool name lacks action verb clarity ('GetAotGettingStarted' is acceptable but verbose). Output is unstructured plain text rather than structured JSON. No error handling, no pagination, no composition with other tools. This is a read-only informational tool with minimal agent utility.
Return information on how to make a library AOT-annotated.
No input schema visible. Tool defined with empty input {} but no JSON Schema type/properties structure in code.
Output is unstructured plain text (multi-line string). LLMs cannot extract structured fields for downstream tool chaining. Should return JSON object with typed fields (e.g., steps: string[], prerequisites: string[], resources: string[]).
Tool name 'GetAotGettingStarted' is verbose and uses PascalCase (C# convention) rather than snake_case verb_noun pattern. Should be 'get_aot_getting_started' or shorter 'get_aot_guide'.
No error handling or recovery guidance. If the tool fails or returns incomplete data, LLM has no actionable next step.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 27 | <=2025-11-25 | v2 |
Single tool with no composition. Server provides only informational content with no ability to interact with actual AOT projects, validate configurations, or perform actions. Limited agent utility.