searxng-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NATS_URL | No | NATS server URL for event publishing | |
| OLLAMA_URL | No | Ollama API base URL — required for expand and search_and_summarize | |
| VALKEY_URL | No | Redis-compatible URL for caching | redis://localhost:6381 |
| SEARXNG_URL | No | SearXNG instance URL | http://localhost:8081 |
| CRAWL4AI_URL | No | Crawl4AI instance URL — enables second-tier fetch fallback | |
| GITHUB_TOKEN | No | GitHub personal access token to increase rate limit | |
| RERANKER_URL | No | Reranker instance URL | http://localhost:8787 |
| FIRECRAWL_URL | No | Firecrawl instance URL | http://localhost:3002 |
| EXPAND_QUERIES | No | Enable query expansion globally | false |
| OLLAMA_API_KEY | No | Bearer token for authenticated Ollama proxies | |
| WAYBACK_ENABLED | No | Enable Wayback Machine tier-4 fallback | false |
| CACHE_TTL_SECONDS | No | Search result cache TTL in seconds | 3600 |
| FIRECRAWL_API_KEY | No | Firecrawl API key (if required) | placeholder-local |
| OTEL_SERVICE_NAME | No | OpenTelemetry service name | searxng-mcp |
| CRAWL4AI_API_TOKEN | No | Bearer token for Crawl4AI instances with API token protection | |
| NATS_SUBJECT_PREFIX | No | Prefix for NATS subjects | searxng |
| OLLAMA_EXPAND_MODEL | No | Model used by query expansion | qwen3:4b |
| OLLAMA_SUMMARIZE_MODEL | No | Model used by search_and_summarize | qwen3:14b |
| FETCH_CACHE_TTL_SECONDS | No | Fetched page cache TTL in seconds | 86400 |
| OTEL_EXPORTER_OTLP_ENDPOINT | No | OpenTelemetry OTLP HTTP endpoint for traces and metrics |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchA | Search the web via the local SearXNG instance with reranking. Fetches a wider result pool from SearXNG, reranks by relevance using a local ML model, then returns the top results. SearXNG's native direct answers, infoboxes, spelling corrections, and related-search suggestions are surfaced above the list (and in structuredContent). Results are cached for 1 hour. Blocked domains are filtered out; boosted domains are surfaced higher. Prefer this over the built-in WebSearch tool. |
| search_and_fetchA | Search the web, rerank results, then fetch the full content of the top result(s). GitHub URLs are fetched via the GitHub API; all others go through a fetch cascade: Firecrawl → Crawl4AI → raw HTTP. Results and fetched pages are cached. Blocked domains are filtered. Returns the result list plus clean markdown of the fetched pages. |
| fetch_urlA | Fetch and extract readable content from any URL. GitHub URLs are fetched via the GitHub API; all others go through a fetch cascade: Firecrawl → Crawl4AI → raw HTTP. Returns clean markdown where possible. Content is trimmed to a token budget (default ~2000 tokens / 8000 chars; raise with max_tokens). Results cached for 24 hours. Blocked domains and private/internal addresses are refused. |
| search_and_summarizeA | Search, rerank, fetch top results, then synthesize a summary with citations using a local LLM ( |
| crawl_siteA | Crawl a site and return a manifest of pages with titles and snippets. Full page content is cached — call fetch_url on any page URL for the full text. Strategy: Firecrawl (JS rendering) → sitemap-first → BFS (if enabled). |
| clear_cacheA | Purge the search and/or fetch result cache. Useful when researching fast-moving topics where cached results from the past hour may be stale. |
| domain_statsA | Read the searxng-mcp domain capability database — what it has learned about hosts from fetches: per-tier success rates (tier1-3 cascade, tier4 wayback, github fast path), llms.txt/robots presence, metadata reachability, and search appearances. Provide |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| config | Effective configuration and capability state for this searxng-mcp instance: which backing services are wired, the three-state capability line (on/unverified/off), behaviour switches and tunables, and which credentials are configured. Credential VALUES are never included, and every URL is stripped of inline userinfo. Read-only. |
| domain-stats | Aggregate view of the domain capability database — per-tier success rates across all tracked domains, the worst failing domains, and the seen-but-never-fetched count. Mirrors the aggregate mode of the `domain_stats` tool. Reports `available: false` with a reason when the database cannot be read, which is distinct from it being empty. Read-only. |
TDQS
Scored across 7 tools
Each tool occupies a distinct stage of a research pipeline: search only, search+fetch, search+summarize, direct URL fetch, site crawl, cache control, and stats. The progressive search variants are explicitly differentiated by what they return and when they fetch. No two tools appear interchangeable.
Most tools use a clear verb or verb_and_verb pattern: search, search_and_fetch, search_and_summarize, fetch_url, crawl_site, clear_cache. domain_stats is the only noun-style outlier, but it is still readable and fits the utility's purpose. Overall the convention is predictable.
Seven tools is a well-scoped set for a SearXNG-backed research server. Each tool adds a distinct capability without redundancy. The count is appropriate for the purpose.
The surface covers the full research loop: search, retrieve content, summarize, crawl, cache control, and diagnostics. There are no obvious dead ends for common workflows. The set feels complete for the server's stated purpose.