SearXNG MCP Server
Connects AI assistants to a SearXNG instance's JSON search API, providing privacy-respecting web search with pagination, filters, direct answers, query suggestions and instance capability inspection, plus a tool to read a known URL as text or Markdown.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SearXNG MCP Serversearch the web for the latest MCP protocol updates"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Deep Re SearXNG
This fork combines the mcp-searxng v2.9.0 server with a local SearXNG/Valkey Compose stack, repo-scoped research skills, a read-only researcher agent and result validation. Node.js 22+ is required for local Node development. See NOTICE.md for source revisions.
Bundled stack and deep research
git clone https://github.com/FivePebblesGPT/deep-re-searxng.git
cd deep-re-searxng
docker compose -f compose.yaml up -d --build
curl --fail http://127.0.0.1:3000/healthFollow Deep research setup for the six skills, agent
configuration, Python validation and workflow. The default compose.yaml starts
SearXNG, Valkey and this fork's MCP HTTP service; docker-compose.yml is the
separate upstream MCP-only STDIO example and requires an existing SearXNG URL.
The server reference below is retained from upstream. Its NPX/Docker recipes install the upstream server distribution, not this fork's source-only research skills. Use the bundled-stack instructions above for the combined toolset.
Related MCP server: Google Search MCP Server
Upstream server reference
🔍 SearXNG MCP Server
Privacy-respecting web search for AI assistants — use an operator-controlled or trusted SearXNG instance with Claude, Cursor, and more.
An MCP server that integrates the SearXNG API, giving AI assistants web search capabilities.
✨ Featured in the GitHub MCP Registry.
Quick Start
You need an existing SearXNG instance with JSON search enabled. This project connects an MCP client to SearXNG; it does not install SearXNG. Use an instance you operate or trust. Start with the self-hosted or public-instance guide if needed.
Choose how to connect:
Your setup | Start here |
Client starts the server locally | Install Node.js 22 or later, then use the NPX example below or your client recipe. |
Client starts a Docker container | Use the Docker/STDIO recipe in Installation. |
You have an independently running HTTP service | Use your client's HTTP recipe with the full |
You need to operate an HTTP service | Follow the HTTP server guide. |
For clients using mcpServers JSON (such as Claude Desktop), add:
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": ["-y", "mcp-searxng"],
"env": { "SEARXNG_URL": "https://search.example.com" }
}
}
}Replace the example URL with your SearXNG base URL. Other clients use different
configuration shapes: choose your client recipe.
Leave MCP_HTTP_PORT unset for local STDIO. Docker also needs environment
forwarding into the container.
Reload the client, inspect its MCP tool inventory, then ask it to search for
SearXNG documentation. A simple tool call is
searxng_web_search with {"query":"SearXNG"}. Discovery alone does not
test SearXNG connectivity. If the call fails, start with
troubleshooting.
Features
Search with pagination, filters, direct answers and full or compact text/JSON output.
Read HTML, structured text and bounded PDF text; inspect headings or selected sections.
Discover instance capabilities and get query suggestions.
Optional replica failover/fan-out, HTML fallback, caching, proxies and browser solvers.
Local STDIO or Streamable HTTP, with static bearer and optional OAuth protection.
See the tool guide for capabilities and limits, configuration reference for settings, and historical deployment measurements for bounded resource-planning evidence.
Why mcp-searxng?
As of 2026-07-29, the capability comparison below reflects the official Brave MCP, Exa MCP, and Firecrawl MCP projects. “Pagination” means an exposed page or offset control. “Self-hosted” means the search service can run under your control. “Free / No API key” means this MCP server does not require a paid search-vendor API key; you still operate or select the underlying SearXNG instance.
Brave MCP | Exa MCP | Firecrawl MCP | mcp-searxng | |
Web Search | âś“ | âś“ | âś“ | âś“ |
Read URL | âś— | âś“ | âś“ | âś“ |
Pagination | âś“ | âś— | âś“ | âś“ |
Self-hosted | âś— | âś— | Partial | âś“ |
Free / No API key | âś— | âś— | âś— | âś“ |
Privacy depends on the SearXNG deployment. An operator-controlled instance can avoid trusting a third-party search operator, while a public instance receives the query and may log it. SearXNG and this MCP integration do not by themselves provide anonymity.
How It Works
MCP client → mcp-searxng → SearXNG → search engines
The client either starts its own STDIO process or connects to an HTTP service.
SEARXNG_URL identifies the SearXNG service, not the MCP endpoint. URL reading
fetches the selected website directly. A semicolon-separated replica list is
supported for interchangeable SearXNG deployments; see
replica configuration.
STDIO is the default. Legacy Streamable HTTP sessions are stateful by default:
clients should send DELETE /mcp when finished, then reinitialize if a later
request receives HTTP 404 for the terminated session. Modern HTTP requests and
the MCP_HTTP_STATELESS=true legacy mode are sessionless; see
HTTP transport configuration.
Tools
Tool | Use it to |
| Find sources and refine results |
| Complete or refine a query |
| Inspect categories, engines and defaults |
| Read a known URL as text/Markdown |
The tool guide contains examples and the full parameter reference. The optional research workflow explains how to inspect sources and cite evidence.
Installation
The project-maintained distribution methods are npm (including npx) and Docker. Additional package formats, including Nix, can be maintained separately by the community.
For NPX and npm installs, Node.js 22 or later is required. The Docker image includes its Node.js runtime.
npm install -g mcp-searxng{
"mcpServers": {
"searxng": {
"command": "mcp-searxng",
"env": {
"SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
}
}
}
}Pre-built image:
docker pull isokoliuk/mcp-searxng:latestImage signatures can be verified with Cosign — see SECURITY.md for instructions.
{
"mcpServers": {
"searxng": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "SEARXNG_URL",
"isokoliuk/mcp-searxng:latest"
],
"env": {
"SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
}
}
}
}To pass additional env vars, add -e VAR_NAME to args and the variable to env.
For browser-solver integration, pass FLARESOLVERR_URL, BYPARR_URL, or both
and make the configured services reachable from this container. Dual mode has
a fixed FlareSolverr-first order and no automatic reverse failover. Safe rendered
HTML and explicit Byparr PDF content are read directly; ambiguous content uses
guarded replay, with bounded failover for eligible read failures. See
URL Reader Controls for the complete
behavior and Docker Compose example.
Build locally:
docker build -t mcp-searxng:latest -f Dockerfile .Use the same config above, replacing isokoliuk/mcp-searxng:latest with mcp-searxng:latest.
docker-compose.yml:
services:
mcp-searxng:
image: isokoliuk/mcp-searxng:latest
stdin_open: true
environment:
- SEARXNG_URL=${SEARXNG_URL:?Set SEARXNG_URL in the environment}
# Add optional variables as needed — see CONFIGURATION.mdThe tracked Compose file is intentionally STDIO-only and publishes no network ports; MCP clients launch it with an absolute Compose-file path and docker compose run --rm -T, not docker compose up. The -T flag prevents pseudo-TTY allocation so MCP JSON-RPC stays on raw standard input and output. Compose fails before launch unless the MCP client supplies SEARXNG_URL.
MCP client config:
{
"mcpServers": {
"searxng": {
"command": "docker",
"args": [
"compose",
"-f", "/absolute/path/to/docker-compose.yml",
"run", "--rm", "-T", "mcp-searxng"
],
"env": {
"SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
}
}
}
}If you previously used the tracked file as an HTTP service on port 8080, put the HTTP settings in an untracked docker-compose.override.yml:
services:
mcp-searxng:
ports:
- "127.0.0.1:8080:8080"
environment:
- MCP_HTTP_PORT=8080
- MCP_HTTP_HOST=0.0.0.0Here 0.0.0.0 is the container-side bind address; the host-side port remains loopback-only. This override has no authentication and is only a temporary single-host migration path. Before adding co-located containers or exposing the service beyond the local machine, follow the hardened deployment guidance.
HTTP Transport
Run HTTP independently, then connect the client. See the HTTP server guide for local checks, static bearer authentication, OAuth requirements and deployment verification.
Configuration
For the default local setup, SEARXNG_URL is the required setting. Optional
modes such as hardened HTTP and OAuth have companion requirements. Use the
configuration reference for environment variables,
defaults, caching, timeouts, proxies, TLS, and limits.
Optional MCP OAuth
An HTTP deployment can use OAuth with an external authorization provider. See authentication choices. Static bearer authentication and SearXNG Basic Auth protect different connections.
Troubleshooting
Symptom | Next check |
Server absent or disconnected | |
HTTP auth, session or proxy error | |
Tools appear but search fails | |
Empty, poor or stale results | |
URL/PDF failure or timeout |
403 Forbidden from SearXNG
JSON output may be disabled, or an access-control layer may have denied the request. Follow the direct checks before changing settings. A working browser page does not prove the JSON API works.
Can't enable JSON? (HTML fallback)
SEARXNG_HTML_FALLBACK=true can retry 403/404/non-JSON search responses as HTML.
Parsing is best-effort and metadata is limited; compact output omits fallback
markers. Read the public-instance guidance
before enabling it on a service you do not control.
For a bug report, collect a minimal reproduction and relevant errors.
Documentation
Configure search for useful coverage with tested upstream settings, specialist engine routes and MCP output controls. The deployment recipe includes a private Compose stack and optional browser providers, with dated results and known failures.
Find a guide by task. These links open current main-branch documentation. Unreleased behavior is labeled; consult the matching Git tag when investigating an older version.
Contributing
See CONTRIBUTING.md.
License
MIT — see LICENSE for details.
Available Tools
4 toolssearxng_instance_infoARead-only
Discovers capabilities from all reachable configured SearXNG instances via /config, including categories.common/available, engines.common/available, defaults, locales, and plugins.
| Name | Required | Description | Default |
|---|---|---|---|
| refresh | No | Bypass the process cache and fetch fresh /config data. | |
| category | No | Filter categories and engines to a single category name. | |
| includeEngines | No | Include enabled engine names in the response. | |
| includeDisabled | No | Include disabled engine names when includeEngines is true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond the readOnlyHint annotation by noting it fetches from 'all reachable configured instances' and describes the data categories returned. It does not mention caching behavior despite the refresh parameter, but the core behavioral traits (read-only, network-dependent) are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action ('Discovers capabilities') and uses a compact, informative list for data categories. Every phrase contributes meaning without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with no output schema, the description adequately covers its purpose and the data content it returns. It lacks explicit treatment of caching (hinted at by the refresh parameter) and behavior when instances are unreachable, which would be useful but are not critical for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions, so the tool description does not need to explain parameters. The description's list of output categories (e.g., categories.common/available) loosely relates to the 'category' filter but does not explicitly connect them, adding only marginal semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'discovers' and names the resource: capabilities of SearXNG instances. It enumerates the exact content categories (categories, engines, defaults, locales, plugins), making it distinct from sibling tools like searxng_web_search and searxng_search_suggestions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to inspect instance capabilities, but it does not explicitly state when to choose this over sibling search tools or provide exclusions. The context is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searxng_search_suggestionsARead-only
Returns autocomplete suggestions from the configured SearXNG instance. Use this to refine vague or partial queries before searching.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Partial or complete query to autocomplete. | |
| language | No | Language code for suggestions (e.g., 'en', 'fr', 'de') or 'all'. Default: all. | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety and determinism profile. The description adds that results come from the configured instance, implying external dependency, but doesn't disclose rate limits or response format. With annotations doing the heavy lifting, 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and immediately followed by usage guidance. No filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only suggestion tool with two well-documented parameters and no output schema, the description fully conveys purpose and usage. Annotations cover behavioral constraints, making this complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with descriptions for both query and language including default values. The description's 'autocomplete suggestions' adds context but does not materially enhance what the schema already provides, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Returns autocomplete suggestions from the configured SearXNG instance' – a specific verb, resource, and source. The name and description distinguish it from sibling tools like web_search and instance_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this to refine vague or partial queries before searching', providing clear when-to-use context and implying it is a precursor to web search. This is unambiguous guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searxng_web_searchARead-only
Searches the web using SearXNG and returns a list of results, each with a title, URL, and content snippet. CRITICAL: The required parameter name is exactly query (not prompt, q, or any other name). Calls an external SearXNG instance; availability depends on the SEARXNG_URL configuration. Use pageno to paginate results; combine time_range and language to narrow scope. When engines and time_range are both provided, every selected engine must explicitly advertise time-range support via SearXNG /config; otherwise the request is rejected before search. To read the full text of a result URL, follow up with web_url_read.
| Name | Required | Description | Default |
|---|---|---|---|
| pages | No | Fetch 1 to 5 consecutive pages concurrently starting at pageno; merge and deduplicate before applying the result limit. Failed pages are reported in failedPages in JSON output. | |
| query | Yes | The search query string. This is the required parameter name — use exactly `query`, not `prompt` or `q`. | |
| pageno | No | Search page number (starts at 1) | |
| engines | No | Comma-separated SearXNG engine names to query (e.g. 'google,bing,ddg'). Live /config capabilities are aggregated across reachable instances; prefer searxng_instance_info engines.common.enabled for consistent multi-instance results. Values in engines.available.enabled are best-effort and may only be honored by some instances. Known values are normalized case-insensitively; unknown values are forwarded trimmed so SearXNG can ignore or honor them. If /config is unavailable, values are forwarded as-is with a warning. If omitted, each instance uses its server-side default. | |
| language | No | Language code for search results (e.g., 'en', 'fr', 'de'). Default is instance-dependent. | all |
| min_score | No | Minimum relevance score threshold from 0.0 to 1.0. Results below this score are filtered out. | |
| categories | No | Comma-separated SearXNG categories. Live /config capabilities are aggregated across reachable instances; prefer searxng_instance_info categories.common for consistent multi-instance results. Values in categories.available are best-effort and may only be honored by some instances. Known values are normalized case-insensitively; unknown values are forwarded trimmed so SearXNG can ignore or honor them. If /config is unavailable, values are forwarded as-is with a warning. If omitted, each instance uses its server-side default. | |
| safesearch | No | Safe search filter level (0: None, 1: Moderate, 2: Strict) | |
| time_range | No | Time range of search (day, week, month, year). With explicit engines, all selected engines must confirm time_range_support=true via /config. | |
| num_results | No | Maximum number of results to return (1-20). Operator cap SEARXNG_MAX_RESULTS applies as a ceiling. | |
| result_detail | No | Result detail: full preserves SearXNG metadata and search signals; compact returns only title, URL, and content-snippet fields for each result (JSON keys: title, url, content). If omitted, full is used. | |
| response_format | No | Response format: formatted text for agents or raw JSON for programmatic clients. If omitted, SEARXNG_DEFAULT_RESPONSE_FORMAT applies; if unset or invalid, text is used. An explicit response_format always takes precedence. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, and the description adds substantial context beyond them: an external SearXNG instance is called, availability depends on SEARXNG_URL, and requests combining `engines` with `time_range` are rejected pre-search unless every engine advertises time-range support in /config. These failure modes are exactly what an agent needs to avoid dead calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Roughly six sentences, front-loaded with the purpose and return shape before constraints. The all-caps CRITICAL warning is slightly heavy but justified by the common mistake of sending `prompt` or `q`.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter tool with no output schema, the description covers the return shape, pagination, scope narrowing, engine/time-range compatibility, and the follow-up path to full text. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns an extra point by emphasizing the exact `query` parameter name, the interaction constraint between `engines` and `time_range`, and by telling the agent where to get full text. Most other parameter detail is already in the schema and not repeated at length.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Searches the web using SearXNG') plus the return shape (title, URL, content snippet). It also distinguishes itself from the sibling web_url_read by naming it as the follow-up for full-text reading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage guidance: use `pageno` to paginate, combine `time_range` and `language` to narrow scope, and follow up with `web_url_read` for full text. It does not mention when to prefer the sibling searxng_search_suggestions or searxng_instance_info, so the routing is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_url_readARead-only
Fetches a URL and returns readable content as markdown. Content-type aware: HTML is converted to markdown; JSON is pretty-printed; plain text, YAML, TOML, and XML are returned as fenced readable text. PDF text extraction is supported with bounded input, output, page count, time, concurrency, and memory; OCR is not supported. Binary, media, archive, and octet-stream downloads other than PDFs are intentionally rejected instead of being returned as raw bytes. When the operator configures browser solvers, mcp-searxng attempts FlareSolverr first and then Byparr only after a busy or transient-unavailable acquisition; cache hits bypass acquisition and a final busy or unavailable provider uses one uncached direct-fetch fallback. Three modes: (1) Full content — omit filtering params; use startChar/maxLength to paginate large pages. (2) Section extraction — set section to return content under a specific heading. (3) Headings only — set readHeadings: true to list all headings (mutually exclusive with other filtering params). Returns an error string if the URL is unreachable or content cannot be extracted. Use after searxng_web_search to read the full content of individual result URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL | |
| section | No | Extract content under a specific heading (searches for heading text) | |
| maxLength | No | Maximum number of characters to return | |
| startChar | No | Starting character position for content extraction (default: 0) | |
| readHeadings | No | Return only a list of headings instead of full content | |
| paragraphRange | No | Return specific paragraph ranges (e.g., '1-5', '3', '10-') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint and openWorldHint, but the description adds extensive behavioral detail: content-type conversion rules, PDF extraction limits, binary rejection, FlareSolverr/Byparr fallback logic, modes, and error return behavior. This far exceeds what annotations alone communicate, with no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but each sentence contributes necessary detail. It is front-loaded with the primary purpose and then branches into content types, limitations, modes, and usage. The solver fallback details are somewhat verbose and could be trimmed without losing core guidance, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately explains return format (markdown, fenced text, error string) and covers all major usage aspects: modes, pagination, unsupported types, and integration with the search tool. This makes it self-sufficient for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters 100%, so baseline is 3. The description adds value by explaining how parameters combine into three modes (full content with startChar/maxLength, section extraction, readHeadings) and notes mutual exclusivity. However, paragraphRange is not mentioned in the description, so it doesn't fully elaborate every parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence clearly states 'Fetches a URL and returns readable content as markdown,' identifying the specific verb and resource. It distinctly differentiates from sibling tools (searxng_web_search, suggestions, instance info) which are search-oriented, not content retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use after searxng_web_search to read the full content of individual result URLs,' providing clear when-to-use guidance. Also lists exclusions (binary, media, OCR not supported) which inform when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v2.9.0- First observed
searxng_instance_info - First observed
searxng_search_suggestions - First observed
searxng_web_search - First observed
web_url_read
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: web search, autocomplete suggestions, instance capability discovery, and URL content reading. The descriptions explicitly guide follow-up workflows, making misselection unlikely.
Three tools share the predictable `searxng_` prefix and snake_case, but `web_url_read` breaks that prefix pattern. The naming is still readable and mostly consistent.
Four tools is well-scoped for a SearXNG integration: search, suggestions, instance info, and content fetching. Each earns its place without redundancy.
The surface covers the main search workflow end-to-end, including query refinement and reading result content. Some advanced search modes may be handled via parameters rather than dedicated tools, leaving only minor gaps.
Maintenance
Related MCP Connectors
Provides AI assistants with access to Seltz's powerful Web Search capabilities.
Web search, data extraction and controlled browser automation for AI assistants via OAuth.
Live AI-native web search with citations. One tool for every MCP client. Flat per-request pricing.
Enable AI assistants to perform web searches using Perplexity's Sonar Pro.
Related MCP Servers
- FlicenseCqualityDmaintenanceEnables web search capabilities through the Tavily API via the Model Context Protocol. Allows users to perform web searches and retrieve information from the internet through natural language queries.5-
- AlicenseAqualityDmaintenanceEnables users to perform Google Custom Search queries through the Model Context Protocol. Requires Google API credentials and Custom Search Engine configuration for web search functionality.1MIT
- AlicenseAqualityCmaintenanceProvides a bridge between AI assistants and SearXNG, a privacy-respecting metasearch engine, enabling web searches and engine discovery via the Model Context Protocol.264 npm2Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI applications to perform web searches using a YaCy search engine instance through the Model Context Protocol.1MIT