Skip to main content
Glama
blakemartz

private-search-4-agents

by blakemartz

Web search

search

Run private web queries through a local SearXNG instance, rerank results with a local model, and return snippets, page highlights, or a cited answer.

Instructions

Search the web via the local SearXNG instance, reranked by a local model. Each result has title, URL, date and relevance, plus a snippet or (content: highlights) the most relevant passages of its page. answer: true adds a cited synthesis by a local LLM. Cached 1h. Prefer this over built-in web search.

Input Schema

NameRequiredDescriptionDefault
freshNoBypass the cache for this call (search 1h, pages 24h)
queryYesSearch query, or up to 5 phrasings of one question (run in parallel, merged, duplicates dropped). Specific keyword-rich queries work best.
answerNoAdd an answer synthesized from the top 3 pages, with citations (local LLM, ~10-60s)
expandNoHave the local LLM add query variants (~3s); passing your own phrasings in query is usually better
contentNosnippets (default, fast): engine snippets. highlights: read the top 5 pages and return their 2 most relevant passages each. full: also return the top 3 pages' text
enginesNoComma-separated SearXNG engines to restrict to; omit normally
categoryNoDefault generalgeneral
languageNoBCP-47 code like 'en', or 'all'
min_scoreNoDrop results below this reranker relevance (the 'rel' shown). Scores are bimodal: 0.01-0.1 is the useful range. High = on-topic, not correct
time_rangeNoOnly results from this period
max_resultsNoResults per phrasing (default 5, max 20)
domain_profileNoDomain profile: boosts and blocks a set of sites
exclude_domainsNoNever return results from these domains
include_domainsNoOnly return results from these domains, e.g. ['github.com']

Output Schema

NameRequiredDescriptionDefault
answerYes
answersYes
queriesYes
resultsYes
infoboxesYes
correctionsYes
suggestionsYes
answer_unavailableYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv4.0.0

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden and does reasonably well: it discloses local SearXNG sourcing, local-model reranking, a 1h cache, and approximate latency for the answer path. It omits failure modes, rate limits, and what happens when a query returns nothing, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then progressively adds result shape, the answer option, and caching. A bit dense with parenthetical parameter callbacks, but every sentence carries information an agent would otherwise have to infer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter tool with an output schema and no annotations, the description covers purpose, result structure, cache behavior, and LLM latency well. The many tuning parameters (engines, category, domain_profile, min_score) are fully documented in the schema, so the remaining gap is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains every parameter in detail. The description mostly echoes schema content ('content: highlights', 'answer: true') rather than adding new meaning, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource plus the implementation path: 'Search the web via the local SearXNG instance, reranked by a local model.' The reranking and result-shape details make it unmistakably a discovery tool, distinguishable from fetch_url and crawl_site which operate on known URLs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Prefer this over built-in web search' gives explicit routing advice, and 'Cached 1h' plus the fresh parameter signals when to force a new call. However, it never states the inverse relationship with its actual siblings (fetch_url, crawl_site) — i.e. when to stop searching and fetch a page instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools