MCP server that integrates Linkup web search and RAG (Retrieval-Augmented Generation) capabilities using local LLMs and embeddings
Both tools have minimal descriptions (under 100 chars) and lack parameter-level documentation. web_search has a basic schema with one string parameter but no description for the parameter itself. rag has a similar structure but is inferred from pyproject.toml rather than directly visible in server.py registration. Neither tool documents output schemas, error handling, or recovery guidance. No tool annotations (readOnlyHint, idempotentHint) present. Naming is acceptable (verb_noun pattern), but descriptions are too terse to guide LLM selection effectively.
Use a simple RAG workflow to answer queries using documents from data directory about Deep Seek
Search the web for the given query.
Parameter descriptions missing. 'query' parameter in both tools lacks description explaining what kind of query is expected, format constraints, or examples.
Output schemas not documented. Tools return strings but LLMs cannot infer structure, fields, or how to chain results to downstream tools.
Tool descriptions too brief (<100 chars). 'Search the web for the given query' does not explain when to use web_search vs rag, what output format to expect, or prerequisites.
No error handling or recovery guidance. Tools do not document what happens on invalid queries, network failures, or empty results. LLM has no guidance on retry or fallback.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
rag tool definition inferred from pyproject.toml, not explicitly visible in server.py registration. Cannot verify actual schema or implementation details.