Scholar Sidekick MCP
Resuelve, formatea y exporta citas académicas desde cualquier asistente de IA.
Documentación
Servidor MCP de Scholar Sidekick
Servidor MCP para Scholar Sidekick: detecta citas fabricadas por IA, una por una o en una bibliografía completa, desde cualquier asistente de IA. También verifica el estado de retractación y acceso abierto, y resuelve cualquier identificador académico (DOI, PMID, PMCID, ISBN, arXiv, ISSN, bibcode de NASA ADS, URL de WHO IRIS) en más de 10,000 estilos CSL o nueve formatos de exportación.
Características destacadas
- Detección de citas fabricadas —
verifyCitationcontrasta una cita reclamada con el registro resuelto en su identificador, detectando el patrón dominante de fabricación impulsado por IA documentado por Topaz et al. (Lancet 2026) — DOI real + título inventado — que la simple resolución de identificadores no puede detectar. Explicación detallada en scholar-sidekick.com/citation-integrity. - Auditoría de bibliografía completa —
auditBibliographyejecuta esa misma verificación más una consulta de retractación en toda una lista de referencias en una sola llamada, aceptando BibTeX, RIS o CSL JSON sin procesar y devolviendo una tabla de veredictos por entrada con un resumen del corpus. - Verificaciones de retractación y acceso abierto —
checkRetractionmuestra retractaciones, correcciones y expresiones de preocupación (Crossref / Retraction Watch);checkOpenAccessdevuelve el estado de acceso abierto y la mejor URL legal de aterrizaje o PDF (Unpaywall). Ambos aceptan cualquier tipo de identificador y lo resuelven a un DOI internamente. - Ocho tipos de identificadores listos para usar — DOIs, PMIDs, PMCIDs, ISBNs, IDs de arXiv, ISSNs, bibcodes de NASA ADS y URLs de WHO IRIS (poco comunes en herramientas de citación).
- Resolución / formato / exportación por lotes — cada uno acepta un identificador único o una lista separada por comas o saltos de línea; el servidor normaliza la lista y los resuelve en un solo viaje de ida y vuelta.
- Más de 10,000 estilos de citación — cinco integrados ajustados a mano (Vancouver, AMA, APA, IEEE, CSE) más cualquier ID de estilo CSL, con resolución de alias y estilos dependientes.
- Nueve formatos de exportación — BibTeX, RIS, CSL JSON, EndNote (XML/Refer), RefWorks, MEDLINE, Zotero RDF, CSV, texto plano.
- Flujo de trabajo componible — encadena
resolveIdentifier→formatCitation→exportCitationen un solo prompt para un pipeline completo de "IDs sin procesar → bibliografía exportable". - Metadatos de procedencia en cada respuesta — la salida formateada va seguida de un bloque de metadatos (
requestId,formatter,styleUsed,warnings) para que el asistente pueda mostrar a los usuarios qué motor produjo cada cita. - Sin necesidad de clave — funciona de forma anónima contra la API pública de Scholar Sidekick (nivel gratuito con límite de velocidad); añade una clave gratuita de primera parte
ssk_para límites más altos, o una clave de RapidAPI para niveles de pago/gestionados. - Endpoint HTTP alojado (sin instalación) — ¿Prefieres no ejecutar un servidor stdio local? Conecta cualquier cliente MCP compatible con HTTP directamente a
https://scholar-sidekick.com/api/mcp(Streamable HTTP, mismas 7 herramientas). Consulta Endpoint HTTP alojado. - Gemelo de API REST — los mismos endpoints están disponibles como API REST de Scholar Sidekick para integraciones que no usan MCP.
Herramientas
| Herramienta | Descripción |
|---|---|
| verifyCitation | Verifica una cita reclamada contra el registro resuelto en su identificador. Detecta el patrón de fabricación de Topaz et al. (Lancet 2026) — DOI real + título inventado — que resolveIdentifier por sí solo no puede detectar. Devuelve uno de cuatro veredictos (matched / mismatch / ambiguous / not_found) más puntuaciones de similitud por campo y el registro resuelto para que el usuario pueda ver dónde divergieron el título citado y el artículo real. El filtro opcional de LLM de Etapa 3 rescata falsos positivos por abreviaturas informales (solo planes de pago / autenticación de primera parte). Una cita por llamada. |
| auditBibliography | Ejecuta la verificación de verifyCitation más una consulta de retractación en una bibliografía completa en una sola llamada. Acepta texto BibTeX, RIS o CSL-JSON sin procesar, o un array claims[] preanalizado; devuelve una tabla de veredictos por entrada y un resumen del corpus. Límite de 25 entradas por llamada. |
| resolveIdentifier | Resuelve DOIs, PMIDs, PMCIDs, ISBNs, IDs de arXiv, ISSNs, bibcodes de ADS y URLs de WHO IRIS a metadatos bibliográficos estructurados (CSL JSON). Acepta un identificador único o un lote separado por comas/saltos de línea. |
| formatCitation | Formatea uno o muchos identificadores en Vancouver, AMA, APA, IEEE, CSE o cualquiera de los más de 10,000 estilos CSL. Salida como texto, HTML o JSON. Devuelve citas formateadas más un bloque de metadatos de procedencia. |
| exportCitation | Exporta uno o muchos identificadores a BibTeX, RIS, CSL JSON, EndNote (XML/Refer), RefWorks, MEDLINE, Zotero RDF, CSV o texto plano — listo para escribir en disco o entregar a un gestor de referencias. |
| checkRetraction | Verifica si una sola obra ha sido retractada, corregida o ha recibido una expresión de preocupación. Fuente: Crossref updated-by (Retraction Watch). Resuelve entradas DOI/PMID/PMCID/arXiv/ADS a un DOI antes de la consulta. Un identificador por llamada. |
| checkOpenAccess | Verifica si una sola obra es de acceso abierto y dónde encontrar la mejor versión legal. Fuente: Unpaywall. Devuelve estado de acceso abierto (oro/verde/híbrido/bronce/cerrado), mejor URL de aterrizaje/PDF, licencia y versión. Resuelve entradas DOI/PMID/PMCID/arXiv/ISBN/ADS a un DOI antes de la consulta. Un identificador por llamada. |
Las siete herramientas son de solo lectura (readOnlyHint: true, destructiveHint: false). El payload exacto de tools/list — descripciones, esquemas JSON y anotaciones — está confirmado como tools.json y se incluye en el paquete npm, para que puedas revisar la superficie completa de herramientas sin ejecutar nada.
Configuración
No se requiere clave. El servidor funciona de forma anónima contra la API pública de Scholar Sidekick (https://scholar-sidekick.com) en un nivel gratuito con límite de velocidad — solo instala y listo. Para aumentar tus límites, crea una clave gratuita de primera parte ssk_ en scholar-sidekick.com/account y establece SCHOLAR_API_KEY. Para niveles de pago/gestionados, suscríbete en RapidAPI y establece RAPIDAPI_KEY (que enruta las llamadas a través de la puerta de enlace de RapidAPI).
¿Prefieres cero instalación? También hay un endpoint HTTP alojado en
https://scholar-sidekick.com/api/mcp(Streamable HTTP) — conecta cualquier cliente MCP compatible con HTTP directamente, sin necesidad denpx. Consulta Endpoint HTTP alojado a continuación. El paquete stdio documentado aquí es la alternativa de instalación local (y la vía para usuarios con clave de RapidAPI).
Claude Desktop
Añade a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows). Sin clave, sin bloque env:
{
"mcpServers": {
"scholar-sidekick": {
"command": "npx",
"args": ["-y", "scholar-sidekick-mcp@latest"]
}
}
}
Solo si quieres límites de velocidad más altos, añade un bloque env con una clave gratuita ssk_ de scholar-sidekick.com/account:
"env": { "SCHOLAR_API_KEY": "ssk_your-first-party-key" }
Claude Code
# Anonymous (no key):
claude mcp add scholar-sidekick -- npx -y scholar-sidekick-mcp@latest
# With a free first-party key for higher limits:
claude mcp add scholar-sidekick \
-e SCHOLAR_API_KEY=ssk_your-first-party-key \
-- npx -y scholar-sidekick-mcp@latest
Plugin de Claude Code (servidor + habilidad en un solo paso)
Este repositorio también es un mercado de plugins de Claude Code. Instalar el plugin conecta el servidor MCP y la habilidad de agente complementaria juntos — sin claude mcp add separado, sin bloque env:
/plugin marketplace add mlava/scholar-sidekick-mcp
/plugin install scholar-sidekick@scholar-sidekick
El plugin ejecuta el servidor de forma anónima (sin clave). Para límites de velocidad más altos, añade una clave gratuita ssk_ de scholar-sidekick.com/account mediante claude mcp add como se muestra arriba, o usa el endpoint alojado a continuación.
Cursor / VS Code / Windsurf
Añade a .cursor/mcp.json o .vscode/mcp.json. Sin necesidad de clave:
{
"mcpServers": {
"scholar-sidekick": {
"command": "npx",
"args": ["-y", "scholar-sidekick-mcp@latest"]
}
}
}
Para límites de velocidad más altos, añade "env": { "SCHOLAR_API_KEY": "ssk_your-first-party-key" }.
Ejecutar en un contenedor (sandbox)
El servidor habla MCP sobre stdio y necesita HTTPS saliente a la API de Scholar Sidekick y nada más — sin acceso al sistema de archivos, sin shell. Si tu política es que los servidores MCP no obtienen acceso al host, construye la imagen en este repositorio y ejecútala aislada:
docker build -t scholar-sidekick-mcp .
{
"mcpServers": {
"scholar-sidekick": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--read-only", "--cap-drop", "ALL", "--security-opt", "no-new-privileges",
"scholar-sidekick-mcp"
]
}
}
}
-i es obligatorio — es la tubería stdio. Añade "-e", "SCHOLAR_API_KEY", a los argumentos solo si estás pasando una clave para límites más altos. No se publica ninguna imagen en un registro; constrúyela localmente para ejecutar un paquete que compilaste desde código fuente que puedes leer.
Habilidad de agente (opcional)
Instala una Habilidad de Agente complementaria que enseña a Claude Code, Cline y otros agentes cuándo y cómo usar estas herramientas — complementa la configuración del servidor anterior:
npx skills add mlava/scholar-sidekick-mcp
Endpoint HTTP alojado (sin instalación)
¿No quieres ejecutar un servidor stdio local? Scholar Sidekick también es un MCP Streamable HTTP alojado en https://scholar-sidekick.com/api/mcp — las mismas siete herramientas, sin npx, sin proceso local. Funciona de forma anónima (nivel gratuito con límite de velocidad); añade un encabezado Authorization: Bearer ssk_… (una clave gratuita de scholar-sidekick.com/account) para límites más altos.
Apunta cualquier cliente MCP compatible con HTTP hacia él:
{
"mcpServers": {
"scholar-sidekick": {
"type": "http",
"url": "https://scholar-sidekick.com/api/mcp"
}
}
}
En Claude Desktop, usa Configuración → Conectores → Añadir conector personalizado (o "Añadir servidor HTTP") y pega la URL. Añade el token de portador en el campo de encabezados/autenticación del cliente si tienes uno.
Descubrimiento: /.well-known/mcp.json (tarjeta de servidor SEP-1649) lista este endpoint más el endpoint de ChatGPT Apps sin autenticación en /api/apps/mcp. El paquete stdio anterior sigue siendo la alternativa de instalación local y la vía para usuarios con clave de RapidAPI.
Variables de Entorno
| Variable | Requerida | Descripción |
|---|---|---|
SCHOLAR_API_KEY | No | Clave gratuita de primera parte ssk_ de scholar-sidekick.com/account; aumenta los límites de velocidad y habilita el filtro LLM del verificador. Se envía como Authorization: Bearer. |
RAPIDAPI_KEY | No | Clave de suscripción de RapidAPI para niveles de pago/gestionados; cuando se establece, las llamadas se enrutan a través de la puerta de enlace de RapidAPI. |
RAPIDAPI_HOST | No | Host de RapidAPI (por defecto scholar-sidekick.p.rapidapi.com) |
SCHOLAR_SIDEKICK_URL | No | Sobrescribe la URL base de la API (por defecto https://scholar-sidekick.com, o la puerta de enlace de RapidAPI cuando RAPIDAPI_KEY está establecido). |
SCHOLAR_SIDEKICK_TIMEOUT_MS | No | Tiempo de espera de solicitud en milisegundos (por defecto: 30000) |
Sin clave en absoluto → nivel gratuito anónimo con límite de velocidad. Con ambos SCHOLAR_API_KEY y RAPIDAPI_KEY establecidos, RapidAPI tiene prioridad.
Estilos de Citación Soportados
Scholar Sidekick soporta más de 10,000 estilos CSL, incluyendo todos los formatos principales utilizados en la publicación académica:
| Estilo | Palabra clave |
|---|---|
| Vancouver | vancouver |
| APA (7.ª ed.) | apa |
| AMA | ama |
| IEEE | ieee |
| CSE | cse |
| Chicago (autor-fecha) | chicago-author-date |
| Harvard | harvard-cite-them-right |
| MLA | modern-language-association |
| Turabian | turabian-fullnote-bibliography |
| Nature | nature |
| BMJ | bmj |
| Lancet | the-lancet |
Cualquier ID de estilo CSL se puede pasar como parámetro style.
Ejemplo de Uso
Una vez conectado, pregunta a tu asistente de IA:
Identificador único
- "Formatea 10.1056/NEJMoa2033700 en estilo Vancouver"
- "Resuelve PMID:30049270 y exporta como BibTeX"
- "Dame una cita Chicago para arXiv:2301.08745"
Entrada por lotes (separada por comas o saltos de línea — cada herramienta lo maneja)
- "Formatea estos como APA: 10.1056/NEJMoa2033700, PMID:30049270, ISBN:9780192854087"
- "Resuelve todos estos y dime cuáles son artículos de revista vs libros: 10.1056/NEJMoa2033700, ISBN:9780192854087, PMC7793608"
Flujo de trabajo de extremo a extremo (el asistente encadena resolveIdentifier → formatCitation → exportCitation en un solo prompt)
- "Resuelve estos tres identificadores, formatea cada uno en AMA y exporta el conjunto como BibTeX: 10.1056/NEJMoa2033700, PMID:30049270, ISBN:9780192854087"
- "Construye una bibliografía estilo Nature a partir de esta lista y dame un archivo
.bibal final: PMID:30049270, arXiv:2301.08745, 10.1038/s41586-021-03819-2"
Verificaciones de retractación y acceso abierto (un identificador por llamada)
- "¿Ha sido retractado 10.1016/S0140-6736(20)31180-6?" → devuelve
isRetracted: truecon el aviso de retractación y la fecha - "¿El artículo de NumPy (10.1038/s41586-020-2649-2) es de acceso abierto? ¿Dónde puedo leerlo gratis?" → devuelve el estado de acceso abierto más la mejor URL legal de PDF con licencia y versión
- "Comprueba si arXiv:2301.08745 tiene correcciones o expresiones de preocupación." → resuelve arXiv → DOI, luego consulta Retraction Watch
Identificadores Soportados
- DOIs (p. ej.
10.1056/NEJMoa2033700) - IDs de PubMed (p. ej.
PMID:30049270) - IDs de PubMed Central (p. ej.
PMC7793608) - ISBNs (p. ej.
ISBN:9780192854087) - IDs de arXiv (p. ej.
2301.08745) - ISSNs y eISSNs
- Códigos bibcode de NASA ADS
- URLs de WHO IRIS
Procedencia y determinismo
Cada respuesta de formatCitation y exportCitation va seguida de un bloque de metadatos para que el asistente — y el usuario — puedan ver exactamente qué motor produjo cada cita:
formatter—builtin(uno de Vancouver, AMA, APA, IEEE, CSE — ajustado manualmente en TypeScript) ocsl(citeproc-js con una hoja de estilo CSL).styleUsed— el ID de estilo canónico después de la resolución de alias y estilos dependientes (p. ej., solicitarharvardse resuelve aharvard-cite-them-right).requestId— para soporte, reproducibilidad y correlación de registros.warnings— se completa cuando se usó una alternativa o el estilo solicitado era dependiente de otro.
La resolución de identificadores es determinista dados los mismos datos de entrada y metadatos de origen fijados. Las solicitudes idénticas repetidas se sirven desde la caché de la API REST subyacente y lo indican mediante el encabezado x-scholar-cache.
API REST
Para acceso programático fuera de clientes MCP, las mismas capacidades están disponibles como API REST en scholar-sidekick.com — de forma anónima, con una clave ssk_ gratuita de primera parte (Authorization: Bearer), o mediante RapidAPI para niveles de pago. Cualquier credencial que uses aquí también funciona allí.
Desarrollo
npm install
npm run build # Bundle to dist/mcp-server.mjs
npm test # Run tests
npm run typecheck
Licencia
MIT