Skip to main content
Glama

juba-mcp

Servidor MCP para buscar en JUBA (Jurisprudencia de Buenos Aires), la base de datos de sumarios de fallos de la Suprema Corte de la Provincia de Buenos Aires.

Permite que cualquier cliente de IA (Claude Desktop, Cursor, Windsurf, VS Code, Claude Code, etc.) busque sumarios y acceda al texto completo de fallos de jurisprudencia bonaerense.

Instalación rápida

Hacé click en el botón de tu editor:

Claude Code

claude mcp add juba -- uvx juba-mcp

Claude Desktop

Agregar a claude_desktop_config.json:

{
  "mcpServers": {
    "juba": {
      "command": "uvx",
      "args": ["juba-mcp"]
    }
  }
}

pip / uvx

pip install juba-mcp    # instalar globalmente
uvx juba-mcp            # ejecutar sin instalar

Requiere uv para uvx, o Python 3.10+ para pip.

Related MCP server: bora-mcp

Herramientas

Herramienta

Descripción

juba_search

Búsqueda rápida por palabras clave en sumarios

juba_advanced_search

Búsqueda avanzada con filtros por campo, tipo de fallo, fecha

juba_get_fallo

Obtener el texto completo de un fallo por su ID numérico

Ejemplos de uso

Una vez configurado, tu cliente de IA puede:

  • "Buscame jurisprudencia sobre prescripción en consumo" — busca sumarios en materia civil

  • "Jurisprudencia laboral sobre despido sin causa" — busca en materia laboral

  • "Fallos sobre phishing bancario en Buenos Aires" — busca responsabilidad bancaria

  • "Buscá sentencias definitivas sobre daño moral desde 2020" — usa filtros avanzados

  • "Dame el texto completo del fallo 191298" — descarga el fallo íntegro

Materias disponibles

Materia

Clave

Civil y Comercial

civil (default)

Laboral

laboral

Penal

penal

Contencioso Administrativa

contencioso

Inconstitucionalidad

inconstitucionalidad

Conflicto de Poderes

conflicto

Enjuiciamiento de Magistrados

enjuiciamiento

Todos

todos

Campos de búsqueda avanzada

Campo

Descripción

texto_sumario

Texto del sumario (default)

voces

Descriptores temáticos

caratula

Carátula de la causa

texto_completo

Texto completo del fallo

tribunal_emisor

Tribunal que emitió el fallo

juez_voto

Juez del voto

codigo_norma

Código de la norma citada

nro_norma

Número de la norma

Datos por resultado

Cada sumario incluye:

  • ID: Código único del sumario (ej. B4501004)

  • id_fallo: ID numérico del fallo (usar con juba_get_fallo para texto completo)

  • Voces: Descriptores temáticos jerárquicos

  • Texto: Texto completo del sumario

  • Normas: Artículos y leyes citadas

  • Fallo: Tribunal, fecha, tipo (sentencia/interlocutoria), carátula, magistrados

Texto completo del fallo

Usando el id_fallo de los resultados de búsqueda, se puede obtener el texto íntegro del fallo judicial (típicamente 30-100K caracteres), incluyendo:

  • Metadata: tribunal, carátula, fecha, tipo, magistrados, tribunal de origen

  • Texto completo de la sentencia con todos los votos

Cómo funciona

JUBA es una aplicación ASP.NET WebForms sin API JSON pública. Este servidor realiza scraping HTTP estructurado: obtiene tokens de sesión (ViewState), envía búsquedas vía POST, y parsea las respuestas HTML para extraer los datos.

No se usa browser automation — el scraping es directo vía HTTP, lo que lo hace rápido y liviano.

Limitaciones

  • Máximo ~20 resultados por búsqueda — JUBA devuelve los primeros 20 sumarios por página.

  • Dependiente del HTML — cambios en el diseño de JUBA pueden romper el parser. Si esto pasa, reportar un issue.

Licencia

MIT

Available Tools

3 tools
juba_get_falloA

Retrieve the full text of a court ruling by its numeric ID.

Use id_fallo values from search results to get the complete ruling text,
including the full judicial reasoning, not just the summary.

Args:
    id_fallo: Numeric ruling ID from search results (e.g., 191298).

Returns:
    JSON with metadata (tribunal, caratula, fecha) and full ruling text.
ParametersJSON Schema
NameRequiredDescriptionDefault
id_falloYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it retrieves full text (implying a read-only operation), specifies the input source ('from search results'), and outlines the return structure ('JSON with metadata and full ruling text'). However, it doesn't mention potential limitations like error handling, rate limits, or authentication needs, which could be relevant for a complete behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the core purpose, followed by usage guidance and detailed parameter/return explanations. Every sentence adds value: the first states what it does, the second specifies when to use it, and the subsequent sections clarify inputs and outputs without redundancy. It's appropriately sized for a single-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter, no nested objects) and the presence of an output schema (which handles return value documentation), the description is complete. It covers purpose, usage context, parameter semantics, and behavioral aspects adequately, leaving no significant gaps for an AI agent to understand and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must fully compensate. It does so by clearly explaining the parameter 'id_fallo' as a 'numeric ruling ID from search results' with an example (e.g., 191298), adding crucial semantic context beyond the schema's basic type and title. This provides all necessary information for correct usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('retrieve the full text of a court ruling') and resource ('by its numeric ID'), distinguishing it from sibling tools like juba_search and juba_advanced_search which presumably return search results rather than full ruling texts. It explicitly mentions getting 'complete ruling text, including the full judicial reasoning, not just the summary,' which establishes its unique purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: 'Use id_fallo values from search results to get the complete ruling text.' This directly links it to sibling tools (juba_search, juba_advanced_search) by specifying that the input should come from their outputs, clearly indicating the workflow and alternative tools for different purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.2.0
    • First observedjuba_advanced_search
    • First observedjuba_get_fallo
    • First observedjuba_search

TDQS

A4.6/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: juba_advanced_search offers field-specific filtering, juba_get_fallo retrieves full ruling text by ID, and juba_search provides basic keyword search for summaries. There is no overlap in functionality, making tool selection unambiguous for an agent.

Naming Consistency5/5

All tool names follow a consistent 'juba_' prefix with descriptive snake_case suffixes (advanced_search, get_fallo, search). This predictable pattern enhances readability and coherence across the tool set.

Tool Count5/5

With 3 tools, the server is well-scoped for its domain of accessing court rulings. Each tool earns its place by covering distinct aspects: basic search, advanced search, and full-text retrieval, avoiding bloat or thin coverage.

Completeness5/5

The tool surface provides complete coverage for the domain of court ruling access: search (basic and advanced) and retrieval of full texts. There are no obvious gaps, as agents can find rulings and access their details without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server for searching and extracting official announcements, decrees, and resolutions from the Argentine Official Gazette (Boletín Oficial de la República Argentina). It enables LLMs to perform real-time searches and retrieve verbatim legal text with complete juridical fidelity.
    14
    19 npm
    3
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that enables searching and retrieving judicial decisions from the Uruguayan National Public Jurisprudence Database (BJN).
    -