Skip to main content
Glama
urantia-hub

urantia-papers

Official

API de los Documentos de Urantia

Una API amigable para desarrolladores y agentes de IA para los Documentos de Urantia. Proporciona búsqueda de texto completo, acceso a contenido estructurado y URLs de audio para los más de 14,500 párrafos en 197 documentos.

Endpoints de la API

Método

Ruta

Descripción

GET

/toc

Tabla de contenidos (partes → documentos)

GET

/papers

Listar los 197 documentos

GET

/papers/:id

Un documento con todos sus párrafos

GET

/papers/:id/sections

Secciones dentro de un documento

GET

/paragraphs/random

Párrafo aleatorio

GET

/paragraphs/:ref

Párrafo por cualquier formato de ID

GET

/paragraphs/:ref/context

Párrafo con contexto circundante

POST

/search

Búsqueda de texto completo con paginación

GET

/audio/:paragraphId

Información de audio para un párrafo

POST

/search/semantic

Búsqueda semántica (vectorial)

GET

/entities

Listar entidades (seres, lugares, conceptos, etc.)

GET

/entities/:id

Detalles de la entidad

GET

/entities/:id/paragraphs

Párrafos que mencionan una entidad

GET

/cite

Generar cita (APA, MLA, Chicago, BibTeX)

GET

/og/:ref

Imagen dinámica Open Graph

POST

/embeddings

Embeddings vectoriales para párrafos

GET

/me

Perfil de usuario (requiere autenticación)

POST

/me/bookmarks

Crear marcador (requiere autenticación)

GET

/me/bookmarks

Listar marcadores (requiere autenticación)

GET

/me/notes

Listar notas (requiere autenticación)

POST

/me/notes

Crear nota (requiere autenticación)

GET

/me/reading-progress

Progreso de lectura (requiere autenticación)

GET

/me/preferences

Preferencias de usuario (requiere autenticación)

POST

/auth/authorize

Obtener código de autorización (requiere autenticación)

POST

/auth/token

Intercambiar código por token

GET

/auth/apps/:id

Obtener información de la aplicación OAuth

Documentación interactiva disponible en /docs (Swagger UI). Especificación OpenAPI en /openapi.json.

SDKs

Los SDKs oficiales de TypeScript están disponibles en npm:

npm install @urantia/api    # Typed client for all endpoints
npm install @urantia/auth   # OAuth client for accounts.urantiahub.com

Consulta urantia.dev/sdks para obtener la documentación.

Formatos de ID de Párrafo

La API acepta tres formatos de referencia, detectados automáticamente a partir de la cadena:

Formato

Ejemplo

Estructura

globalId

1:2.0.1

partId:paperId.sectionId.paragraphId

standardReferenceId

2:0.1

paperId:sectionId.paragraphId

paperSectionParagraphId

2.0.1

paperId.sectionId.paragraphId

Búsqueda

curl -X POST https://api.urantia.dev/search \
  -H "Content-Type: application/json" \
  -d '{"q": "Universal Father", "limit": 10, "type": "and"}'

Modos de búsqueda: and (todas las palabras, predeterminado), or (cualquier palabra), phrase (coincidencia exacta). Filtros opcionales: paperId, partId.

Audio

Los párrafos incluyen un campo audio: un objeto anidado indexado por modelo y voz, o null si no existe audio:

{
  "audio": {
    "tts-1-hd": {
      "nova": { "format": "mp3", "url": "https://audio.urantia.dev/tts-1-hd-nova-3:119.1.5.mp3" },
      "echo": { "format": "mp3", "url": "https://audio.urantia.dev/tts-1-hd-echo-3:119.1.5.mp3" }
    }
  }
}

Los modelos y voces disponibles varían según el párrafo. El endpoint dedicado /audio/:paragraphId devuelve solo los datos de audio para un párrafo determinado.

Caché

Las respuestas incluyen encabezados Cache-Control. La CDN de Cloudflare realiza caché en el borde mediante s-maxage:

Ruta

CDN (s-maxage)

Navegador (max-age)

/toc, /papers/*, /paragraphs/:ref, /audio/*

24 horas

1 hora

/search

1 hora

5 minutos

/paragraphs/random

no-store

no-store

/, /docs, /openapi.json

1 hora

5 minutos

Para Agentes de IA

Flujo recomendado:

  1. GET /toc — comprender la estructura del libro

  2. POST /search — encontrar pasajes relevantes

  3. GET /paragraphs/:ref/context?window=3 — obtener contexto circundante

  4. GET /papers/:id — leer un documento completo

Servidor MCP

La API incluye un servidor MCP integrado en https://api.urantia.dev/mcp: conecta Claude Desktop, Cursor o cualquier cliente MCP para acceder a:

  • 13 herramientas — búsqueda, búsqueda de párrafos, navegación por documentos, navegación de entidades, audio

  • 2 plantillas de recursosurantia://paper/{id} (markdown) y urantia://entity/{id}

  • 2 plantillas de promptsstudy_assistant, comparative_theology

Instalación con un clic a través de Smithery.

Autenticación

Los endpoints públicos no requieren autenticación. Los endpoints de usuario (/me/*) requieren un JWT. Flujo OAuth:

  1. Registra una aplicación mediante POST /auth/apps (administrador) o autoservicio en accounts.urantiahub.com/developer

  2. El usuario inicia sesión en accounts.urantiahub.com

  3. Intercambia el código de autorización por un token de acceso mediante POST /auth/token

  4. Pasa el token como Authorization: Bearer <token>

Los tokens de acceso son JWTs HS256 con una caducidad de 7 días. PKCE es compatible para aplicaciones basadas en navegador.

Observabilidad

  • Registro: BetterStack mediante @logtail/edge — registros JSON estructurados con metadatos de solicitud

  • Seguimiento de errores: El manejador de errores global envía seguimientos de pila a BetterStack

  • Verificación de estado: GET /health — verifica la conectividad con la base de datos

  • Tiempo de actividad: Monitor de tiempo de actividad de BetterStack

Stack Tecnológico

Desarrollo

# Install dependencies
bun install

# Set up environment
cp .env.example .env
# Edit .env with your Supabase DATABASE_URL

# Push schema to database
bun run db:push

# Set up full-text search (run after db:push)
bun scripts/run-fts-setup.ts

# Generate audio manifest (requires ../urantia-hub-api)
bun run generate-manifest

# Seed database from urantia-papers-json
bun run seed

# Start dev server (hot reload)
bun run dev

El servidor se ejecuta en http://localhost:3000 de forma predeterminada.

Despliegue

Desplegado en Cloudflare Workers. Configuración inicial:

npx wrangler login
npx wrangler secret put DATABASE_URL
# paste your Supabase connection string (use pooler port 6543)

npx wrangler secret put APP_JWT_SECRET
# paste a 64-byte hex secret: node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"

npx wrangler secret put ADMIN_USER_IDS
# comma-separated Supabase user UUIDs for admin access

Desplegar:

bun run deploy

Datos

Contenido obtenido de urantia-papers-json — 197 documentos, 1,626 secciones, más de 14,500 párrafos con narración de audio a través de audio.urantia.dev.

Licencia

Este proyecto tiene licencia MIT License.

Descargo de responsabilidad

Este es un proyecto comunitario independiente de Adams Technologies LLC. No está afiliado, respaldado ni conectado con la Fundación Urantia. El texto original en inglés de El Libro de Urantia es de dominio público (Michael Foundation v. Urantia Foundation, 10th Cir. 2003). Todo uso de "Urantia" es un uso justo nominativo para identificar el tema.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/urantia-hub/urantia-dev-api'

If you have feedback or need assistance with the MCP directory API, please join our Discord server