MCP server to parse documentation for the windows crate
Single-tool server with a reasonable verb-based name (search_windows_api) and clear description. Input schema is present with proper type and description. However, the output schema is completely undocumented, the tool description states what it searches but does not explain what structure is returned, what fields the LLM can expect, or how to chain results to other operations. The description is adequate (146 chars) but lacks guidance on when to use this tool vs alternatives or what format results arrive in. No error handling guidance documented. Parameter description is solid and specific. The server is well-engineered (uses SearchIndexClient with caching, proper async patterns, good code organization) but the tool definition itself falls short of production-grade LLM optimization.
Search the Rust Windows crate API documentation (https://microsoft.github.io/windows-docs-rs/). An example query is "CreateFile", "VirtualAlloc", "FILE_DISPOSITION_INFORMATION". You can't search for multiple objects at once, e.g. "CreateFile VirtualAlloc" will not work.
Output schema completely undocumented. Tool description explains the search function but provides NO documentation of the response structure, fields, types, or pagination behavior. LLMs cannot plan downstream operations or extract data without knowing what fields to expect.
No error handling guidance. Tool description does not explain what happens on invalid input (e.g., 'query' parameter is empty or whitespace), what exceptions might occur (network timeout, malformed response, crate not found), or how the LLM should recover. Error responses will lack actionable recovery hints.
No pagination or result-limiting guidance. If a search returns many results, the tool description does not specify whether results are capped, paginated, or returned in full. LLMs may receive unexpectedly large responses that bloat context or fail requests.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 54 | - | v1 |
Parameter description includes 'e.g.' examples (CreateFile, VirtualAlloc, FILE_DISPOSITION_INFORMATION). LLMs may reuse these literal values in real calls instead of adapting to user context. Replace with formal constraints or enum values if applicable.