Read-only MCP server giving AI agents the web as compact, ranked, verified evidence. Local cross-encoder reranker, NLI claim verification, semantic cross-source agreement and contradiction detection. No API keys.
Server has 6 tools with clear naming (verb_noun pattern: web_read, web_search, web_extract, web_verify, web_research, web_context). All tools have descriptions (50-150 chars, within baseline 34-392 range). Input schemas are present with typed parameters and descriptions. However, output schemas are NOT documented in the source code, critical gap for LLM planning. Error handling is minimal; no recovery guidance or categorization visible. Tool descriptions lack dependency hints and prerequisites. Parameters lack constraints (enums, ranges, format specs). No evidence of pagination support for list-returning tools. Security: no visible input validation, sanitization, or rate limiting.
Fetch a URL and return task-relevant evidence chunks ranked by relevance, with token savings estimate and retrieval confidence.
Extract structured data (JSON-LD, metadata, microdata) from a URL.
Read and clean a single URL, returning structured page content with title, text, and metadata.
Research a topic by searching the web, fetching top results, ranking evidence across sources, and detecting cross-source agreement/contradiction.
Search the web using DuckDuckGo and return top results with titles and URLs.
Verify a claim against one or more source URLs, returning verdict (supported/refuted/unclear) with confidence and supporting/refuting chunks.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., chunk_id, source_url, verdict). Prompts reference fields like 'chunk_id', 'agreement_score', 'verdict_reasons' but these are not formally declared in tool definitions.
No input validation or error handling visible. Tools accept free-form strings (url, query, claim) with no format validation, length limits, or sanitization. No error recovery guidance (e.g., 'URL invalid, try a different source').
Parameters lack constraints. 'max_tokens' (integer) has no min/max bounds; 'limit' (integer) in web_search has no range. 'depth' in web_research is optional but no guidance on valid range. Unbounded integers invite absurd values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2025-06-18+ | v2 |
No pagination support visible. web_search returns 'top results' but no limit enforcement, next_cursor, or total_count documented. Large result sets risk context window exhaustion.
Tool descriptions lack dependency hints and prerequisites. No guidance on when to call web_search before web_context, or when web_verify is appropriate vs web_research. Agents must infer composition logic.