La API v1 y el servidor MCP
Nueve verbos sobre HTTP con una clave, respuestas en JSON o Markdown, y un servidor MCP con OAuth para Claude, Cursor y otros agentes. Límites, alcances, errores y ejemplos para copiar.
Revisado el Esta página en Markdown
En una frase
Todo lo que hace la aplicación con tus documentos se puede hacer desde fuera con una cabecera Authorization: Bearer sch_… y nueve verbos. La guía completa, con una sesión grabada de verdad, está en /api; la especificación, en OpenAPI 3.1; y las instrucciones para modelos, en /api/v1/llms.txt.
Los verbos
Base: https://scholaris-v2.jlsf2005.workers.dev/api/v1
| Método | Ruta | Qué hace |
|---|---|---|
| POST | /documentos | Sube un fichero (cuerpo crudo, multipart con «archivo» o JSON con «url») |
| GET | /documentos | Lista la biblioteca (q, estado, cursor; hasta 200 por página) |
| GET | /documentos/{id} | La ficha; con esperar=30 espera a que esté leído |
| DELETE | /documentos/{id} | Lo borra con todo lo derivado |
| GET | /documentos/{id}/texto | El texto por página impresa, [página física] o tramo de tiempo |
| GET, POST | /buscar | Busca pasajes (k hasta 50) |
| POST | /preguntar | Responde con notas comprobadas; por eventos con stream |
| POST | /citar | Tu texto (o tu .docx) con las citas y la bibliografía |
| POST | /verificar | ¿Respalda tu biblioteca una afirmación? |
Cualquier lectura admite formato=markdown o la cabecera Accept: text/markdown. Lo que tarda (subir y citar) espera por defecto; con esperar=0 o Prefer: respond-async responde 202 con progreso_url.
export SCHOLARIS=sch_… # Ajustes → Claves de API
# Subir (espera a que esté leído, hasta 60 s; si tarda más, 202 y progreso_url)
curl -s "https://scholaris-v2.jlsf2005.workers.dev/api/v1/documentos?nombre=articulo.pdf" -H "Authorization: Bearer $SCHOLARIS" \
-H "Content-Type: application/pdf" --data-binary @articulo.pdf
# Buscar, en Markdown
curl -sG https://scholaris-v2.jlsf2005.workers.dev/api/v1/buscar -H "Authorization: Bearer $SCHOLARIS" \
--data-urlencode "q=atención escalada" -d k=5 -d formato=markdown
# Verificar una afirmación
curl -s https://scholaris-v2.jlsf2005.workers.dev/api/v1/verificar -H "Authorization: Bearer $SCHOLARIS" -H "Content-Type: application/json" \
-d '{"afirmacion": "El Transformer prescinde de la recurrencia."}'from scholaris.api import Scholaris
s = Scholaris("sch_…") # o la variable SCHOLARIS_CLAVE
doc = s.subir("articulo.pdf") # también una URL
for p in s.buscar("atención escalada", k=3):
print(p["cita"], p["texto"][:80], p["enlace"])Claves y alcances
Las claves se crean en Ajustes → Claves de API y se enseñan una sola vez; Scholaris solo guarda su huella SHA-256. Pueden caducar al cabo de los días que elijas. Cada clave tiene alcances:
- lectura
- buscar, leer, preguntar y verificar.
- escritura
- subir y borrar documentos, y citar un texto entero (la autocita guarda su trabajo).
- mcp
- usar la clave en el servidor MCP.
Sin alcances explícitos, una clave nueva tiene lectura y mcp.
Límites
| Gratis | Pro | |
|---|---|---|
| Peticiones por minuto | 120 | 600 |
| Búsquedas al día | 100 | 5000 |
| Autocitas al mes | 5 | 500 |
| Páginas o minutos leídos al mes | 1500 | 60 000 |
| Fichero por petición en la API v1 | 95 MB | 95 MB |
Al pasarse del ritmo se recibe un 429 con Retry-After; al agotar una cuota, un 402 (cuota_superada o requiere_pro). Para reintentar sin duplicar, Idempotency-Key en subir y citar: con la misma clave, durante 24 horas, se devuelve el mismo recurso. Un fichero idéntico (misma huella) devuelve el que ya había, con duplicado: true.
Errores
Todos tienen la misma forma, con el mensaje en castellano y en inglés:
{ "error": { "codigo": "prohibido", "mensaje": "Esta clave de API es de solo lectura.", "message": "This key is not allowed to do that.", "estado": 403, "documentacion": "https://scholaris-v2.jlsf2005.workers.dev/api#errores" } }Códigos: no_autenticado (401), prohibido (403), peticion_invalida (400), no_encontrado (404), conflicto (409), demasiado_grande (413), cuota_superada y requiere_pro (402), limite_de_ritmo (429), proveedor_fallo (502), no_disponible e interno.
El servidor MCP
En https://scholaris-v2.jlsf2005.workers.dev/mcp, por HTTP («Streamable HTTP», sin estado). Ofrece cuatro herramientas:
| Herramienta | Qué hace |
|---|---|
| search | Búsqueda híbrida; pasajes con su localizador exacto |
| cite | Cita CSL de un fragmento o de un documento, en el estilo y la lengua que se pidan |
| open_page | El texto entero de una página, por posición física o por folio impreso |
| verify_claim | Veredicto sobre una afirmación, con los pasajes que la apoyan o la contradicen |
Para conectarse hay dos caminos:
- OAuth 2.1, para Claude (web y escritorio) y cualquier cliente que lo hable: Ajustes → Conectores → Añadir conector personalizado, con la dirección
https://scholaris-v2.jlsf2005.workers.dev/mcp. El cliente se registra solo, tú entras en Scholaris y concedes acceso. Ese acceso es de solo lectura: buscar, abrir páginas, citar y verificar; no puede subir, cambiar ni borrar. Los tokens duran una hora y se renuevan. - Una clave con el alcance
mcp, para Claude Code, Cursor, Windsurf y los demás:
claude mcp add --transport http scholaris https://scholaris-v2.jlsf2005.workers.dev/mcp \
--header "Authorization: Bearer sch_…"{
"mcpServers": {
"scholaris": {
"url": "https://scholaris-v2.jlsf2005.workers.dev/mcp",
"headers": { "Authorization": "Bearer sch_…" }
}
}
}Los metadatos de OAuth están donde los buscan los clientes: /.well-known/oauth-authorization-server y /.well-known/oauth-protected-resource/mcp. Hay además una tarjeta del servidor en /.well-known/mcp/server-card.json.
Para agentes
Las reglas de uso (citar solo lo que devuelve la API, copiar la cita tal cual, dar el enlace, decir cuándo no se encuentra nada) están en la hoja para agentes.