Academia MCP
Busca publicaciones científicas en ArXiv, ACL Anthology, HuggingFace Datasets y Semantic Scholar.
Documentación
Academia MCP
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/portse usan para transportes HTTP; se ignoran parastdio. El puerto predeterminado es5056(oPORT).
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.jsonse 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 enWORKSPACE_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_DIRpara habilitarcompile_latex,read_pdf,download_pdf_paperyreview_pdf_paper. - Establezca
OPENROUTER_API_KEYpara habilitar las herramientas LLM (document_qa,review_pdf_papery herramientas bitflip). - Establezca una o más de
EXA_API_KEY,BRAVE_API_KEY,TAVILY_API_KEYpara habilitarweb_searchy 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 paradocument_qa.BITFLIP_MODEL_NAME: anula el modelo predeterminado para herramientas bitflip.TAVILY_API_KEY: habilita Tavily enweb_search.EXA_API_KEY: habilita Exa enweb_searchyvisit_webpage.BRAVE_API_KEY: habilita Brave enweb_search.WORKSPACE_DIR: directorio para archivos generados (PDF, artefactos temporales).PORT: puerto HTTP (predeterminado5056).
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 uvmake validate: ejecuta black, flake8 y mypy (estricto)make test: ejecuta la suite de pruebas con pytestmake 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