Web search through your own SearXNG instance plus crawling of pages and whole sites into deduplicated Markdown, without an API key.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add searxncrawl --env SEARXNG_PASSWORD='<SEARXNG_PASSWORD>' --env YDC_API_KEY='<YDC_API_KEY>' --env SEARXNG_URL='<SEARXNG_URL>' -- uvx searxncrawl~/.codex/config.toml
[mcp_servers.searxncrawl]
command = "uvx"
args = ["searxncrawl"]
env = { SEARXNG_PASSWORD = "<SEARXNG_PASSWORD>", YDC_API_KEY = "<YDC_API_KEY>", SEARXNG_URL = "<SEARXNG_URL>" }
# codex mcp add searxncrawl --env SEARXNG_PASSWORD='<SEARXNG_PASSWORD>' --env YDC_API_KEY='<YDC_API_KEY>' --env SEARXNG_URL='<SEARXNG_URL>' -- uvx searxncrawl~/.cursor/mcp.json
{
"mcpServers": {
"searxncrawl": {
"command": "uvx",
"args": [
"searxncrawl"
],
"env": {
"SEARXNG_PASSWORD": "<SEARXNG_PASSWORD>",
"YDC_API_KEY": "<YDC_API_KEY>",
"SEARXNG_URL": "<SEARXNG_URL>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"searxncrawl": {
"type": "stdio",
"command": "uvx",
"args": [
"searxncrawl"
],
"env": {
"SEARXNG_PASSWORD": "<SEARXNG_PASSWORD>",
"YDC_API_KEY": "<YDC_API_KEY>",
"SEARXNG_URL": "<SEARXNG_URL>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"searxncrawl": {
"command": "uvx",
"args": [
"searxncrawl"
],
"env": {
"SEARXNG_PASSWORD": "<SEARXNG_PASSWORD>",
"YDC_API_KEY": "<YDC_API_KEY>",
"SEARXNG_URL": "<SEARXNG_URL>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"searxncrawl": {
"command": "uvx",
"args": [
"searxncrawl"
],
"env": {
"SEARXNG_PASSWORD": "<SEARXNG_PASSWORD>",
"YDC_API_KEY": "<YDC_API_KEY>",
"SEARXNG_URL": "<SEARXNG_URL>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"searxncrawl": {
"command": "uvx",
"args": [
"searxncrawl"
],
"env": {
"SEARXNG_PASSWORD": "<SEARXNG_PASSWORD>",
"YDC_API_KEY": "<YDC_API_KEY>",
"SEARXNG_URL": "<SEARXNG_URL>"
}
}
}
}Environment variables
SEARXNG_PASSWORDYDC_API_KEYSEARXNG_URL
Replace the placeholders with your own credentials and keep them out of version control.