SearXNG MCP Server
A Model Context Protocol (MCP) server that provides web search capabilities using SearXNG.
Features
- 🔍 Web search using your SearXNG instance
- 🎯 Category filtering (general, news, images, videos, science, etc.)
- 🌍 Multi-language support
- ⏰ Time range filtering
- 🛡️ Safe search options
- 📊 Formatted results with titles, URLs, snippets, and metadata
Quick Start
Prerequisites
- Node.js 18 or higher
- A running SearXNG instance
- ngrok (for public sharing)
Installation
npm install
Configuration
The server uses the SearXNG instance at http://192.168.1.44:55001 by default. You can override this with the SEARXNG_URL environment variable:
export SEARXNG_URL=http://your-searxng-instance:port
Running Locally
npm start
Sharing Publicly with ngrok
-
Install ngrok if you haven't already:
npm install -g ngrok -
Start the MCP server:
npm start -
In another terminal, expose it via ngrok:
ngrok http 3000 -
Use the ngrok URL in your MCP client configuration
Usage in LM Studio
For Local Use
Add this to your LM Studio MCP settings:
{
"mcpServers": {
"searxng": {
"command": "node",
"args": ["C:\\Users\\claym\\Desktop\\public mcp\\index.js"],
"env": {
"SEARXNG_URL": "http://192.168.1.44:55001"
}
}
}
}
For Public/Shared Use (via ngrok)
When sharing with others, they can use this configuration:
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": ["-y", "searxng-mcp-server@latest"]
}
}
}
Note: For the npx version to work, you'll need to publish this to npm first.
Available Tools
web_search
Search the web using SearXNG.
Parameters:
query(required): The search querycategories(optional): Search categories - "general", "news", "images", "videos", "science", etc. Default: "general"language(optional): Language code like "en", "es", "fr". Default: "en"time_range(optional): Filter by time - "day", "week", "month", "year". Default: all timesafesearch(optional): Safe search level - 0 (off), 1 (moderate), 2 (strict). Default: 0
Example:
Search for "latest AI news" in the news category from the past week
Development
Project Structure
.
├── index.js # Main MCP server implementation
├── package.json # Dependencies and scripts
└── README.md # This file
Testing
You can test the server using any MCP-compatible client like:
- LM Studio
- Claude Desktop
- Other MCP clients
Troubleshooting
Connection Issues
If you can't connect to SearXNG:
- Verify your SearXNG instance is running:
curl http://192.168.1.44:55001 - Check firewall settings
- Ensure the URL is correct in the configuration
No Results
If searches return no results:
- Test the same query directly in SearXNG web interface
- Try different categories or remove filters
- Check SearXNG logs for errors
License
MIT