Scholar Engine MCP
Compilador semántico de literatura científica de alta velocidad y servidor FastMCP impulsado por arXiv, OpenAlex, consultas de rango HTTP de DuckDB y TypeSafe Jev System One.
Documentación
Scholar Engine MCP 🔬⚡
Compilador Semántico de Literatura Científica de Alta Velocidad y Servidor FastMCP
Impulsado por arXiv, OpenAlex, consultas de rango HTTP de DuckDB y TypeSafe Jev System One.
💡 ¿Por qué Scholar Engine?
La Generación Aumentada por Recuperación (RAG) tradicional se basa en similitud vectorial densa (cos(query, chunk)). La similitud vectorial es excelente para responder "¿qué texto se parece a mi consulta?", pero falla fundamentalmente en preguntas científicas estructurales y empíricas, como:
"¿Qué artículo publicado demostró experimentalmente la reducción de latencia cargada en hardware inalámbrico fijo real sin requerir Wi-Fi 6 PHY?"
La búsqueda vectorial devolverá docenas de artículos llenos de ecuaciones de simulación o encuestas teóricas que simplemente mencionan "inalámbrico" y "latencia" miles de veces.
Scholar Engine replantea el descubrimiento científico para agentes de IA combinando:
- Cero Inflado de Almacenamiento: Consulta directamente el conjunto de datos Parquet de 3.15M
arxiv-completede Hugging Face usando consultas de rango HTTP de DuckDB. Sin necesidad de descargar un corpus de PDF de 16 TB. - Enriquecimiento del Grafo de Citas: Obtiene instantáneamente métricas de citas y grafos de autores a través de OpenAlex.
- Compuertas Semánticas Probabilísticas (Jev System One): Las preguntas en lenguaje natural se compilan en predicados probabilísticos persistentes de 154ms (por ejemplo,
P_real_hardware > 0.85,P_empirical > 0.75). - Caché de Predicados Materializados: Los predicados evaluados se almacenan en mapas de bits SQLite para que las ejecuciones posteriores reutilicen juicios pasados con costo de inferencia cero.
- Doble Compuerta Jev (Pre-RAG y Post-RAG):
- Pre-RAG: Descarta artículos no empíricos o irrelevantes antes de leer el texto completo.
- Post-RAG: Verifica cada afirmación sintetizada por el agente de razonamiento contra pasajes de evidencia extraídos (
supported,partial,unsupported,contradicted).
📊 Matriz de Comparación
| Característica | Scholar MCP | ArXiv MCP Tradicional | PaperQA2 | Elicit / Consensus |
|---|---|---|---|---|
| Interfaz Principal | Servidor FastMCP Local | MCP local | Biblioteca Python / CLI | Aplicación Web / SaaS Cerrado |
| Velocidad de Búsqueda | Sub-segundo a ~3s | ~1-2s | 30s - 90s | ~5s |
| Costo por Consulta | <$0.001 (o $0 simulación) | Gratis (API con límite de tasa) | $1.00 - $5.00+ / ejecución | Suscripción Mensual |
| Acceso a LaTeX de Texto Completo | Sí (Rango HTTP DuckDB) | ❌ (Solo resumen) | Sí (Descarga PDFs completos) | Índice Propietario |
| Filtrado Semántico por Predicados | Sí (Jev System One) | ❌ Ninguno | ❌ Ninguno | Filtros heurísticos |
| Caché de Mapas de Bits de Predicados | Sí (SQLite) | ❌ Ninguno | ❌ Ninguno | ❌ Ninguno |
| Verificación Afirmación-Evidencia | Sí (Verificador Post-RAG) | ❌ Ninguno | Sí (Bucle LLM pesado) | Puntuación simple |
| Soporte de Herramientas para Agentes | Claude, Cursor, Codex, AGY | Parcial | ❌ Ninguno | ❌ Ninguno |
🏛️ Arquitectura
flowchart TD
subgraph INGESTION["1. Zero-Storage Discovery"]
ARXIV["arXiv Atom API (Search & Metadata)"]
OPENALEX["OpenAlex Graph API (Citations & Authors)"]
HF["Hugging Face arxiv-complete (3.15M Papers)"]
DUCKDB["DuckDB HTTP Range Scanner (Targeted LaTeX fetch)"]
HF --> DUCKDB
end
subgraph ENGINE["2. Scholar Semantic Engine"]
DISCOVER["Candidate Retrieval Engine"]
ARXIV --> DISCOVER
OPENALEX --> DISCOVER
DUCKDB --> DISCOVER
subgraph GATES["Jev System One Gates"]
PRE_RAG["Pre-RAG Gate (P_empirical, P_applicable)"]
POST_RAG["Post-RAG Verifier (Claim vs Evidence)"]
PRED_CACHE[("SQLite Predicate Cache & Bitmaps")]
end
DISCOVER --> PRE_RAG
PRE_RAG <--> PRED_CACHE
PRE_RAG --> POST_RAG
POST_RAG <--> PRED_CACHE
end
subgraph MCP_INTERFACE["3. FastMCP Server Interface"]
TOOL_SEARCH["scholar_search (Fast paper discovery)"]
TOOL_INSPECT["scholar_inspect (Deep paper metrics & OpenAlex)"]
TOOL_RESEARCH["scholar_research (Full autonomous loop)"]
end
ENGINE --> MCP_INTERFACE
MCP_INTERFACE --> CLIENTS["AI Agents: Claude Desktop, Cursor, Codex, Antigravity"]
🚀 Inicio Rápido
1. Instalación
# Clone the repository
git clone https://github.com/wolverin0/scholar-mcp.git
cd scholar-mcp
# Install dependencies (or install in a virtual environment)
pip install -e .
2. Configuración (.env)
Copia .env.example a .env:
cp .env.example .env
# Optional: TypeSafe Jev API Key for live 154ms System One probabilistic decisions
# If unset, Scholar Engine automatically runs in high-fidelity deterministic simulation mode!
TYPESAFE_API_KEY=your_typesafe_key_here
3. Ejecutar Pruebas
Verifica que todo funcione localmente:
pytest -v
🤖 Configuración del Servidor MCP
Agrega Scholar Engine a tus herramientas de agentes favoritas:
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"scholar": {
"command": "python",
"args": ["-m", "scholar.mcp.server"],
"env": {
"TYPESAFE_API_KEY": "your_key_here"
}
}
}
}
Cursor (.cursor/mcp.json)
{
"mcpServers": {
"scholar": {
"command": "python",
"args": ["-m", "scholar.mcp.server"]
}
}
}
Antigravity / Wezbridge (.mcp.json)
{
"mcpServers": {
"scholar": {
"type": "stdio",
"command": "python",
"args": ["-m", "scholar.mcp.server"]
}
}
}
🛠️ Referencia de Herramientas FastMCP
1. scholar_search
Busca rápidamente en arXiv artículos científicos por tema, palabra clave o título, con filtrado opcional por año de publicación.
- Argumentos:
query(str): Tema o palabras clave de búsqueda (por ejemplo,"loaded latency wifi").limit(int, predeterminado=5): Número de candidatos a devolver.year_min(int, opcional): Año mínimo de publicación (por ejemplo,2022).year_max(int, opcional): Año máximo de publicación (por ejemplo,2026).
- Devuelve: Lista JSON estructurada de IDs, títulos, categorías, resúmenes y enlaces PDF.
2. scholar_inspect
Inspecciona un artículo en detalle por su ID de arXiv. Combina métricas de citas de OpenAlex, autores y predicados semánticos almacenados.
- Argumentos:
paper_id(str): ID de artículo de arXiv (por ejemplo,"2007.07174"o"2306.04338").
- Devuelve: Resumen completo, categorías, conteos de citas, DOI, ID de OpenAlex y características semánticas en caché.
3. scholar_verify_claim
Verifica una afirmación empírica o científica contra el resumen/texto completo de un artículo específico. Extrae el pasaje de evidencia más relevante con desplazamientos de caracteres exactos (start_char, end_char, source_field, doc_id).
- Argumentos:
claim(str): Proposición empírica específica (por ejemplo,"Method achieves sub-5ms latency under load").paper_id(str): ID del artículo contra el cual verificar.
- Devuelve: Estado (
supported,contradicted,unsupported), puntuación de probabilidad, fuente de procedencia (livevsheuristic) y tramos de evidencia exactos con desplazamientos de caracteres.
4. scholar_verify_predicate
Evalúa directamente una proposición booleana o probabilística contra cualquier estado o pasaje de texto usando la semántica TypeSafe Jev System One.
- Argumentos:
state_text(str): Evidencia o pasaje de texto a evaluar.question(str): Pregunta de proposición (por ejemplo,"Does this passage report an in-vivo experiment?").
- Devuelve: Probabilidad en
[0.0, 1.0], latencia en ms y procedencia (livevsheuristic).
5. scholar_research
Bucle de descubrimiento científico autónomo:
- Descubre candidatos en arXiv.
- Ejecuta el guardián semántico Jev System One para filtrar artículos no empíricos o incompatibles.
- Resuelve grafos de citas y verifica afirmaciones contra texto de evidencia con tramos exactos.
- Argumentos:
query(str): Pregunta de investigación o tema de ingeniería.domain(str, predeterminado="general"): Pista de dominio (por ejemplo,"wireless","databases","ai").threshold(float, predeterminado=0.50): Puntuación de probabilidad mínima requerida para pasar las compuertas semánticas.limit(int, predeterminado=10): Máximo de candidatos a evaluar.
- Devuelve: Artículos sobrevivientes respaldados por evidencia con métricas de confianza, tramos de evidencia exactos y desglose de auditoría de los descartados.
🏛️ Consenso Arquitectónico de IA de Tres Modelos (Claude, Codex, Gemini)
La arquitectura v1.1 de Scholar Engine fue refinada y auditada a través de un debate estructurado de IA de 3 rondas entre las familias de LLM de frontera:
- Anthropic Claude (Fable 5.1 / nivel Opus): Seguridad de sistemas, seguimiento de caracteres a nivel de tramo y arnés de regresión CI.
- OpenAI Codex (GPT 6 Astra / nivel Codex): Pipeline de verificación de 3 etapas (
Retrieval -> Extraction -> Assessment), seguridad MCP acotada y aislamiento de parámetros. - Google Gemini (Gemini 3.8 Flash / nivel Gemini 2.5): Facetas de metadatos sensibles al contexto, pistas de auditoría para retractaciones y resiliencia multi-modelo.
Lee los registros completos sin editar del debate y la hoja de ruta arquitectónica:
- 📜 Transcripción Completa de 3 Rondas (32 KB)
- 📋 Síntesis Arquitectónica Autoritativa y Hoja de Ruta (12 KB)
🧪 Arnés de Evaluación CI y Suite de Pruebas
Scholar Engine incluye un arnés de evaluación integral de 50 puntos de referencia en tests/test_eval_harness.py:
- Integridad de Desplazamiento de Tramos: Verifica que los tramos de evidencia extraídos coincidan con rebanadas de cadena exactas en los documentos fuente.
- Detección de Contradicciones: Prueba la refutación activa y la detección de negación.
- Abstención por Evidencia Insuficiente: Valida que artículos no relacionados produzcan abstenciones en lugar de falsos positivos.
- Resiliencia Adversarial: Prueba la resistencia contra inyección de prompts en texto académico no confiable (por ejemplo, instrucciones que intentan anular umbrales de verificación).
- Demarcación de Procedencia: Garantiza que cada afirmación declare explícitamente su fuente (API
livevs respaldoheuristic).
Ejecuta la suite de pruebas completa:
python -m pytest tests -v
💻 Uso desde CLI
También puedes usar Scholar Engine directamente desde tu terminal:
# Search arXiv papers
scholar search "neural network verification" --limit 5
# Inspect a paper with OpenAlex citation metrics
scholar inspect "1711.00455"
# Run the autonomous semantic research loop
scholar research "wireless loaded latency scheduler" --threshold 0.50 --limit 10
📄 Licencia
Licencia MIT. Consulta LICENSE para más detalles.