MCP server for SolidJS skill and corpus retrieval in solidJSkills
Server provides 7 read-only tools with consistent naming (verb_noun pattern) and reasonable descriptions (avg 120 chars). All tools have input schemas with Zod validation. However, parameter descriptions are sparse or missing entirely for several tools (list_docs has empty schema; search_docs lacks query format guidance). Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal (no recovery guidance, no actionable error messages). Security is solid (read-only, path validation), but composition could be tighter (search_docs and search_corpus overlap in intent).
List normalized SolidJS corpus documents with stable metadata fields (doc_id, package, topic, source_path).
List all docs under skills/, guides/, tools/templates/, references/, and solidJSdocs/.
Read one corpus document by doc_id, returning metadata from manifest and the chosen source body (normalized or raw).
Read one document by repository-relative path. Allowed roots: skills/, guides/, tools/templates/, references/, solidJSdocs/.
Resolve a Solid API symbol to manifest-backed docs using symbol, heading, and path matching.
Search normalized corpus metadata and rank matches using doc_id/path/headings/tags/symbols; returns stable manifest-backed results.
list_docs has empty input schema (z.object({}).shape), no parameters documented, but description claims it lists docs.
Output schemas are not documented anywhere. LLMs cannot predict response structure (text content, field names, pagination).
search_docs and search_corpus both search documentation but with different scopes (repository vs normalized corpus). Naming does not disambiguate intent clearly. LLMs may conflate them.
Error handling is minimal. No recovery guidance (e.g., 'Path not found. Try search_docs() first'). No actionable error messages. Agents cannot self-correct on failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2025-06-18+ | v2 |
Search docs by case-insensitive substring match over file paths.
search_docs parameter 'query' lacks format guidance. Should specify: case-insensitive, substring match, min length, max length. Current description is too brief (24 chars).