About Ihor-Sokoliuk/MCP-SearXNG
Ihor-Sokoliuk/MCP-SearXNG is an MCP server published by ihor-sokoliuk in the AI category: 基于MCP技术的SearXNG搜索引擎服务器. It has been installed 0 times through Conduid.
The repository has 501 stars and 83 forks, with the last commit 6 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.
Install
npx mcp-searxngclaude mcp add searxng -- npx -y searxng-mcpnpx -y searxng-mcpuvx mcp-server-searxngpip install mcp-server-searxngdocker run -i --rm isokoliuk/mcp-searxngThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Ihor-Sokoliuk/MCP-SearXNG
Powered by Claude · Grounded in docs
Security checks
- ·README presentNot checked yet.
- ·License declaredNot checked yet.
- ·Tests presentNot checked yet.
- ·Dependencies pinnedNot checked yet.
- ·No dynamic code executionNot checked yet.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
Releases
README
SearXNG MCP Server
An MCP server that integrates the SearXNG API, giving AI assistants web search capabilities.
Quick Start
Add to your MCP client configuration (e.g. claude_desktop_config.json):
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": ["-y", "mcp-searxng"],
"env": {
"SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
}
}
}
}
Replace YOUR_SEARXNG_INSTANCE_URL with the URL of your SearXNG instance (e.g. https://search.example.com).
Features
- Web Search: General queries, news, articles, with pagination.
- URL Content Reading: Advanced content extraction with pagination, section filtering, and heading extraction.
- Intelligent Caching: URL content is cached with TTL (Time-To-Live) to improve performance and reduce redundant requests.
- Pagination: Control which page of results to retrieve.
- Time Filtering: Filter results by time range (day, month, year).
- Language Selection: Filter results by preferred language.
- Safe Search: Control content filtering level for search results.
How It Works
mcp-searxng is a standalone MCP server — a separate Node.js process that your AI assistant connects to for web search. It queries any SearXNG instance via its HTTP JSON API.
Not a SearXNG plugin: This project cannot be installed as a native SearXNG plugin. Point it at any existing SearXNG instance by setting
SEARXNG_URL.
AI Assistant (e.g. Claude)
│ MCP protocol
▼
mcp-searxng (this project — Node.js process)
│ HTTP JSON API (SEARXNG_URL)
▼
SearXNG instance
Tools
-
searxng_web_search
- Execute web searches with pagination
- Inputs:
query(string): The search query. This string is passed to external search services.pageno(number, optional): Search page number, starts at 1 (default 1)time_range(string, optional): Filter results by time range - one of: "day", "month", "year" (default: none)language(string, optional): Language code for results (e.g., "en", "fr", "de") or "all" (default: "all")safesearch(number, optional): Safe search filter level (0: None, 1: Moderate, 2: Strict) (default: instance setting)
-
web_url_read
- Read and convert the content from a URL to markdown with advanced content extraction options
- Inputs:
url(string): The URL to fetch and processstartChar(number, optional): Starting character position for content extraction (default: 0)maxLength(number, optional): Maximum number of characters to returnsection(string, optional): Extract content under a specific heading (searches for heading text)paragraphRange(string, optional): Return specific paragraph ranges (e.g., '1-5', '3', '10-')readHeadings(boolean, optional): Return only a list of headings instead of full content
Installation
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:latest
{
"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.
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=YOUR_SEARXNG_INSTANCE_URL
# Add optional variables as needed — see CONFIGURATION.md
MCP client config:
{
"mcpServers": {
"searxng": {
"command": "docker-compose",
"args": ["run", "--rm", "mcp-searxng"]
}
}
}
By default the server uses STDIO. Set MCP_HTTP_PORT to enable HTTP mode:
{
"mcpServers": {
"searxng-http": {
"command": "mcp-searxng",
"env": {
"SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL",
"MCP_HTTP_PORT": "3000"
}
}
}
}
Endpoints: POST/GET/DELETE /mcp (MCP protocol), GET /health (health check)
Test it:
MCP_HTTP_PORT=3000 SEARXNG_URL=http://localhost:8080 mcp-searxng
curl http://localhost:3000/health
Configuration
Set SEARXNG_URL to your SearXNG instance URL. All other variables are optional.
Full environment variable reference: CONFIGURATION.md
Troubleshooting
403 Forbidden from SearXNG
Your SearXNG instance likely has JSON format disabled. Edit settings.yml (usually /etc/searxng/settings.yml):
search:
formats:
- html
- json
Restart SearXNG (docker restart searxng) then verify:
curl 'http://localhost:8080/search?q=test&format=json'
You should receive a JSON response. If not, confirm the file is correctly mounted and YAML indentation is valid.
See also: SearXNG settings docs · discussion
Contributing
See CONTRIBUTING.md
License
MIT — see LICENSE for details.
README mirrored from the source repository 19 days ago. The original is authoritative.
