SearXNG

Um Servidor de Protocolo de Contexto de Modelo para SearXNG

Documentação

🔍 Servidor MCP SearXNG

Busca na web que respeita a privacidade para assistentes de IA — use uma instância SearXNG controlada pelo operador ou confiável com Claude, Cursor e outros.

GitHub Stars npm version npm downloads Docker Pulls License: MIT OpenSSF Scorecard OpenSSF Best Practices mcp-searxng MCP server GitHub MCP Registry

Um servidor MCP que integra a API do SearXNG, dando aos assistentes de IA capacidades de busca na web.

✨ Apresentado no Registro MCP do GitHub.

Início Rápido

Você precisa de uma instância SearXNG existente com busca JSON habilitada. Este projeto conecta um cliente MCP ao SearXNG; ele não instala o SearXNG. Use uma instância que você opera ou confia. Comece com o guia de auto-hospedagem ou de instância pública, se necessário.

Escolha como conectar:

Sua configuraçãoComece aqui
O cliente inicia o servidor localmenteInstale o Node.js 22 ou posterior e use o exemplo NPX abaixo ou a receita do seu cliente.
O cliente inicia um contêiner DockerUse a receita Docker/STDIO em Instalação.
Você tem um serviço HTTP em execução independenteUse a receita HTTP do seu cliente com a URL completa /mcp.
Você precisa operar um serviço HTTPSiga o guia do servidor HTTP.

Para clientes que usam JSON mcpServers (como Claude Desktop), adicione:

{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": ["-y", "mcp-searxng"],
      "env": { "SEARXNG_URL": "https://search.example.com" }
    }
  }
}

Substitua a URL de exemplo pela URL base do seu SearXNG. Outros clientes usam formatos de configuração diferentes: escolha a receita do seu cliente. Deixe MCP_HTTP_PORT não definido para STDIO local. O Docker também precisa de encaminhamento de variáveis de ambiente para o contêiner.

Recarregue o cliente, inspecione o inventário de ferramentas MCP e peça para buscar a documentação do SearXNG. Uma chamada de ferramenta simples é searxng_web_search com {"query":"SearXNG"}. A descoberta sozinha não testa a conectividade com o SearXNG. Se a chamada falhar, comece com solução de problemas.

Recursos

  • Busca com paginação, filtros, respostas diretas e saída de texto/JSON completa ou compacta.
  • Leia HTML, texto estruturado e texto PDF limitado; inspecione cabeçalhos ou seções selecionadas.
  • Descubra as capacidades da instância e obtenha sugestões de consulta.
  • Failover/fan-out de réplica opcional, fallback de HTML, cache, proxies e solucionadores de navegador.
  • STDIO local ou HTTP Streamable, com bearer estático e proteção OAuth opcional.

Consulte o guia de ferramentas para capacidades e limites, a referência de configuração para configurações e as medições históricas de implantação para evidências limitadas de planejamento de recursos.

Por que mcp-searxng?

Comparação de capacidades registrada em 2026-07-29

A partir de 2026-07-29, a comparação de capacidades abaixo reflete os projetos oficiais Brave MCP, Exa MCP e Firecrawl MCP. “Paginação” significa um controle de página ou deslocamento exposto. “Auto-hospedado” significa que o serviço de busca pode ser executado sob seu controle. “Gratuito / Sem chave de API” significa que este servidor MCP não exige uma chave de API paga de fornecedor de busca; você ainda opera ou seleciona a instância SearXNG subjacente.

Brave MCPExa MCPFirecrawl MCPmcp-searxng
Busca na Web✓✓✓✓
Ler URL✗✓✓✓
Paginação✓✗✓✓
Auto-hospedado✗✗Parcial✓
Gratuito / Sem chave de API✗✗✗✓

A privacidade depende da implantação do SearXNG. Uma instância controlada pelo operador pode evitar confiar em um operador de busca terceirizado, enquanto uma instância pública recebe a consulta e pode registrá-la. O SearXNG e esta integração MCP não fornecem anonimato por si só.

Como Funciona

MCP client → mcp-searxng → SearXNG → search engines

O cliente inicia seu próprio processo STDIO ou se conecta a um serviço HTTP. SEARXNG_URL identifica o serviço SearXNG, não o endpoint MCP. A leitura de URL busca o site selecionado diretamente. Uma lista de réplicas separada por ponto e vírgula é suportada para implantações SearXNG intercambiáveis; consulte a configuração de réplicas.

STDIO é o padrão. As sessões HTTP Streamable legadas são stateful por padrão: os clientes devem enviar DELETE /mcp quando terminarem e reinicializar se uma solicitação posterior receber HTTP 404 para a sessão encerrada. Solicitações HTTP modernas e o modo legado MCP_HTTP_STATELESS=true são sem sessão; consulte a configuração de transporte HTTP.

Ferramentas

FerramentaUse para
searxng_web_searchEncontrar fontes e refinar resultados
searxng_search_suggestionsCompletar ou refinar uma consulta
searxng_instance_infoInspecionar categorias, mecanismos e padrões
web_url_readLer uma URL conhecida como texto/Markdown

O guia de ferramentas contém exemplos e a referência completa de parâmetros. O fluxo de trabalho de pesquisa opcional explica como inspecionar fontes e citar evidências.

Instalação

Para instalações NPX e npm, o Node.js 22 ou posterior é necessário. A imagem Docker inclui seu runtime Node.js.

NPM (instalação global)
npm install -g mcp-searxng
{
  "mcpServers": {
    "searxng": {
      "command": "mcp-searxng",
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}
Docker

Imagem pré-construída:

docker pull isokoliuk/mcp-searxng:latest

As assinaturas de imagem podem ser verificadas com Cosign — consulte SECURITY.md para instruções.

{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "SEARXNG_URL",
        "isokoliuk/mcp-searxng:latest"
      ],
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

Para passar variáveis de ambiente adicionais, adicione -e VAR_NAME a args e a variável a env. Para integração com solucionador de navegador, passe FLARESOLVERR_URL, BYPARR_URL ou ambos e torne os serviços configurados acessíveis a partir deste contêiner. O modo duplo tem uma ordem fixa FlareSolverr-primeiro e sem failover reverso automático. HTML renderizado seguro e conteúdo PDF explícito do Byparr são lidos diretamente; conteúdo ambíguo usa replay protegido, com failover limitado para falhas de leitura elegíveis. Consulte Controles do Leitor de URL para o comportamento completo e exemplo do Docker Compose.

Compilar localmente:

docker build -t mcp-searxng:latest -f Dockerfile .

Use a mesma configuração acima, substituindo isokoliuk/mcp-searxng:latest por mcp-searxng:latest.

Docker Compose

docker-compose.yml:

services:
  mcp-searxng:
    image: isokoliuk/mcp-searxng:latest
    stdin_open: true
    environment:
      - SEARXNG_URL=${SEARXNG_URL:?Set SEARXNG_URL in the environment}
      # Add optional variables as needed — see CONFIGURATION.md

O arquivo Compose rastreado é intencionalmente apenas STDIO e não publica portas de rede; os clientes MCP o iniciam com um caminho absoluto do arquivo Compose e docker compose run --rm -T, não docker compose up. O sinalizador -T impede a alocação de pseudo-TTY para que o MCP JSON-RPC permaneça na entrada e saída padrão brutas. O Compose falha antes do lançamento, a menos que o cliente MCP forneça SEARXNG_URL.

Configuração do cliente MCP:

{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": [
        "compose",
        "-f", "/absolute/path/to/docker-compose.yml",
        "run", "--rm", "-T", "mcp-searxng"
      ],
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

Se você usou anteriormente o arquivo rastreado como um serviço HTTP na porta 8080, coloque as configurações HTTP em um docker-compose.override.yml não rastreado:

services:
  mcp-searxng:
    ports:
      - "127.0.0.1:8080:8080"
    environment:
      - MCP_HTTP_PORT=8080
      - MCP_HTTP_HOST=0.0.0.0

Aqui 0.0.0.0 é o endereço de bind do lado do contêiner; a porta do lado do host permanece apenas loopback. Esta substituição não tem autenticação e é apenas um caminho temporário de migração de host único. Antes de adicionar contêineres co-localizados ou expor o serviço além da máquina local, siga as orientações de implantação endurecidas.

Transporte HTTP

Execute HTTP independentemente e conecte o cliente. Consulte o guia do servidor HTTP para verificações locais, autenticação bearer estática, requisitos de OAuth e verificação de implantação.

Configuração

Para a configuração local padrão, SEARXNG_URL é a configuração necessária. Modos opcionais, como HTTP endurecido e OAuth, têm requisitos complementares. Use a referência de configuração para variáveis de ambiente, padrões, cache, tempos limite, proxies, TLS e limites.

OAuth MCP opcional

Uma implantação HTTP pode usar OAuth com um provedor de autorização externo. Consulte opções de autenticação. A autenticação bearer estática e a Autenticação Básica do SearXNG protegem conexões diferentes.

Solução de Problemas

SintomaPróxima verificação
Servidor ausente ou desconectadoInicialização do cliente/processo
Erro de autenticação HTTP, sessão ou proxyConexão HTTP
Ferramentas aparecem, mas a busca falhaConexão SearXNG
Resultados vazios, ruins ou desatualizadosFiltros, metadados upstream e cache
Falha ou tempo limite de URL/PDFLeitura de URL

403 Proibido do SearXNG

A saída JSON pode estar desabilitada, ou uma camada de controle de acesso pode ter negado a solicitação. Siga as verificações diretas antes de alterar as configurações. Uma página de navegador funcional não prova que a API JSON funciona.

Não consegue habilitar JSON? (fallback de HTML)

SEARXNG_HTML_FALLBACK=true pode tentar novamente respostas de busca 403/404/não-JSON como HTML. A análise é de melhor esforço e os metadados são limitados; a saída compacta omite marcadores de fallback. Leia as orientações de instância pública antes de habilitá-lo em um serviço que você não controla.

Para um relatório de bug, colete uma reprodução mínima e erros relevantes.

Documentação

Configure a busca para cobertura útil com configurações upstream testadas, rotas de mecanismos especializados e controles de saída MCP. A receita de implantação inclui uma pilha Compose privada e provedores de navegador opcionais, com resultados datados e falhas conhecidas.

Encontre um guia por tarefa. Esses links abrem a documentação atual do branch principal. Comportamento não lançado é rotulado; consulte a tag Git correspondente ao investigar uma versão mais antiga.

Contribuindo

Consulte CONTRIBUTING.md.

Licença

MIT — consulte LICENSE para detalhes.