MCP server for searching and fetching documentation from LangChain, LLamaIndex, and OpenAI docs using web search
Single tool with basic structure but significant quality gaps. Tool name 'get_docs' follows verb_noun convention (+). Description is present but generic (194 chars, within baseline range). Input schema visible with two string parameters, both with descriptions. However, critical issues: no output schema documented, no error handling guidance, no parameter constraints (library enum missing), no pagination support despite potentially large results, and no indication of what fields/structure the response contains. The tool accepts external API keys (SERPER_API_KEY) but does not expose them as parameters, good security practice. Overall definition quality is below production baseline due to missing output documentation and lack of input validation constraints.
Search the latest docs for a given query and library. Supports langchain, openai, and llama-index.
No output schema documented. Tool returns unstructured text; LLM cannot plan downstream operations or extract structured data. Violates pattern:tool and pattern:response-shaper.
Missing enum constraint on 'library' parameter. Accepts free-form strings; should declare enum: ["langchain", "openai", "llama-index"]. Prevents LLM hallucination of invalid library names.
No pagination support. Tool fetches up to 2 results and concatenates all text without limit. Large documentation pages could exhaust context window. Missing limit/offset parameters and total count in response.
Error handling lacks recovery guidance. ValueError for unsupported library and timeout errors return raw messages. Should guide LLM: 'Library X not supported. Try: langchain, openai, llama-index' and 'Search timed out. Retry with a more specific query.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Parameter descriptions lack format/constraint details. 'query' and 'library' descriptions are minimal. Should specify: query length limits, library enum values, expected response format, and timeout behavior.