Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TCJ_MERGENoDesactiva la integración del inventario histórico con `0`.1
TCJ_TIMEOUTNoTimeout HTTP por request contra la sistematización (en segundos).60
TCJ_CACHE_TTLNoDuración del caché de catálogos (segundos).1800
TCJ_TOOL_TIMEOUTNoWatchdog por tool (5 min máx): toda tool responde aunque un motor cuelgue.300
TCJ_UPDATE_CHECKNoDesactiva el chequeo de versiones con `0`.1
TCJ_HISTORICO_BASENoBase del inventario histórico de resoluciones.motor oficial
TCJ_HISTORICO_TIMEOUTNoTimeout HTTP del motor histórico (en segundos).40

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
buscar_sentenciasA

Busca en el TEXTO COMPLETO de TODAS las resoluciones del Tribunal Constitucional, COMBINANDO los dos inventarios del TC en una sola vista: (a) la sistematizacion actual (indice Elasticsearch del portal, hasta 2026) y (b) el inventario historico de resoluciones (2001-2018). El server QUITA TILDES del texto (el indice NO matchea acentos) y fusiona las filas con dedup de documento.

Args: search: texto a buscar en el contenido del fallo (multi-palabra si funciona en el motor historico; el comodin '' tambien: 'funcionarios'). Con total 0 prueba otra palabra clave o pasa a busqueda_avanzada. page: pagina 1-based (cap de 1000 paginas en ambos inventarios). modo: (inventario historico) 'todas' (contenga TODAS las palabras; default), 'algunas' (contenga ALGUNAS) o 'frase' (la frase completa).

Devuelve: {'ok', 'total' (suma de ambos inventarios), 'pagina', 'tamano_pagina' (variable: hasta 20 filas por bloque), 'paginas' (maximo entre inventarios), 'siguiente_pagina', 'filas': [{index GLOBAL, numero_expediente, numero_sentencia?, demandante, demandado, fecha_publicacion, fecha_sentencia?, fecha_ingreso?, sentido?, tipo?, distrito?, sala?, tesaurio?, slug?, url_pdf, extractos/texto}], 'ms', 'nota'?}: las filas del bloque primero vienen de la sistematizacion actual y luego del inventario historico; los documentos repetidos en ambos se omiten (dedup, declarado en 'nota'). El TEXTUAL para fichas completas: detalle_sentencia (si la fila trae 'slug').

busqueda_avanzadaA

Busqueda AVANZADA del TC: texto, expediente, partes, fecha o RANGO, sentido, distrito, sala, tipo y palabras claves por id. COMBINA los dos inventarios del TC en una vista unica: los filtros aplican a ambos cuando tienen equivalente (expediente, partes, año de publicacion, tipo de proceso) y al inventario sistematizado cuando son avanzados (sentido, distrito, sala, palabras).

Args: search: texto completo (server quita tildes). Si se pasa, el inventario historico se consulta SOLO por texto (su motor no acepta otras combinaciones con texto) y 'modo' define su semantica. numero_expediente: ej '00148-2026-HC'. nombre_demandante: nombre EXACTO de la parte (ej 'Fernando Catalan Contreras'). nombre_demandado: nombre EXACTO de la entidad demandada. fecha_publicacion: 'YYYY-MM-DD' o RANGO con comas ('2020-01-01,2020-12-31'). VERIFICADO: una fecha EXACTA opera como el ANIO COMPLETO (el backend la degrada); para un dia exacto usa rango '2020-01-01,2020-01-01'. sentencia_sentido: id o nombre EXACTO ('Improcedente', 'Fundada en parte'; catalogo listar_filtros categoria='sentidos'). Solo aplica al inventario sistematizado. id_sentencia_distrito: id o nombre ('Lima'; servir listar_filtros categoria='distritos'). Solo aplica a la sistematizacion. id_sentencia_sala: id o nombre ('Sala 1'; categoria='salas'). Solo sistematizacion. id_sentencia_tipo: id o nombre ('Sentencia'; categoria='tipo'). Solo sistematizacion. palabras: ids (o nombres exactos) del catalogo de palabras (listar_palabras), separados por coma ('1,3'). Solo sistematizacion. proceso: tipo de proceso del inventario historico ('Amparo', 'Habeas Corpus', 'Cumplimiento', 'Inconstitucionalidad', 'Conflicto de Competencia', 'Habeas Data', 'Queja'; catalogo listar_filtros categoria='procesos'). Se ignora si 'search' esta presente. modo: 'todas' | 'algunas' | 'frase' (para el texto en el inventario historico; default 'todas'). page: pagina 1-based (sin cap practico en la sistematizacion; el inventario historico no pasa de 1000 paginas).

Devuelve: {'ok', 'total' (suma de inventarios), 'pagina', 'tamano_pagina' (variable), 'paginas', 'siguiente_pagina', 'filas': [{index GLOBAL, slug, numero_expediente, numero_sentencia, demandante, demandado, fecha_publicacion, fecha_sentencia?, fecha_ingreso?, sentido?, tipo?, distrito?, sala?, sistematizacion?, tesaurio?, tipo_resolucion?, url_pdf, texto? (inventario historico: sin 'extracto')}], 'ms', 'nota'?}: bloque con filas de la sistematizacion primero y del inventario historico despues; dups omitidos ('nota').

resultados_sistematizacionA

Resultados por concepto SISTEMATIZADO del TC (la vista 'sistematizacion' del portal): precedentes vinculantes, tipos de proceso (habeas corpus, amparo, cumplimiento...), y las sub-categorias del arbol. Los 'id' EXACTOS vienen de listar_sistematizaciones.

Args: sistematizaciones: id(s) separados por coma ('268' = Habeas corpus; '1' = Precedentes vinculantes; varios: '268,269'). search: texto adicional a filtrar dentro de esa sistematizacion (server quita tildes). numero_expediente: filtra por expediente adicional (ej '00148-2026-HC'). page: pagina 1-based.

Devuelve: {'ok', 'total', 'pagina', 'tamano_pagina', 'paginas', 'siguiente_pagina', 'filas': [filas comunes], 'ms', 'nota'?}: 'index' GLOBAL y 'slug' para detalle_sentencia.

resultados_tesauroA

Resultados por concepto del TESAURO del TC (acumulados con 'count' por nodo; el id viene del arbol de listar_tesauro). 'Derecho a la vida' (id de tesauro=sentencias), autos de tutela de derechos, interlocutorias.

Args: tesaurios: id(s) separados por coma del arbol ELEGIDO (ej '4' = Derecho a la vida; '1,2' = multi). tipo: 'sentencias' (default), 'autos' o 'interlocutorias' (EXACTO). page: pagina 1-based.

Devuelve: {'ok', 'total', 'pagina', 'tamano_pagina', 'paginas', 'siguiente_pagina', 'filas': [filas comunes], 'ms', 'nota'?}: ATENTO: el 'total' cuenta los documentos asignados DIRECTAMENTE al nodo; el 'count_subarbol' de listar_tesauro es el ACUMULADO de todo el subarbol (publicado por el TC) y NO coincide en nodos agregados (ej: raiz 63493 vs total directo 7; hoja '4' si cuadra con 50).

detalle_sentenciaA

FICHA COMPLETA de una sentencia/auto/interlocutoria del TC por slug: expediente, sentencia, demandante/demandado, fechas, sentido, contexto de sala, tesaurio de conceptos y fundamentos COMPLETOS (la decision integral; NUNCA truncada) y URL del PDF del TC.

Args: slug: el 'slug' de filas de los buses (ej '00148-2026-hc-1440-2026').

Devuelve: {'ok', 'slug', 'detalle': {todo el contenido publicado por el TC para esa resolucion (con 'fundamentos' COMPLETOS y 'url_archivo'/PDF)}, 'ms', 'nota'?}.

listar_tesauroA

Arbol de conceptos del TESAURO del TC NAVEGABLE (el arbol completo puede exceder el limite de contexto del cliente: NUNCA se entrega de un bote; se navega). SIN parent_id devuelve las RAICES (nivel 1) con su 'count_subarbol' (acumulado de todo el subarbol). Con parent_id devuelve el SUBARBUS del nodo hasta 'depth' niveles.

Args: tipo: 'sentencias' (default), 'autos' o 'interlocutorias'. parent_id: id del nodo padre (de una respuesta previa); omitido/'' = raices del arbol. depth: niveles de children a incluir bajo el parent (1..4; default 1; cap local a 4).

Devuelve: {'ok', 'tipo', 'parent_id', 'depth', 'nodos': [{id, nombre, slug, code, count_subarbol, children? (si depth>1)}], 'ms', 'nota'?}: cada nodo trae 'count_subarbol' (el TOTAL ACUMULADO del subarbol, publicado por el TC) y 'nota' cuando el nodo no existe o no tiene children. IMPORTANTISIMO: los 'count_subarbol' del arbol NO son el 'total' de resultados_tesauro (que cuenta solo asignaciones DIRECTAS al nodo): el acumulado suma todo el subarbol. El 'code' del TC puede NO cuadrar con la posicion del nodo (dato upstream inconsistente, ej nodo 458 con code 6.6.7 colgando de la rama 1.1.2): NAVEGA por 'id', nunca reconstruyas la ruta por 'code'.

listar_sistematizacionesA

Arbol COMPLETO de la SISTEMATIZACION del TC (6 ramas tematicas con children por tipo/nodo). Usa los 'id' en resultados_sistematizacion (ej '1' = Precedentes vinculantes, '268' = Habeas corpus).

Devuelve: {'ok', 'sistematizacion': [{id, nombre, slug, children: [...]}], 'ms'}.

listar_palabrasA

Catalogo de PALABRAS CLAVES del TC (29 603 exactas) con filtrado LOCAL por letra inicial o por contenido (sin acentos). Usa los 'id' en busqueda_avanzada(palabras='1,3').

Args: letra: letra inicial (ej 'a'); filtrado LOCAL (el backend no filtra). contiene: sub-cadena a buscar (LOCAL; sin acentos: la comparacion es case-insensitive). page: pagina del resultado FILTRADO (100 palabras por pagina). paginas: paginas consecutivas a traer en UNA llamada (1..3; si buscas mas hay 'nota' de recorte).

Devuelve: {'ok', 'total_filtradas', 'pagina', 'paginas_filtradas', 'tamano_pagina': 100, 'siguiente_pagina', 'palabras': [{id, nombre, slug}], 'ms', 'nota'?}.

listar_filtrosA

Catálogo EXACTO para busqueda_avanzada: 'tipo' (tipos de resolucion, 224 registros), 'distritos' (115), 'salas' (5), 'sentidos' (417 con patron ES 'search_elastic'), 'tipos_tesauro' (3) y 'procesos' (los 7 tipos de proceso del inventario historico). 'todos' trae SOLO el recuento de cada catalogo. Las categorias de detalle se PAGINAN localmente (100 valores por pagina; la respuesta de sentidos completa pesa ~86 KB y puede ser truncada por el cliente: usa page).

Args: categoria: 'todos' (resumen de counts) o 'tipo', 'distritos', 'salas', 'sentidos', 'tipos_tesauro', 'procesos'. page: pagina del detalle (1-based; 100 valores por pagina; solo aplica a categorias de detalle). paginas: paginas consecutivas a traer en UNA llamada (1..3; si pides mas hay 'nota' de recorte).

Devuelve: {'ok', 'categoria', 'valores': [{id, nombre, slug, search_elastic?(sentidos)}], 'total', 'pagina', 'paginas_filtradas', 'siguiente_pagina'?, 'ms', 'nota'?}: los 'id' alimentan busqueda_avanzada; los nombres son EXACTOS (el server resuelve id con nombre/slug).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 9 tools

Disambiguation3/5

The three retrieval tools overlap heavily: buscar_sentencias, busqueda_avanzada and resultados_sistematizacion all query the same two TC inventories with text/keyword filters, so an agent must read long prose to decide which to call. The descriptions do provide explicit disambiguation hints (text-only vs. multi-filter vs. concept id, and cross-references between tools), which keeps it usable but not clean. listar_tesauro/listar_sistematizaciones/listar_filtros are clearly distinct, so only the search cluster is ambiguous.

Naming Consistency4/5

All names are lowercase snake_case Spanish, and clear families emerge: listar_* for catalog/tree navigation (4 tools) and resultados_* for filtered result sets (2 tools). Minor deviations exist — buscar_sentencias (verb) vs. busqueda_avanzada (noun) vs. detalle_sentencia (noun) — but the pattern is still predictable and readable.

Tool Count5/5

Nine tools is well-scoped for a jurisprudence search server with two inventories, two concept trees (tesauro and sistematizacion), a keyword catalog and a filter catalog. Each tool has a clear job and none feels like filler.

Completeness4/5

The surface covers the full read-only lifecycle: discovery (filtros, palabras, sistematizaciones, tesauro trees), search (full-text and multi-filter), and full-record retrieval via slug with PDF URL. Minor gaps: no way to fetch or page through PDF/binary content, and the heavy overlap between the three search tools suggests the surface could be consolidated rather than extended.

Maintenance

ActivityMaintained
ResponsivenessNo issues