Use this client-neutral workflow when an agent must support an answer with traceable evidence. It composes the four mcp-searxng tools without requiring every tool on every task.
- Use
searxng_web_searchwhen the source URL is unknown or you need to discover several perspectives. - Use
searxng_search_suggestionsonly when a query is vague, incomplete, or uses uncertain terminology. Skip it when the query is already precise. - Use
searxng_instance_infoonly when available categories, engines, locales, or instance defaults affect the search. It reports the configured instances' current capabilities; it does not expand them. - Use
web_url_readafter selecting a known URL whose page content is needed. A search-result snippet is discovery evidence, not a substitute for reading a source that supports a material claim.
Write the question, intended audience, required freshness, and what would count as sufficient evidence. Separate factual claims from opinions, forecasts, or decisions. Record material constraints such as language, jurisdiction, date range, and acceptable source types.
Call searxng_instance_info when the plan depends on a category or engine, or
when a search behaves differently than expected. In full mode:
includeEnginesincludes enabled engine names.includeDisabledalso includes disabled engines whenincludeEnginesis true.categorynarrows the capability response to one category.refreshbypasses the process cache and fetches current/configdata.
For multiple configured instances, prefer common capabilities for consistent behavior. Available-only capabilities may work on some instances and not others.
If terminology is unclear, use searxng_search_suggestions with query and,
when useful, language. Treat suggestions as query ideas, not evidence.
Otherwise proceed directly to search.
Useful refinements include:
- Terminology: add the exact product, standard, error, organization, or quoted phrase.
- Language: use
languagefor a known locale, or broaden toall. - Freshness: use
time_range(day,week,month, oryear) only when the question requires it. - Scope: use
categoriesorenginesonly after confirming the instance supports the intended values. - Precision: add a jurisdiction, version, date, domain, or primary-source organization.
Call searxng_web_search with the required query. Full mode also supports:
pagenofor later result pages.time_range,language, andsafesearchfor scope.min_scoreandnum_resultsfor result selection.categoriesandenginesfor instance-supported routing.response_formatastextfor normal agent use orjsonfor structured processing.
If results are poor or empty, change one material constraint at a time:
- remove unnecessary words or try a recognized synonym;
- remove an overly restrictive
time_range; - broaden
languagetoall; - remove narrow
categoriesorengines; - broaden the question, then search a narrower sub-question separately.
Retries do not ensure useful results. Engine access, rate limits, and result quality remain instance-dependent.
Prefer sources that are relevant, attributable, current enough for the claim, and close to the underlying evidence. For material factual claims, favor primary sources such as official documentation, laws, standards, datasets, research papers, and first-party announcements. Use independent secondary sources to add context or challenge a primary source's interpretation.
Do not count syndicated copies, articles repeating one announcement, or several pages from the same organization as independent confirmation.
Use web_url_read with url for each selected page. In full mode:
- use
startCharandmaxLengthto paginate long content; - use
sectionfor a known heading; - use
paragraphRangefor a narrow passage; - use
readHeadingsto inspect structure before choosing a section.
If a page is unavailable, binary, unsupported, or too incomplete to support the claim, choose another source. Do not infer that a search snippet proves what the unread page contains.
Cross-check material claims against another genuinely independent source, or explain why only one authoritative source exists. Compare dates, versions, definitions, population or sample, and measurement method. When sources conflict, report the disagreement and determine whether freshness, scope, or method explains it; do not silently choose the convenient result.
Cite the evidence next to the claim it supports, using the source's canonical URL when available. Distinguish direct source statements from your synthesis.
- Evidence: what a cited source directly establishes.
- Inference: a conclusion drawn by combining evidence or filling a stated gap.
- Unknown: information the available sources do not establish.
State uncertainty when evidence is incomplete, stale, contradictory, or based on an inference. Never invent a citation, quotation, date, or source detail.
Use this as an adjustable starting point, then reduce or increase it according to risk and task complexity:
| Work | Small factual check | Normal research | High-impact claim |
|---|---|---|---|
| Search rounds | 1 | 2-3 | 3-5 |
| Search calls per round | 1 | 1-2 | 2-3 |
| Pages read | 1-2 | 3-6 | 5-10 |
| Concurrent calls | 1-2 | 2-4 | 2-4 |
Parallel calls should cover independent queries or sources. Keep dependent steps sequential: discover a URL before reading it, and inspect capabilities before relying on an instance-specific category or engine.
Stop when all of the following are true:
- the question is answered at the required level of detail;
- every material factual claim has a citation or is explicitly labeled as inference or unknown;
- important claims have appropriate independent confirmation;
- remaining source disagreement and uncertainty are stated;
- another search round is unlikely to change the conclusion materially.
Stop earlier when the agreed call or time budget is reached, access is blocked, or available evidence cannot answer the question. Report the limitation instead of continuing unbounded retries. No fixed budget or workflow can ensure complete, current, or correct search results.
Queries and fetched URLs are sent to the configured SearXNG service and, depending on its configuration, upstream engines and destination sites. Do not submit secrets, credentials, private identifiers, confidential text, or unnecessary personal data. A public instance adds an operator trust boundary; self-hosting improves control but does not by itself make upstream activity anonymous.
Use the self-hosted operator guide when you control the SearXNG deployment. Use the public-instance guide when you do not.
With SEARXNG_LITE_TOOLS=true, the tool schemas intentionally save context:
search and suggestions accept only query, instance information accepts no
optional controls, and URL reading accepts only url. The workflow still
applies, but parameter-based refinement and selective page extraction require
full mode. Do not send full-mode parameters and assume they were honored.