An MCP server to connect and use any public GitHub repo as knowledge base (markdown and notebook documents).
Four tools with clear verb-noun naming (list_, read_, search_, get_) and READ_ONLY risk classification. All have descriptions (34 - 194 chars, within baseline range). Input schemas present with type declarations. However, parameter descriptions are minimal or absent, most params lack actionable guidance on format, constraints, or dependencies. Output schemas are not documented. Error handling is basic (FileNotFoundError, RuntimeError) with no recovery guidance. No tool annotations (readOnlyHint, idempotentHint). Composition is sound (each tool does one thing), but descriptions could be more LLM-optimized per pattern:tool-description baseline (10 - 1024 chars, ideally 50 - 200).
Get metadata for a document including size and last modified timestamp.
List all supported document files (markdown and notebook) in the knowledge base.
Read the full content of a document file from the knowledge base. For notebooks, extracts and concatenates all markdown cells.
Search for documents matching a query pattern across the knowledge base.
Parameter descriptions missing or minimal. 'relative_path' and 'query' params lack format guidance, constraints, or examples. LLMs cannot infer whether paths are case-sensitive, whether query supports regex, or what happens with invalid paths.
Output schemas not documented. Tools return structured data (lists of documents, file content, metadata) but no schema is visible in code or docstrings. LLMs cannot plan downstream operations without knowing return field names and types.
Error handling lacks recovery guidance. FileNotFoundError and RuntimeError are raised but do not tell the LLM what to do next (e.g., 'Try search_documents() to find the correct path'). Errors should be actionable per pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No tool annotations. Tools are READ_ONLY but lack readOnlyHint annotation in schema. This prevents clients from optimizing caching, retry logic, or UI presentation.
search_documents query parameter is unconstrained. No guidance on regex syntax, case sensitivity, field scope (path vs content), or result limits. LLMs will guess and may pass invalid patterns.