SearXNG HTTP MCP

Servidor MCP SearXNG autocontido em Docker com mais de 200 mecanismos de busca, transporte duplo (HTTP + stdio), autenticação por chave de API e interface web integrada.

Documentação

Um servidor MCP autocontido que encapsula SearXNG — um mecanismo de metabusca gratuito e que respeita a privacidade, agregando resultados de mais de 200 mecanismos de busca.


🚀 Início Rápido

Modo servidor — implante uma vez, conecte-se de qualquer cliente:

docker run -d --name searxng-mcp --restart unless-stopped \
  -p YOUR_PORT:8888 --memory=512m --cpus=1 \
  ghcr.io/whw23/searxng-http-mcp:latest

Em seguida, conecte seu cliente ao http://YOUR_HOST:YOUR_PORT/mcp/. Para habilitar a autenticação por chave de API, consulte Autenticação.

Modo local — sem necessidade de servidor, execute diretamente no seu cliente:

docker run --rm -i --memory=512m --cpus=1 ghcr.io/whw23/searxng-http-mcp:latest --stdio

Adicione isso como um servidor MCP stdio no seu cliente — consulte Configuração do Cliente para detalhes.

Modo uvx — se você já tem o SearXNG em execução (guia de instalação):

uvx searxng-http-mcp

Defina SEARXNG_URL para apontar para sua instância do SearXNG (padrão: http://127.0.0.1:8080).

✨ Recursos

Busca

  • 🔍 Mais de 200 mecanismos de busca — Google, Bing, DuckDuckGo, Brave e outros via SearXNG
  • 📂 Mais de 30 categorias — notícias, imagens, vídeos, ciência, TI e mais
  • 📄 Fan-out multi-página — até 5 páginas por chamada
  • 💡 Sugestões de autocompletar — descubra termos de busca relevantes
  • 🗂 Descoberta de mecanismos — consulte mecanismos disponíveis agrupados por categoria
  • 🎯 Eficiente em tokens — resultados reduzidos ao essencial

Infraestrutura

  • 📦 Autocontido — SearXNG embutido na imagem Docker
  • 🔄 Transporte triplo — servidor HTTP, Docker stdio e uvx autônomo
  • 🔐 Autenticação — x-api-key + HTTP Basic Auth
  • 🌐 Proxy reverso — interface web do SearXNG na mesma porta
  • ⚡ Descrições dinâmicas de ferramentas — listas de categorias ao vivo injetadas na inicialização
  • 📐 JSON Schema rico — restrições de enum, limites de intervalo e descrições em cada parâmetro

🏛 Arquitetura

graph LR
  Client(["client:YOUR_PORT"]) --> Expose(":8888")

  subgraph Container["🐳 Docker Container"]
    direction LR
    Expose --> Auth{Auth}
    Auth -->|/mcp| MCP[FastMCP Server]
    Auth -->|/*| Proxy[Reverse Proxy]
    MCP --> SearXNG[SearXNG :8080]
    Proxy --> SearXNG
  end

  style Expose fill:none,stroke:#2496ed,stroke-dasharray:5 5,color:#2496ed

  style Client fill:#4a90d9,color:#fff,stroke:#3a7bc8
  style Container fill:#f0f4f8,stroke:#2496ed,stroke-width:2px,color:#2496ed
  style Auth fill:#f5a623,color:#fff,stroke:#d4900e
  style MCP fill:#50c878,color:#fff,stroke:#3da85e
  style Proxy fill:#9b59b6,color:#fff,stroke:#8344a5
  style SearXNG fill:#e74c3c,color:#fff,stroke:#c0392b

📊 Comparação com Alternativas

Por que estes cinco?

Existem mais de 20 servidores MCP SearXNG e muitos outros MCPs de busca de propósito geral. A maioria dos wrappers do SearXNG expõe apenas uma ferramenta de busca básica, deixando as categorias, o autocompletar e os metadados de mecanismos do SearXNG sem uso. Escolhemos cinco alternativas que representam cada uma uma categoria distinta:

  • 88plug/searxng-mcp — a superfície de ferramentas mais rica entre os MCPs do SearXNG (7 ferramentas: fetch renderizado, modo de pesquisa, consultas paralelas)
  • ihor/mcp-searxng — mais estrelas no GitHub entre os MCPs do SearXNG
  • open-webSearch — a principal alternativa gratuita multi-mecanismo fora do ecossistema SearXNG (Bing, Baidu, DuckDuckGo, Brave, etc.)
  • exa-mcp-server — o MCP de API de busca comercial mais popular
  • Perplexity MCP — busca comercial com IA, maior contagem de estrelas no espaço de MCPs de busca
Recurso✨ Este projeto88plug/searxng-mcpihor/mcp-searxngopen-webSearchexa-mcp-serverPerplexity MCP
Busca
Mais de 200 mecanismos via SearXNG
Mais de 30 categorias de busca
Fan-out multi-página
Sugestões de autocompletar
Ferramenta de descoberta de mecanismos
Descrições dinâmicas de ferramentas
Infraestrutura
Autocontido (busca integrada)N/AN/A
Implantação Docker sem instalação
Transporte HTTP + stdio
Autenticação
Proxy reverso da interface web
Plugin de Agente de Codificação com IA
Geral
Gratuito e de código aberto❌ (API paga)❌ (API paga)
Privacidade (auto-hospedado)
LinguagemPythonPythonNode.jsTypeScriptTypeScriptTypeScript
Estrelas no GitHubstarsstarsstarsstarsstarsstars
Por que menos ferramentas?

O MCP é projetado para composição — os clientes conectam vários servidores especializados, cada um fazendo bem uma coisa. Algumas alternativas agrupam busca de URLs, extração de páginas renderizadas, fan-out multi-consulta ou modos de pesquisa no servidor de busca. Mantemos a superfície de ferramentas em três (busca, autocompletar, descoberta de mecanismos) por design:

  • Busca de URLs é uma preocupação separada. Os clientes MCP já fornecem ferramentas dedicadas (WebFetch, Playwright MCP, Jina Reader). Agrupar fetch em um servidor de busca mistura responsabilidades e duplica o ecossistema do cliente.
  • Busca paralela multi-consulta é orquestração do lado do cliente. Clientes LLM podem disparar várias chamadas search em paralelo — uma ferramenta search_many apenas adiciona sobrecarga de tokens para seleção de ferramentas sem benefício real.
  • Pesquisa / síntese pertence à camada LLM. O modelo é o melhor sintetizador. Empurrar lógica de pesquisa em várias etapas para o servidor MCP acopla preocupações de aplicação à infraestrutura.

Em vez disso, investimos no que as alternativas acima não têm: cobertura completa da API do SearXNG (categorias, autocompletar, metadados de mecanismos — capacidades que a maioria dos wrappers deixa de lado), implantação autocontida, autenticação, proxy reverso da interface web e integração com plugin de agente de codificação com IA (Claude Code / Copilot CLI / Codex CLI).

📖 Uso

🌐 Modo HTTP (padrão)

# Without authentication
docker run -d --name searxng-mcp --restart unless-stopped \
  -p YOUR_PORT:8888 --memory=512m --cpus=1 \
  ghcr.io/whw23/searxng-http-mcp:latest

# With authentication
docker run -d --name searxng-mcp --restart unless-stopped \
  -p YOUR_PORT:8888 --memory=512m --cpus=1 \
  -e API_KEY=your-secret-key \
  ghcr.io/whw23/searxng-http-mcp:latest
🔗 Endpoint MCPhttp://YOUR_HOST:YOUR_PORT/mcp/
🖥 Interface Web do SearXNGhttp://YOUR_HOST:YOUR_PORT/

📡 Modo stdio

docker run --rm -i --memory=512m --cpus=1 \
  ghcr.io/whw23/searxng-http-mcp:latest --stdio

Nenhuma porta exposta. Comunicação via stdin/stdout. O SearXNG é executado internamente para as ferramentas MCP.

🐍 Modo uvx

# Connect to a local SearXNG instance (default: http://127.0.0.1:8080)
uvx searxng-http-mcp

# Connect to a remote SearXNG instance
SEARXNG_URL=http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT uvx searxng-http-mcp

Requer Python 3.14+ e uma instância SearXNG existente. Não é necessário Docker.

⚙️ Variáveis de Ambiente

VariávelPadrãoDescrição
API_KEY(vazio, sem autenticação)Chave de API para autenticação
SEARXNG_URLhttp://127.0.0.1:8080SearXNG URL da instância (para modo uvx/standalone)

🔐 Autenticação

Quando API_KEY estiver definido, todas as solicitações exigem uma das seguintes opções:

  • Cabeçalho x-api-key — para clientes MCP: x-api-key: your-key
  • Autenticação Básica HTTP — para navegadores

[!TIP] Login no Navegador: Ao acessar a Interface Web com API_KEY habilitado, o navegador exibirá uma caixa de diálogo de login. Deixe o nome de usuário vazio e insira sua chave de API como senha.

Browser Login Dialog

Quando API_KEY não estiver definido, todas as solicitações ficam abertas.


🔧 Referência das Ferramentas MCP

🔍 search — Pesquise na web usando o SearXNG

Agrega resultados de mais de 200 mecanismos de busca com privacidade.

ParâmetroTipoObrigatórioPadrãoDescrição
querystringsimA consulta de pesquisa a ser usada
categoriesstringnão""Nomes de categorias separados por vírgula (ex.: general,news,science)
enginesstringnão""Nomes de mecanismos separados por vírgula (ex.: google,arxiv,wikipedia)
languagestringnão""Código do idioma de pesquisa (ex.: en, zh, ja)
time_rangeenumnãonullday, week, month, year
safesearchenumnão00=desativado, 1=moderado, 2=estrito
pagenoint ≥1não1Número da página inicial
pagesint 1–5não1Número de páginas a buscar em paralelo
max_resultsint 1–100não10Número máximo de resultados a retornar
formatenumnãocompactcompact (título/url/conteúdo) ou full (+ mecanismos/pontuação/categoria/data)

Retorna: resultados, respostas, sugestões, correções, infoboxes.

💡 autocomplete — Obter sugestões de consulta de pesquisa
ParâmetroTipoObrigatórioDescrição
querystringsimConsulta parcial para obter sugestões
🗂 engine_info — Descobrir mecanismos e categorias disponíveis

Sem parâmetros. Retorna a lista de mecanismos habilitados agrupados por categoria.

Retorna:

{
  "categories": ["general", "images", "videos", "news", ...],
  "engines": ["google", "bing", "duckduckgo", ...],
  "category_engines": {
    "general": ["google", "bing", "duckduckgo", "brave", ...],
    "science": ["arxiv", "google scholar", "pubmed", ...],
    ...
  }
}

Use isto para descobrir quais mecanismos estão disponíveis antes de chamar search com filtros específicos de engines ou categories.


🔌 Configuração do Cliente

O exemplo a seguir é uma base de modo servidor (HTTP remoto) usando a estrutura JSON padrão mcpServers. Muitos clientes aceitam essa estrutura, mas os nomes dos campos e os valores obrigatórios de type diferem — veja a NOTA abaixo e ajuste para o seu cliente:

{
  "mcpServers": {
    "searxng": {
      "type": "http",
      "url": "http://YOUR_HOST:YOUR_PORT/mcp/",
      "headers": {
        "x-api-key": "your-secret-key"
      }
    }
  }
}

[!NOTE] Diferenças nos nomes dos campos: ZCode usa mcp.servers; Kilo Code usa uma chave de nível superior mcp com "type": "remote"; Windsurf usa serverUrl em vez de url; VS Code Copilot usa uma chave de nível superior servers; OpenCode aninha sob mcp com "type": "remote"; Codex e Hermes usam mcp_servers (TOML/YAML). Para Claude Code, "type": "http" é obrigatório — sem ele, a entrada é lida como um servidor stdio e ignorada. Para Cline, defina "type": "streamableHttp" em servidores HTTP remotos.

Claude Claude Desktop

Modo servidor — edite ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "searxng": {
      "url": "http://YOUR_HOST:YOUR_PORT/mcp/",
      "headers": {
        "x-api-key": "your-secret-key"
      }
    }
  }
}

Modo local:

{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
    }
  }
}

Modo uvx:

{
  "mcpServers": {
    "searxng": {
      "command": "uvx",
      "args": ["searxng-http-mcp"],
      "env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
    }
  }
}
Claude Claude Code

Modo servidor (CLI):

claude mcp add --transport http searxng http://YOUR_HOST:YOUR_PORT/mcp/ \
  --header "x-api-key: your-secret-key"

Modo servidor (JSON) — a mesma estrutura mcpServers funciona em um projeto compartilhado em equipe .mcp.json ou em um global para todo o usuário ~/.claude.json:

{
  "mcpServers": {
    "searxng": {
      "type": "http",
      "url": "http://YOUR_HOST:YOUR_PORT/mcp/",
      "headers": {
        "x-api-key": "your-secret-key"
      }
    }
  }
}

Modo local:

claude mcp add --transport stdio searxng -- docker run --rm -i --memory=512m --cpus=1 ghcr.io/whw23/searxng-http-mcp:latest --stdio

Modo uvx:

claude mcp add --transport stdio searxng -- uvx searxng-http-mcp
Codex Codex

Modo servidor — adicione a ~/.codex/config.toml:

[mcp_servers.searxng]
url = "http://YOUR_HOST:YOUR_PORT/mcp/"
http_headers = { "x-api-key" = "your-secret-key" }

Modo local:

[mcp_servers.searxng]
command = "docker"
args = ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]

Modo uvx:

[mcp_servers.searxng]
command = "uvx"
args = ["searxng-http-mcp"]
Cursor Cursor

Modo servidor — edite .cursor/mcp.json:

{
  "mcpServers": {
    "searxng": {
      "url": "http://YOUR_HOST:YOUR_PORT/mcp/",
      "headers": {
        "x-api-key": "your-secret-key"
      }
    }
  }
}

Modo local:

{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
    }
  }
}

Modo uvx:

{
  "mcpServers": {
    "searxng": {
      "command": "uvx",
      "args": ["searxng-http-mcp"],
      "env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
    }
  }
}
Copilot VS Code Copilot

Modo servidor — adicione a .vscode/mcp.json:

{
  "servers": {
    "searxng": {
      "type": "http",
      "url": "http://YOUR_HOST:YOUR_PORT/mcp/",
      "headers": {
        "x-api-key": "your-secret-key"
      }
    }
  }
}

Modo local:

{
  "servers": {
    "searxng": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
    }
  }
}

Modo uvx:

{
  "servers": {
    "searxng": {
      "type": "stdio",
      "command": "uvx",
      "args": ["searxng-http-mcp"],
      "env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
    }
  }
}
Windsurf Windsurf

Modo servidor — adicione a ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "searxng": {
      "serverUrl": "http://YOUR_HOST:YOUR_PORT/mcp/",
      "headers": {
        "x-api-key": "your-secret-key"
      }
    }
  }
}

Modo local:

{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
    }
  }
}

Modo uvx:

{
  "mcpServers": {
    "searxng": {
      "command": "uvx",
      "args": ["searxng-http-mcp"],
      "env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
    }
  }
}
Cline Cline

Configure pelo painel de configurações MCP do Cline no VS Code (Cline > MCP Servers > Add).

Modo servidor:

{
  "mcpServers": {
    "searxng": {
      "type": "streamableHttp",
      "url": "http://YOUR_HOST:YOUR_PORT/mcp/",
      "headers": {
        "x-api-key": "your-secret-key"
      }
    }
  }
}

Modo local:

{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
    }
  }
}

Modo uvx:

{
  "mcpServers": {
    "searxng": {
      "command": "uvx",
      "args": ["searxng-http-mcp"],
      "env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
    }
  }
}
OpenCode OpenCode

Modo servidor — edite opencode.json:

{
  "mcp": {
    "searxng": {
      "type": "remote",
      "url": "http://YOUR_HOST:YOUR_PORT/mcp/",
      "headers": {
        "x-api-key": "your-secret-key"
      }
    }
  }
}

Modo local:

{
  "mcp": {
    "searxng": {
      "type": "local",
      "command": ["docker", "run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
    }
  }
}

Modo uvx:

{
  "mcp": {
    "searxng": {
      "type": "local",
      "command": ["uvx", "searxng-http-mcp"]
    }
  }
}
Hermes Hermes Agent

Modo servidor — edite ~/.hermes/config.yaml:

mcp_servers:
  searxng:
    url: "http://YOUR_HOST:YOUR_PORT/mcp/"
    headers:
      x-api-key: "your-secret-key"

Modo local:

mcp_servers:
  searxng:
    command: "docker"
    args: ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]

Modo uvx:

mcp_servers:
  searxng:
    command: "uvx"
    args: ["searxng-http-mcp"]
🟦 ZCode (Zhipu AI · GLM)

Modo servidor — edite ~/.zcode/cli/config.json (global) ou .zcode/config.json (projeto):

{
  "mcp": {
    "servers": {
      "searxng": {
        "type": "http",
        "url": "http://YOUR_HOST:YOUR_PORT/mcp/",
        "headers": {
          "x-api-key": "your-secret-key"
        }
      }
    }
  }
}

Modo local:

{
  "mcp": {
    "servers": {
      "searxng": {
        "command": "docker",
        "args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
      }
    }
  }
}

Modo uvx:

{
  "mcp": {
    "servers": {
      "searxng": {
        "command": "uvx",
        "args": ["searxng-http-mcp"],
        "env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
      }
    }
  }
}

O ZCode também aceita a estrutura padrão mcpServers (ex.: em .agents/mcp.json). Alternativamente, adicione servidores via Settings → MCP Servers → New MCP Server.

Kilo Code

Modo servidor — edite ~/.config/kilo/kilo.jsonc (global) ou .kilo/kilo.jsonc (projeto):

{
  "mcp": {
    "searxng": {
      "type": "remote",
      "url": "http://YOUR_HOST:YOUR_PORT/mcp/",
      "headers": {
        "x-api-key": "your-secret-key"
      },
      "enabled": true
    }
  }
}

Modo local:

{
  "mcp": {
    "searxng": {
      "type": "local",
      "command": ["docker", "run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"],
      "enabled": true
    }
  }
}

Modo uvx:

{
  "mcp": {
    "searxng": {
      "type": "local",
      "command": ["uvx", "searxng-http-mcp"],
      "environment": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" },
      "enabled": true
    }
  }
}
🥧 Pi

Instale o adaptador MCP uma vez e adicione um bloco padrão mcpServers — ex.: em ~/.pi/agent/mcp.json (todos os projetos) ou .pi/mcp.json (projeto):

pi install npm:pi-mcp-adapter

Reinicie o Pi após a instalação.

Modo servidor:

{
  "mcpServers": {
    "searxng": {
      "url": "http://YOUR_HOST:YOUR_PORT/mcp/",
      "headers": {
        "x-api-key": "your-secret-key"
      }
    }
  }
}

Modo local:

{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
    }
  }
}

Modo uvx:

{
  "mcpServers": {
    "searxng": {
      "command": "uvx",
      "args": ["searxng-http-mcp"],
      "env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
    }
  }
}

🧩 Plugin de Agente de Codificação com IA

Compatível com Claude Code, GitHub Copilot CLI e OpenAI Codex CLI. Adicione o marketplace e instale o plugin que se adequa à sua configuração:

/plugin marketplace add whw23/searxng_http_mcp

Todos os plugins incluem:

  • 🔍 Habilidade /web-search-via-searxng — pesquisa na web com guia de seleção de categoria e regras de uso
  • 🤖 Agente web-searcher — subagente de pesquisa com:
    • 🌐 Pesquisa paralela em vários idiomas — detecta automaticamente o idioma da consulta, pesquisa em vários idiomas para maior cobertura
    • 🛡 Níveis de credibilidade de fontes — classificação Nível 1/2/3 com defesa contra envenenamento de IA
    • ✅ Validação cruzada — fatos-chave exigem 2+ fontes independentes
    • 🔍 Leitura aprofundada via WebFetch — lê páginas completas de fontes confiáveis, não apenas trechos
    • 🔄 Pesquisa iterativa em múltiplas rodadas — até 3 rodadas com aprofundamento automático em lacunas
    • ⏱ Avaliação de atualidade — sinaliza conteúdo desatualizado, informa intervalos de datas das fontes
    • 📝 Referências em estilo de nota de rodapé — saída estruturada com citações de fontes inline
🐍 Modo autônomo — uvx, sem Docker, traga seu próprio SearXNG
/plugin install searxng-http-mcp-standalone@searxng-http-mcp

Executa via uvx. Requer Python 3.14+ e uma instância SearXNG existente. Defina SEARXNG_URL em ~/.claude/settings.json:

{
  "env": {
    "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT"
  }
}
🐳 Modo local — Docker stdio, zero configuração
/plugin install searxng-http-mcp@searxng-http-mcp

Executa o SearXNG em um contêiner Docker local via stdio. Requer Docker instalado.

🌐 Modo remoto — conecta-se a um servidor implantado via HTTP
/plugin install searxng-http-mcp-remote@searxng-http-mcp

Conecta-se a um servidor MCP SearXNG implantado. Requer as variáveis de ambiente SEARXNG_MCP_URL e SEARXNG_API_KEY.

Adicione em ~/.claude/settings.json sob o campo env:

{
  "env": {
    "SEARXNG_MCP_URL": "http://YOUR_HOST:YOUR_PORT/mcp/",
    "SEARXNG_API_KEY": "your-api-key"
  }
}

Em seguida, reinicie o Claude Code.


🛠 Configuração do SearXNG

🖥 Via interface web

Acesse a interface web do SearXNG em http://YOUR_HOST:YOUR_PORT/ para configurar mecanismos de busca, idiomas e outras configurações. As alterações persistem durante a vida útil do contêiner.

💾 Via montagem de volume — configuração persistente

Monte o diretório de configuração do SearXNG para configuração persistente:

docker run -d --name searxng-mcp --restart unless-stopped \
  -p YOUR_PORT:8888 --memory=512m --cpus=1 \
  -v /path/to/searxng-config:/etc/searxng \
  ghcr.io/whw23/searxng-http-mcp:latest

O SearXNG gera settings.yml na primeira inicialização. O contêiner ativa automaticamente a saída em formato JSON exigida pelas ferramentas MCP.


🏗 Compilar a partir do código-fonte

git clone https://github.com/whw23/searxng_http_mcp.git
cd searxng_http_mcp
docker build -t searxng-http-mcp:local .
docker run -d --name searxng-mcp --restart unless-stopped \
  -p YOUR_PORT:8888 --memory=512m --cpus=1 \
  searxng-http-mcp:local

🤝 Contribuindo

Consulte CONTRIBUTING.md para o fluxo de trabalho completo, requisitos de CI e configuração de desenvolvimento.

  1. 🍴 Faça um fork do repositório e habilite o GitHub Actions no seu fork
  2. 🌿 Crie um branch de funcionalidade a partir de dev
  3. ✍️ Faça suas alterações
  4. ✅ Execute os testes: pytest tests/ -v — o CI deve passar no seu fork antes de abrir um PR
  5. 📬 Envie um PR para dev

O desenvolvimento ocorre no branch dev. Mesclagens para main acionam builds de imagem.

📄 Licença

MIT — código do servidor MCP.

O SearXNG em si é licenciado sob AGPL-3.0-or-later.