Skip to main content
Glama
All3yp

omnisearch-mcp

by All3yp

Omnisearch MCP

Servidor Model Context Protocol (MCP) para agentes LLM pesquisarem literatura acadêmica, resolverem PDFs open-access, baixarem/lerem papers e pesquisarem bibliotecas locais de PDFs.

Fontes suportadas

  • IEEE Xplore via API oficial ou CAPES/CAFe proxy + cookies persistidos

  • arXiv

  • ACM Digital Library metadata via CrossRef

  • CrossRef

  • Semantic Scholar

  • CORE

  • Scite.ai

  • Consensus.app

  • Unpaywall para resolver PDFs open-access por DOI

  • PDF local: indexação, busca e extração de texto

Related MCP server: Academia MCP

Instalação

git clone https://github.com/all3yp/omnisearch-mcp
cd omnisearch-mcp
uv sync
uv run playwright install chromium
cp .env.example .env

Edite .env conforme necessário:

CONTACT_EMAIL=seu-email@example.com
SEMANTIC_SCHOLAR_API_KEY=
CORE_API_KEY=
IEEE_XPLORE_API_KEY=

CAFE_INSTITUTION_ID=
CAFE_USERNAME=
CAFE_PASSWORD=
SCITE_EMAIL=
SCITE_PASS=
CONSENSUS_EMAIL=
CONSENSUS_PASS=
PLAYWRIGHT_BROWSER_PATH=

Comandos para usuário humano

Rodar servidor MCP

uv run omnisearch-mcp

Login e persistência de sessão

Recomendado: rode em modo visível na primeira vez, principalmente CAPES/IEEE, para completar MFA/CAPTCHA/SSO se aparecer.

uv run omnisearch-login-all
uv run omnisearch-capes-login
uv run omnisearch-scite-login
uv run omnisearch-consensus-login

Depois que funcionar visivelmente, você pode tentar headless:

uv run omnisearch-login-all --headless
uv run omnisearch-capes-login --headless
uv run omnisearch-scite-login --headless
uv run omnisearch-consensus-login --headless

Os scripts salvam:

  • estado do navegador em .omnisearch/sessions/*.storage.json;

  • cookies derivados no .env para os adapters HTTP.

Esses arquivos contêm segredos de sessão e são ignorados pelo Git.

Testes

uv run --group dev pytest

Se o uv falhar no Git Bash/Windows por trampoline, use:

/c/Users/alley/Code/alley/python/omnisearch-mcp/.venv/Scripts/python.exe -m pytest tests/ -v --tb=short

Como configurar no Claude Code

Na raiz do projeto, adicione o MCP ao Claude Code:

claude mcp add omnisearch-mcp -- uv run omnisearch-mcp

Ou use configuração JSON equivalente:

{
  "mcpServers": {
    "omnisearch-mcp": {
      "command": "uv",
      "args": ["run", "omnisearch-mcp"],
      "cwd": "C:/Users/alley/Code/alley/python/omnisearch-mcp"
    }
  }
}

Depois reinicie/recarregue o Claude Code e use ferramentas como:

  • search_all

  • search_ieee

  • resolve_oa_url

  • download_paper

  • read_paper_content

  • index_pdf_library

  • search_pdf_library

Como configurar no Codex / OpenAI Codex CLI

Adicione o servidor MCP no arquivo de configuração do Codex com o comando abaixo:

[mcp_servers.omnisearch-mcp]
command = "uv"
args = ["run", "omnisearch-mcp"]
cwd = "C:/Users/alley/Code/alley/python/omnisearch-mcp"

Se seu cliente Codex usar JSON em vez de TOML, use:

{
  "mcpServers": {
    "omnisearch-mcp": {
      "command": "uv",
      "args": ["run", "omnisearch-mcp"],
      "cwd": "C:/Users/alley/Code/alley/python/omnisearch-mcp"
    }
  }
}

Ferramentas MCP principais

Tool

Uso

search_all(query, max_results_each=5)

Busca IEEE, arXiv, ACM, CrossRef, Semantic Scholar, CORE, Scite e Consensus em paralelo; IEEE expira em 5 s e demais fontes em 15 s. Preserva seções por fonte e retorna papers deduplicado + total.

search_ieee(query, max_results=10)

Busca IEEE por API key ou sessão CAPES/IEEE. A busca via navegador pagina os resultados até atingir max_results ou esgotar a busca.

search_arxiv(query, max_results=10)

Busca arXiv aberta com retry para rate-limit.

search_acm(query, max_results=10)

Busca ACM via CrossRef metadata.

search_crossref(query, max_results=10)

Busca CrossRef.

search_semantic_scholar(query, max_results=10)

Busca Semantic Scholar com retry para 429.

search_core(query, max_results=10)

Busca CORE; requer CORE_API_KEY.

search_scite(query, max_results=10)

Busca Scite; requer sessão/cookies.

search_consensus(query, max_results=10)

Busca Consensus; requer sessão/cookies.

get_doi_metadata(doi)

Normaliza metadata CrossRef por DOI.

resolve_oa_url(doi)

Resolve PDF open-access via Unpaywall.

download_paper(doi, title='', pdf_url=None, save_path='./downloads', use_scihub=False)

Baixa PDF por fallback: URL direta → Unpaywall → CORE → Sci-Hub opcional.

read_paper_content(...)

Baixa paper e extrai texto do PDF.

index_pdf_library(folder_path, force=False)

Indexa PDFs locais.

search_pdf_library(folder_path, query, ...)

Pesquisa texto em PDFs indexados.

read_pdf_text(path, max_chars=20000)

Extrai texto de PDF local.

Como a busca IEEE/CAPES funciona

O login CAPES abre navegador via Playwright, persiste storage_state e deriva cookies HTTP. CAPES/IEEE está atrás do Akamai (não Cloudflare), então usa Playwright puro; apenas o Consensus.app usa CloakBrowser, pois é o único provedor com exposição confirmada ao Cloudflare (cf_clearance/__cf_bm).

Antes de salvar, o script CAPES valida a sessão com uma busca real:

POST {CAPES_PROXY_URL}/rest/search

Payload mínimo:

{
  "newsearch": true,
  "queryText": "machine learning",
  "returnType": "SEARCH",
  "rowsPerPage": 1
}

Só salva se o endpoint retornar JSON compatível com IEEE. Se receber HTML/login/401/403/redirect, não salva e pede relogin humano.

Quando não há IEEE_XPLORE_API_KEY, o adapter search_ieee usa uma sessão CAPES/IEEE persistida no navegador. Ele abre diretamente a busca avançada, seleciona até 50 itens por página e avança pelas páginas até atingir max_results ou esgotar os resultados da IEEE.

Skill para agentes consumidores

Agentes que usam este MCP devem seguir .github/skills/omnisearch-mcp/SKILL.md. A skill documenta o contrato das tools, limites por fonte, formato dos resultados, autenticação e a responsabilidade do agente chamador por qualquer síntese ou saída estruturada.

Instruções para agentes quando auth falhar

Se uma tool retornar auth_required: true:

  1. Pare de tentar a mesma busca em loop.

  2. Leia provider, command e agent_instruction.

  3. Peça ao humano para rodar o comando indicado.

  4. Aguarde o humano confirmar que o login terminou.

  5. Tente a tool novamente uma vez.

  6. Se falhar de novo, reporte bloqueio de autenticação e use fontes públicas se possível.

Exemplo de resposta de auth:

{
  "auth_required": true,
  "provider": "ieee",
  "action": "human_relogin_required",
  "command": "uv run omnisearch-capes-login --headless",
  "agent_instruction": "Stop retrying this provider. Ask the human to run the command, wait for login completion, then retry the same tool once.",
  "results": []
}

Para search_all, veja também:

{
  "auth_required_sources": ["ieee", "scite", "consensus"],
  "agent_instruction": "For sources in auth_required_sources, do not retry in a loop..."
}

Prioridade de relogin

  1. CAPES/IEEE: uv run omnisearch-capes-login em modo visível é o caminho mais confiável.

  2. Scite: uv run omnisearch-scite-login.

  3. Consensus: uv run omnisearch-consensus-login.

Notas de segurança

  • .env, .omnisearch/ e *.storage.json contêm segredos de sessão.

  • Não imprima cookies, storage state, senhas ou tokens em logs/prompts.

  • use_scihub é False por padrão. Use apenas quando você tiver direito legítimo de acesso ao paper e aceitar o risco legal local.

Créditos

Fork ampliado de ieee-research-mcp, criado por Kevin Zhao.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables LLMs to search, analyze, and summarize academic research papers in real-time from arXiv, Semantic Scholar, and PubMed. Provides automatic deduplication, citation analysis, and BibTeX generation across multiple research databases.
    26
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching, fetching, and analyzing scientific papers from ArXiv, ACL Anthology, Semantic Scholar, and Hugging Face datasets, with optional LLM-powered document QA and research proposal workflows.
    91
    Apache 2.0
  • F
    license
    A
    quality
    D
    maintenance
    Enables agents to search papers across Semantic Scholar and arXiv, read and extract text from arXiv PDFs, align records across sources, and produce structured literature-analysis digests.
    10
    1

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/All3yp/omnisearch-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server