SearXNG MCP Server
Provides web search capabilities via the SearXNG API, enabling general queries, news, and article searches with support for pagination, time-based filtering, language selection, and safe search levels.
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 for the latest news on quantum computing from the last month"
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.
SearXNG MCP Server
A Model Context Protocol server that integrates the SearXNG API, giving any MCP client private web search and URL-to-Markdown reading through your own meta-search instance.
Features
Web search against any SearXNG instance - no third-party search API keys
Pagination with page selection
Filters: time range (day/month/year), language, and safe search
URL reader: fetch any URL and convert it to Markdown
Authentication: optional HTTP Basic Auth for protected instances
Related MCP server: SearXNG MCP Server
Tools
searxng_web_search
Performs a web search and returns titles, descriptions and URLs.
Parameter | Type | Required | Description |
| string | yes | The search query |
| number | no | Search page number, starts at 1 (default |
| string | no | One of |
| string | no | Language code (e.g. |
| string | no |
|
web_url_read
Fetches a URL and converts the HTML content to Markdown.
Parameter | Type | Required | Description |
| string | yes | The URL to fetch and process |
Configuration
Environment variable | Default | Description |
|
| Base URL of your SearXNG instance |
| - | Username for HTTP Basic Auth (optional) |
| - | Password for HTTP Basic Auth (optional) |
Choose a public instance from searx.space or run your own.
Installation
npx
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": ["-y", "@tobioffice/mcp-searxng"],
"env": {
"SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
}
}
}
}npm global install
npm install -g @tobioffice/mcp-searxng{
"mcpServers": {
"searxng": {
"command": "tobioffice-mcp-searxng",
"env": {
"SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
}
}
}
}From source
git clone https://github.com/tobioffice/mcp-searxng.git
cd mcp-searxng
pnpm install
pnpm run build
node dist/index.jsReady-to-copy client configs are included in claude_desktop_config_example.json and claude_desktop_config_with_auth.json.
Development
pnpm install
pnpm run build # compile TypeScript to dist/
pnpm run watch # compile in watch modeLicense
MIT - see LICENSE.
Available Tools
2 toolssearxng_web_searchB
Performs a web search using the SearXNG API, ideal for general queries, news, articles, and online content. Use this for broad information gathering, recent events, or when you need diverse web sources.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query. This is the main input for the web search | |
| pageno | No | Search page number (starts at 1) | |
| time_range | No | Time range of search (day, month, year) | |
| language | No | Language code for search results (e.g., 'en', 'fr', 'de'). Default is instance-dependent. | all |
| safesearch | No | Safe search filter level (0: None, 1: Moderate, 2: Strict) | 0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool is 'ideal for general queries' and 'broad information gathering' which gives some context about scope, but doesn't address important behavioral aspects like rate limits, authentication requirements, result format, pagination behavior, or error handling. For a search tool with no annotation coverage, this leaves significant gaps.
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 appropriately sized with two sentences that each serve a clear purpose. The first sentence establishes the core functionality, while the second provides usage guidance. There's no wasted text, though it could be slightly more front-loaded with the most critical information.
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 search tool with 5 parameters, 100% schema coverage, but no annotations and no output schema, the description provides adequate basic context about when to use the tool. However, it doesn't compensate for the lack of output schema by describing result format or structure, and with no annotations, it should provide more behavioral context about the search operation's characteristics and limitations.
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 description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions 'general queries' which aligns with the 'query' parameter, but provides no additional semantic context about parameter usage or interactions. Baseline 3 is appropriate when schema does the heavy lifting.
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 the tool performs a web search using SearXNG API, specifying the action ('performs a web search') and resource ('SearXNG API'). It distinguishes from the sibling tool 'web_url_read' by focusing on search rather than reading specific URLs. However, it doesn't explicitly contrast with the sibling beyond implicit differentiation.
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 provides clear context for when to use this tool ('ideal for general queries, news, articles, and online content' and 'for broad information gathering, recent events, or when you need diverse web sources'). It gives positive guidance but doesn't explicitly state when NOT to use it or mention the sibling tool as an alternative for specific cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_url_readB
Read the content from an URL. Use this for further information retrieving to understand the content of each URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions reading content but fails to disclose critical traits like whether it handles authentication, rate limits, error conditions (e.g., invalid URLs), content types (e.g., HTML, text), or any side effects. This leaves significant gaps in understanding the tool's behavior.
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 concise with two sentences that directly state the tool's function and usage, with no wasted words. However, it could be slightly more front-loaded by leading with the core purpose more explicitly, but overall it's efficient and well-structured.
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?
Given the tool's complexity (a web content reader with no annotations and no output schema), the description is incomplete. It doesn't explain what the tool returns (e.g., raw HTML, parsed text), error handling, or limitations, which are crucial for an AI agent to use it correctly. The lack of output schema exacerbates this gap, making the description insufficient for full contextual understanding.
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?
The input schema has 100% description coverage, with the 'url' parameter documented as 'URL'. The description adds no additional meaning beyond this, such as format requirements (e.g., must include http://) or examples. Given the high schema coverage, the baseline score of 3 is appropriate, as the schema does the heavy lifting without extra value from the description.
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 the tool's purpose with a specific verb ('Read') and resource ('content from an URL'), making it understandable. However, it doesn't explicitly distinguish this from its sibling tool 'searxng_web_search', which appears to be a search tool rather than a direct URL content reader, so it misses full sibling differentiation.
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 provides implied usage guidance by stating 'Use this for further information retrieving to understand the content of each URL,' suggesting it's for post-search content analysis. However, it lacks explicit when-to-use vs. when-not-to-use instructions or named alternatives, such as clarifying if it's for web pages only or how it differs from the sibling search tool.
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.
2 tool updates
v0.5.0- First observed
searxng_web_search - First observed
web_url_read
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: searxng_web_search performs web searches to find URLs, while web_url_read reads content from specific URLs. There is no overlap or ambiguity between searching for information and retrieving content from a known URL.
Both tools use snake_case naming, which is consistent. However, the naming patterns differ slightly: searxng_web_search includes the server prefix and specifies the action (search), while web_url_read is more generic. This minor deviation prevents a perfect score.
With only two tools, the server feels under-scoped for a web search and content retrieval domain. While the tools cover basic search and reading, there are likely missing operations such as filtering search results, handling pagination, or advanced URL processing, making the count too low for comprehensive functionality.
The tool set is severely incomplete for a web search server. It lacks essential operations like refining searches (e.g., by date, site, or type), managing search sessions, or handling errors and rate limits. Agents will face dead ends when trying to perform more complex web research tasks beyond basic search and URL reading.
Maintenance
Related MCP Connectors
Serper MCP — wraps the Serper Google Search API (serper.dev)
Docs: https://docs.keenable.ai/mcp-server Keenable is a free, remote MCP server that gives agents access to the web index. Search the web with ranked results and date/site filters, then fetch any indexed page as clean markdown. Works out of the box with no account or API key.
Web search and clean-text fetch MCP server (Tavily-powered, SSRF-guarded).
MCP server for Firecrawl — web search, scraping, and biomedical/arXiv paper search.
Related MCP Servers
- AlicenseAqualityAmaintenanceAn MCP server implementation that integrates the SearxNG API, providing web search capabilities.210,578 npm1,297MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables web search capabilities by integrating with a SearXNG instance to aggregate results from over 130 engines. It allows users to perform filtered searches across categories like news, science, and social media while supporting advanced parameters for language and time range.11MIT
- AlicenseAqualityDmaintenanceAn MCP server that integrates the SearXNG API for web search and URL content extraction with advanced features like pagination, caching, and proxy support.410,578 npm2MIT
- AlicenseNot gradedqualityFmaintenanceAn MCP server that integrates the SearXNG API to provide web search with pagination, filtering, and URL content extraction.16 npmMIT