Academia MCP

Busca publicaciones científicas en ArXiv, ACL Anthology, HuggingFace Datasets y Semantic Scholar.

Documentación

Academia MCP

PyPI CI License smithery badge Verified on MseeP

Servidor MCP con herramientas para buscar, obtener, analizar y reportar sobre artículos científicos y conjuntos de datos.

Características

  • Búsqueda y descarga en ArXiv
  • Búsqueda en ACL Anthology
  • Búsqueda de conjuntos de datos en Hugging Face
  • Citas y referencias de Semantic Scholar
  • Búsqueda web mediante Exa, Brave o Tavily
  • Rastreador de páginas web, compilación de LaTeX, lectura de PDF
  • Herramientas opcionales impulsadas por LLM para preguntas y respuestas sobre documentos y flujos de trabajo de propuestas de investigación

Requisitos

  • Python 3.12+

Instalación

  • Usando pip (usuarios finales):
pip3 install academia-mcp
  • Para desarrollo (uv + Makefile):
uv venv .venv
make install

Inicio rápido

  • Ejecutar sobre HTTP (transporte predeterminado):
python -m academia_mcp --transport streamable-http
# OR
uv run -m academia_mcp --transport streamable-http
  • Ejecutar sobre stdio (para clientes MCP locales 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 se usan para transportes HTTP; se ignoran para stdio. El puerto predeterminado es 5056 (o PORT).

Autenticación

Academia MCP admite autenticación opcional basada en tokens para transportes HTTP (streamable-http y sse). La autenticación está deshabilitada por defecto para mantener la compatibilidad con versiones anteriores.

Habilitar la autenticación

Establezca la variable de entorno ENABLE_AUTH en true:

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

Gestión de tokens

Emitir un nuevo 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"

Listar tokens activos:

academia_mcp auth list-tokens

Revocar un token:

academia_mcp auth revoke-token mcp_a1b2c3d4e5f6...

Uso de tokens

Incluya el token en el encabezado Authorization con el esquema Bearer o como parámetro de consulta apiKey.

Notas de seguridad:

  • Los tokens se muestran solo una vez durante su emisión. Guárdelos de forma segura.
  • Use HTTPS en producción para proteger los tokens en tránsito.
  • El archivo tokens.json se crea automáticamente con permisos restrictivos (modo 600).
  • Los tokens se almacenan en texto plano (práctica estándar para tokens de portador): proteja el archivo de tokens.

Configuración de Claude Desktop

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

Herramientas disponibles (descripciones breves)

  • arxiv_search: Consulta arXiv con consultas y filtros específicos de campo.
  • arxiv_download: Obtiene un artículo por ID y lo convierte a texto estructurado (modos HTML/PDF).
  • anthology_search: Busca en ACL Anthology con consultas por campo y filtrado de fecha opcional.
  • hf_datasets_search: Encuentra conjuntos de datos de Hugging Face con filtros y ordenación.
  • s2_get_citations: Lista artículos que citan un artículo de arXiv dado (Semantic Scholar Graph).
  • s2_get_references: Lista artículos referenciados por un artículo de arXiv dado.
  • visit_webpage: Obtiene y normaliza una página web.
  • web_search: Envoltorio de búsqueda unificado; disponible cuando al menos una de las claves Exa/Brave/Tavily está configurada.
  • exa_web_search, brave_web_search, tavily_web_search: Búsqueda específica del proveedor.
  • get_latex_templates_list, get_latex_template: Enumera y obtiene plantillas LaTeX integradas.
  • compile_latex: Compila LaTeX a PDF en WORKSPACE_DIR.
  • read_pdf: Extrae texto por página de un PDF.
  • download_pdf_paper, review_pdf_paper: Descarga y opcionalmente revisa PDF (requiere LLM + espacio de trabajo).
  • document_qa: Responde preguntas sobre fragmentos de documentos proporcionados (requiere LLM).
  • extract_bitflip_info, generate_research_proposals, score_research_proposals: Asistentes de propuestas de investigación (requieren LLM).

Notas de disponibilidad:

  • Establezca WORKSPACE_DIR para habilitar compile_latex, read_pdf, download_pdf_paper y review_pdf_paper.
  • Establezca OPENROUTER_API_KEY para habilitar las herramientas LLM (document_qa, review_pdf_paper y herramientas bitflip).
  • Establezca una o más de EXA_API_KEY, BRAVE_API_KEY, TAVILY_API_KEY para habilitar web_search y las herramientas del proveedor.

Variables de entorno

Configúrelas según sea necesario, dependiendo de qué herramientas use:

  • OPENROUTER_API_KEY: requerida para herramientas relacionadas con LLM.
  • BASE_URL: anula la URL base de OpenRouter.
  • DOCUMENT_QA_MODEL_NAME: anula el modelo predeterminado para document_qa.
  • BITFLIP_MODEL_NAME: anula el modelo predeterminado para herramientas bitflip.
  • TAVILY_API_KEY: habilita Tavily en web_search.
  • EXA_API_KEY: habilita Exa en web_search y visit_webpage.
  • BRAVE_API_KEY: habilita Brave en web_search.
  • WORKSPACE_DIR: directorio para archivos generados (PDF, artefactos temporales).
  • PORT: puerto HTTP (predeterminado 5056).

Puede colocarlas en un archivo .env en la raíz del proyecto.

Docker

Construir la imagen:

docker build -t academia_mcp .

Ejecutar el 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

O use la imagen existente: phoenix120/academia_mcp

Ejemplos

Objetivos del Makefile

  • make install: instala el paquete en modo editable con uv
  • make validate: ejecuta black, flake8 y mypy (estricto)
  • make test: ejecuta la suite de pruebas con pytest
  • make publish: compila y publica usando uv

Requisitos de LaTeX/PDF

Solo se necesitan para las herramientas de LaTeX/PDF. Asegúrese de que haya una distribución de LaTeX instalada y que pdflatex esté en PATH, así como latexmk. En Debian/Ubuntu:

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