Academia MCP

Pesquise publicações científicas em ArXiv, ACL Anthology, HuggingFace Datasets e Semantic Scholar.

Documentação

Academia MCP

PyPI CI License smithery badge Verified on MseeP

Servidor MCP com ferramentas para pesquisar, buscar, analisar e gerar relatórios sobre artigos científicos e conjuntos de dados.

Funcionalidades

  • Pesquisa e download no ArXiv
  • Pesquisa no ACL Anthology
  • Pesquisa em conjuntos de dados do Hugging Face
  • Citações e referências do Semantic Scholar
  • Pesquisa na web via Exa, Brave ou Tavily
  • Rastreador de páginas web, compilação LaTeX, leitura de PDF
  • Ferramentas opcionais com LLM para QA de documentos e fluxos de trabalho de propostas de pesquisa

Requisitos

  • Python 3.12+

Instalação

  • Usando pip (usuários finais):
pip3 install academia-mcp
  • Para desenvolvimento (uv + Makefile):
uv venv .venv
make install

Início rápido

  • Executar via HTTP (transporte padrão):
python -m academia_mcp --transport streamable-http
# OR
uv run -m academia_mcp --transport streamable-http
  • Executar via stdio (para clientes MCP locais como Claude Desktop):
python -m academia_mcp --transport stdio
# OR
uv run -m academia_mcp --transport stdio

Notas:

  • Transportes: stdio, sse, streamable-http.
  • host/port são usados para transportes HTTP; ignorados para stdio. A porta padrão é 5056 (ou PORT).

Autenticação

O Academia MCP suporta autenticação opcional baseada em token para transportes HTTP (streamable-http e sse). A autenticação está desabilitada por padrão para manter a compatibilidade com versões anteriores.

Habilitando a Autenticação

Defina a variável de ambiente ENABLE_AUTH para true:

export ENABLE_AUTH=true
export TOKENS_FILE=/path/to/tokens.json  # Optional, defaults to ./tokens.json

Gerenciando Tokens

Emita um novo token:

academia_mcp auth issue-token --client-id=my-client --description="Production API client"

# Issue token with 30-day expiration
academia_mcp auth issue-token --client-id=test-client --expires-days=30

# Issue token with custom scopes
academia_mcp auth issue-token --client-id=admin --scopes="read,write,admin"

Liste tokens ativos:

academia_mcp auth list-tokens

Revogue um token:

academia_mcp auth revoke-token mcp_a1b2c3d4e5f6...

Usando Tokens

Inclua o token no cabeçalho Authorization com o esquema Bearer ou como parâmetro de consulta apiKey.

Notas de Segurança:

  • Os tokens são exibidos apenas uma vez durante a emissão. Armazene-os com segurança.
  • Use HTTPS em produção para proteger os tokens em trânsito.
  • O arquivo tokens.json é criado automaticamente com permissões restritivas (modo 600).
  • Os tokens são armazenados em texto simples (prática padrão para tokens de portador) - proteja o arquivo de tokens.

Configuração do Claude Desktop

{
  "mcpServers": {
    "academia": {
      "command": "python3",
      "args": [
        "-m",
        "academia_mcp",
        "--transport",
        "stdio"
      ]
    }
  }
}

Ferramentas disponíveis (resumo)

  • arxiv_search: Consultar o arXiv com consultas e filtros específicos de campo.
  • arxiv_download: Buscar um artigo por ID e converter para texto estruturado (modos HTML/PDF).
  • anthology_search: Pesquisar no ACL Anthology com consultas por campo e filtro de data opcional.
  • hf_datasets_search: Encontrar conjuntos de dados do Hugging Face com filtros e ordenação.
  • s2_get_citations: Listar artigos que citam um determinado artigo do arXiv (Semantic Scholar Graph).
  • s2_get_references: Listar artigos referenciados por um determinado artigo do arXiv.
  • visit_webpage: Buscar e normalizar uma página web.
  • web_search: Wrapper de pesquisa unificado; disponível quando pelo menos uma das chaves Exa/Brave/Tavily está definida.
  • exa_web_search, brave_web_search, tavily_web_search: Pesquisa específica do provedor.
  • get_latex_templates_list, get_latex_template: Enumerar e buscar modelos LaTeX integrados.
  • compile_latex: Compilar LaTeX para PDF em WORKSPACE_DIR.
  • read_pdf: Extrair texto por página de um PDF.
  • download_pdf_paper, review_pdf_paper: Baixar e opcionalmente revisar PDFs (requer LLM + workspace).
  • document_qa: Responder perguntas sobre trechos de documentos fornecidos (requer LLM).
  • extract_bitflip_info, generate_research_proposals, score_research_proposals: Auxiliares de propostas de pesquisa (requer LLM).

Notas de disponibilidade:

  • Defina WORKSPACE_DIR para habilitar compile_latex, read_pdf, download_pdf_paper e review_pdf_paper.
  • Defina OPENROUTER_API_KEY para habilitar ferramentas LLM (document_qa, review_pdf_paper e ferramentas bitflip).
  • Defina uma ou mais de EXA_API_KEY, BRAVE_API_KEY, TAVILY_API_KEY para habilitar web_search e ferramentas do provedor.

Variáveis de ambiente

Defina conforme necessário, dependendo de quais ferramentas você usa:

  • OPENROUTER_API_KEY: obrigatório para ferramentas relacionadas a LLM.
  • BASE_URL: substituir a URL base do OpenRouter.
  • DOCUMENT_QA_MODEL_NAME: substituir o modelo padrão para document_qa.
  • BITFLIP_MODEL_NAME: substituir o modelo padrão para ferramentas bitflip.
  • TAVILY_API_KEY: habilita Tavily em web_search.
  • EXA_API_KEY: habilita Exa em web_search e visit_webpage.
  • BRAVE_API_KEY: habilita Brave em web_search.
  • WORKSPACE_DIR: diretório para arquivos gerados (PDFs, artefatos temporários).
  • PORT: porta HTTP (padrão 5056).

Você pode colocá-los em um arquivo .env na raiz do projeto.

Docker

Construa a imagem:

docker build -t academia_mcp .

Execute o servidor (HTTP):

docker run --rm -p 5056:5056 \
  -e PORT=5056 \
  -e OPENROUTER_API_KEY=your_key_here \
  -e WORKSPACE_DIR=/workspace \
  -v "$PWD/workdir:/workspace" \
  academia_mcp

Ou use a imagem existente: phoenix120/academia_mcp

Exemplos

Alvos do Makefile

  • make install: instalar o pacote em modo editável com uv
  • make validate: executar black, flake8 e mypy (estrito)
  • make test: executar a suíte de testes com pytest
  • make publish: construir e publicar usando uv

Requisitos LaTeX/PDF

Necessário apenas para ferramentas LaTeX/PDF. Certifique-se de que uma distribuição LaTeX esteja instalada e que pdflatex esteja no PATH, assim como latexmk. No Debian/Ubuntu:

sudo apt install texlive-latex-base texlive-fonts-recommended texlive-latex-extra texlive-science latexmk