SearXNG MCP Server
SearXNG MCP 服务器
模型上下文协议 (MCP) 服务器,使 AI 助手能够使用尊重隐私的元搜索引擎SearXNG进行网页搜索。该服务器开箱即用,无需额外部署,可自动从SearX.space中随机选择一个实例,同时还支持通过基本身份验证的私有实例。
特征
零配置设置:使用SearX.space的随机公共实例立即工作
私有实例支持:使用可选的基本身份验证连接到您自己的 SearXNG 实例
使用可自定义的参数执行网络搜索
支持多种搜索引擎
注重隐私的搜索结果
Markdown 格式的搜索结果
所有参数的合理默认值
警告 - 公共实例可能无法用于此目的并返回“请求失败,状态代码为 429”
Related MCP server: OneSearch MCP Server
安装
先决条件
Node.js(v16 或更高版本)
npm(v7 或更高版本)
访问 SearXNG 实例(自托管或公共)
从源安装
# Clone the repository
git clone https://github.com/tisDDM/searxng-mcp.git
cd searxng-mcp
# Install dependencies
npm install
# Build the project
npm run build配置
SearXNG MCP 服务器可以配置以下环境变量:
SEARXNG_URL(可选):您的 SearXNG 实例的 URL(例如https://searx.example.com)。如果不提供,将自动从SearX.space中随机选择一个公共实例,无需额外部署即可使用服务器。USE_RANDOM_INSTANCE(可选):设置为“false”以在未提供 URL 时禁用随机实例选择。默认值为“true”。SEARXNG_USERNAME(可选):连接到私有实例时用于基本身份验证的用户名SEARXNG_PASSWORD(可选):连接到私有实例时的基本身份验证密码
您可以在项目根目录中的.env文件中设置这些环境变量:
SEARXNG_URL=https://searx.example.com
SEARXNG_USERNAME=your_username
SEARXNG_PASSWORD=your_password用法
运行服务器
# If installed globally
searxngmcp
# If installed from source
node build/index.js与 Claude Desktop 集成
打开 Claude 桌面
前往“设置”>“MCP 服务器”
添加一个新的 MCP 服务器,配置如下:
{ "mcpServers": { "searxngmcp": { "command": "searxngmcp", "env": { // Optional: If not provided, a random public instance will be used "SEARXNG_URL": "https://searx.example.com", // Optional: Only needed for private instances with authentication "SEARXNG_USERNAME": "your_username", "SEARXNG_PASSWORD": "your_password" }, "disabled": false, "autoApprove": [] } } }
在 VSCode 中与 Claude 集成
打开 VSCode
前往“设置”>“扩展程序”>“Claude”>“MCP 设置”
添加一个新的 MCP 服务器,配置如下:
{ "mcpServers": { "searxngmcp": { "command": "node", "args": ["/path/to/searxng-mcp/build/index.js"], "env": { // Optional: If not provided, a random public instance will be used "SEARXNG_URL": "https://searx.example.com", // Optional: Only needed for private instances with authentication "SEARXNG_USERNAME": "your_username", "SEARXNG_PASSWORD": "your_password" }, "disabled": false, "autoApprove": [] } } }
与 Smolagents 一起使用
SearXNG MCP 可以轻松与 Smolagents(一个用于构建 AI 代理的轻量级框架)集成。这允许您创建强大的研究代理,用于搜索网络并处理结果:
from smolagents import CodeAgent, LiteLLMModel, ToolCollection
from mcp import StdioServerParameters
# Configure the SearXNG MCP server
server_parameters = StdioServerParameters(
command="node",
args=["path/to/searxng-mcp/build/index.js"],
env={
"SEARXNG_URL": "https://your-searxng-instance.com",
"SEARXNG_USERNAME": "your_username", # Optional
"SEARXNG_PASSWORD": "your_password" # Optional
}
)
# Create a tool collection from the MCP server
with ToolCollection.from_mcp(server_parameters) as tool_collection:
# Initialize your LLM model
model = LiteLLMModel(
model_id="your-model-id",
api_key="your-api-key",
temperature=0.7
)
# Create an agent with the search tools
search_agent = CodeAgent(
name="search_agent",
tools=tool_collection.tools,
model=model
)
# Run the agent with a search prompt
result = search_agent.run(
"Perform a search about: 'climate change solutions' and summarize the top 5 results."
)
print(result)可用工具
搜索
使用尊重隐私的元搜索引擎 SearXNG 进行网页搜索。返回可自定义参数的相关网页内容。
参数
范围 | 类型 | 描述 | 默认 | 必需的 |
询问 | 细绳 | 搜索查询 | - | 是的 |
语言 | 细绳 | 搜索结果的语言代码(例如“en”、“de”、“fr”) | 'en' | 不 |
时间范围 | 细绳 | 搜索结果的时间范围。选项:‘天’、‘周’、‘月’、‘年’ | 无效的 | 不 |
类别 | 字符串数组 | 搜索类别(例如“一般”、“图片”、“新闻”) | 无效的 | 不 |
发动机 | 字符串数组 | 要使用的特定搜索引擎 | 无效的 | 不 |
安全搜索 | 数字 | 安全搜索级别:0(关闭)、1(中等)、2(严格) | 1 | 不 |
页面编号 | 数字 | 结果页码。必须至少为 1 | 1 | 不 |
最大结果 | 数字 | 返回的搜索结果的最大数量。范围:1-50 | 10 | 不 |
例子
// Example request
const result = await client.callTool('searxngsearch', {
query: 'climate change solutions',
language: 'en',
time_range: 'year',
categories: ['general', 'news'],
safesearch: 1,
max_results: 5
});发展
设置
# Clone the repository
git clone https://github.com/tisDDM/searxng-mcp.git
cd searxng-mcp
# Install dependencies
npm install建造
npm run build观看模式(用于开发)
npm run watch使用 MCP Inspector 进行测试
npm run inspector执照
麻省理工学院
Available Tools
1 toolsearxngsearchC
Perform web searches using SearXNG, a privacy-respecting metasearch engine. Returns relevant web content with customizable parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| categories | No | Categories to search in (e.g., 'general', 'images', 'news'). Default: null (all categories). | |
| engines | No | Specific search engines to use. Default: null (all available engines). | |
| language | No | Language code for search results (e.g., 'en', 'de', 'fr'). Default: 'en' | en |
| max_results | No | Maximum number of search results to return. Range: 1-50. Default: 10. | |
| pageno | No | Page number for results. Must be minimum 1. Default: 1. | |
| query | Yes | Search query | |
| safesearch | No | Safe search level: 0 (off), 1 (moderate), 2 (strict). Default: 1 (moderate). | |
| time_range | No | Time range for search results. Options: 'day', 'week', 'month', 'year'. Default: null (no time restriction). |
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. It mentions 'privacy-respecting' and 'returns relevant web content,' but doesn't disclose key behavioral traits like rate limits, authentication needs, error handling, or what 'relevant' entails (e.g., ranking, source diversity). For a search tool with no annotation coverage, this is a significant gap.
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 and front-loaded, stating the core purpose in the first sentence. The second sentence adds useful context about returns and parameters without redundancy. It could be slightly more structured (e.g., bullet points), but it's efficient with zero waste.
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 moderate complexity (8 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and hints at behavior, but lacks details on output format, error cases, or operational constraints. Without annotations or output schema, more context would help the 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 description coverage is 100%, so the schema fully documents all 8 parameters. The description adds minimal value beyond the schema by mentioning 'customizable parameters' but doesn't provide additional semantics or context for parameter usage. Baseline 3 is appropriate when the 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 web searches using SearXNG, specifying it's a privacy-respecting metasearch engine. It distinguishes the tool by mentioning its privacy focus and customizable parameters, though without siblings, differentiation isn't needed. However, it could be more specific about the exact verb and resource (e.g., 'search the web' rather than 'perform web searches').
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 no guidance on when to use this tool versus alternatives, prerequisites, or contextual constraints. It mentions 'customizable parameters' but doesn't explain when specific settings are appropriate. Without siblings, this is less critical, but it still lacks usage context for the agent.
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.
1 tool update
v1.0.0- First observed
searxngsearch
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or overlap between tools. The tool's purpose is clearly defined as performing web searches using SearXNG, making it distinct by default.
Since there is only one tool, naming consistency is inherently perfect. The tool name 'searxngsearch' follows a single pattern without any deviations or mixing of conventions.
A single tool is too few for a server that appears to handle web searches, as it lacks operations for refining searches, managing results, or handling other aspects of a search engine's functionality. This feels thin and incomplete for the domain.
The tool surface is severely incomplete for a search engine server. It only provides a basic search function, with no tools for filtering results, handling pagination, accessing advanced search features, or managing search history, leading to significant gaps in coverage.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for Firecrawl — web search, scraping, and biomedical/arXiv paper search.
Free web search for AI agents. No API key required. Hosted MCP in active development.
MCP server for Google search results via SERP API
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA server that enables language models to perform web searches through SearXNG using the Model Context Protocol standard.143 npm1MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server that enables web search, scraping, crawling, and content extraction through multiple engines including SearXNG, Firecrawl, and Tavily.4338 npm143MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server that provides real-time web search capabilities to AI assistants through pluggable search providers, currently integrated with the Brave Search API.516MIT
- FlicenseCqualityCmaintenanceA Model Context Protocol server that enables LLMs to perform Google searches via the Serper API, allowing models to retrieve current information from the web.1339-