Documentation MCP server with Playwright-based authentication and crawling
Five tools with clear verb-noun naming (search_docs, fetch_page, list_pages, get_sites, get_version). All have descriptions (10 - 100 chars, within baseline 34 - 392 range). Input schemas present with type and description for all parameters. However, output schemas are not documented in the visible code, critical for LLM planning. Parameter descriptions are minimal (e.g., 'Name of the site' lacks context on format/constraints). No error handling guidance visible. Tools are read-only and well-scoped, but lack the depth expected for production use (pagination, result limits, recovery hints).
retrieve a page by URL
list all configured sites
report the MCP server version
list all indexed pages for a site
full-text search across indexed pages
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., does search_docs return page_url, chunk_id, score?). Critical for tool composition.
Parameter descriptions lack format/constraint details. 'Name of the site' does not explain valid format, case sensitivity, or how to discover site names. Should reference get_sites or provide enum.
search_docs lacks pagination (limit parameter present but no offset/cursor or total_count in response). Large result sets will blow context window.
No error handling guidance visible. If a site is not found or search fails, LLM receives no recovery hint (e.g., 'Try get_sites() to list available sites').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
get_sites and get_version have empty input schemas (no parameters). Descriptions should clarify when/why to call them and what structure they return.