High-Performance LLM Web Researcher — Rust core, Oxide extractors, multi-provider search, token-aware truncation. Exposes web research tools via Model Context Protocol.
Gossamer provides 10 tools with mostly complete schemas and descriptions. Tool names follow verb_noun convention (search_web, fetch_page, batch_fetch). Descriptions are present and reasonably detailed (avg ~120 chars), exceeding the 10-char minimum but below the 50-200 char LLM-optimized range. All tools have input schemas with typed parameters. However, output schemas are not documented in the provided code, parameter descriptions lack constraint details (ranges, enums, formats), and error handling guidance is absent. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. The server is functional but lacks production-grade polish.
Fetch multiple URLs concurrently with rate limiting and caching
Verify liveness and accessibility of URLs with timeout and retry logic
Clear the in-memory and disk cache
Deduplicate search or fetch results by content hash
Extract structured content from PDF or Office documents
Fetch and extract markdown content from a URL with caching, rate limiting, and SSRF protection
Format citations in APA, MLA, or Chicago style
Get cache statistics (hits, misses, size, entries)
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
Parameter descriptions lack constraint details. 'provider' in search_web has no enum; 'format' in extract_document has no valid values listed; 'style' in format_citations lacks enum constraint.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk classifications. clear_cache is WRITE but unmarked; others are READ_ONLY but lack annotation.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
Route research queries to category-specific providers and search strategies
Search the web using DuckDuckGo or other configured providers with rate limiting and caching
Error handling guidance absent. No recovery hints (e.g., 'If fetch fails, try check_sources first'). No categorization of errors as retryable vs user-fixable.
Pagination not documented. batch_fetch and search_web may return large result sets; no limit, offset, or cursor parameters visible.