juba-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@juba-mcpBuscá jurisprudencia sobre despido sin causa en materia laboral"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpClaude 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 instalarRequiere uv para
uvx, o Python 3.10+ parapip.
Related MCP server: bora-mcp
Herramientas
Herramienta | Descripción |
| Búsqueda rápida por palabras clave en sumarios |
| Búsqueda avanzada con filtros por campo, tipo de fallo, fecha |
| 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 |
|
Laboral |
|
Penal |
|
Contencioso Administrativa |
|
Inconstitucionalidad |
|
Conflicto de Poderes |
|
Enjuiciamiento de Magistrados |
|
Todos |
|
Campos de búsqueda avanzada
Campo | Descripción |
| Texto del sumario (default) |
| Descriptores temáticos |
| Carátula de la causa |
| Texto completo del fallo |
| Tribunal que emitió el fallo |
| Juez del voto |
| Código de la norma citada |
| 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_fallopara 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 toolsjuba_advanced_searchA
Advanced search on JUBA with field-specific filtering.
Searches across specific fields like summary text, voces (legal topics),
case caption (caratula), full ruling text, or cited norms.
Args:
query: Search terms. Supports etiquetas like "Caratula:Garcia" or "TipoFallo:S".
fields: Which fields to search in. Default: ["texto_sumario"].
Options: materia, voces, nro_causa, caratula, texto_sumario,
juez_voto, codigo_norma, nro_norma, anio_norma,
texto_completo, tribunal_emisor.
tipo_fallo: Filter by ruling type. S=Definitiva, I=Interlocutoria, P=Plenario.
fecha_desde: Start date filter (DD/MM/YYYY).
fecha_hasta: End date filter (DD/MM/YYYY).
Returns:
JSON with total count and result list with same structure as juba_search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| fields | No | ||
| tipo_fallo | No | ||
| fecha_desde | No | ||
| fecha_hasta | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the search behavior, field options, and return format, but doesn't mention rate limits, authentication requirements, pagination behavior, or error conditions. It adequately describes what the tool does but lacks operational details an agent might need for robust invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, args, returns) and uses bullet-like formatting for parameters. Every sentence adds value, though the field options list is quite long. It's appropriately sized for a 5-parameter advanced search tool, though could be slightly more concise in the fields enumeration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters with no schema descriptions and an output schema present, the description provides excellent parameter documentation and clarifies the return structure references 'juba_search'. It covers the core functionality well, though additional behavioral context (like rate limits or authentication) would make it more complete for a search tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by providing detailed parameter semantics: it explains query supports specific etiquetas syntax, lists all field options with their meanings, decodes tipo_fallo values (S=Definitiva, etc.), and specifies date format (DD/MM/YYYY). This adds substantial value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'Advanced search on JUBA with field-specific filtering' and specifies it searches across specific fields like summary text, legal topics, case caption, etc. It distinguishes from sibling 'juba_search' by emphasizing field-specific filtering and advanced capabilities, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'advanced search' and listing specific searchable fields, suggesting this is for more targeted queries than basic search. However, it doesn't explicitly state when to use this versus 'juba_search' or 'juba_get_fallo', nor does it provide exclusion criteria or prerequisites for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id_fallo | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
juba_searchA
Search JUBA for court decision summaries (sumarios) by keyword.
Args:
query: Search terms (e.g., "consumidor vicio", "prescripción laboral").
materia: Legal subject area. Options: civil, laboral, penal, contencioso,
inconstitucionalidad, conflicto, enjuiciamiento, todos.
Default: civil.
limit: Maximum results to return (up to 15 per page).
Returns:
JSON with total count, tab counts (text vs voces vs full text matches),
and result list. Each result has: id, voces (legal topics), texto (summary text),
normas (cited statutes), and fallo metadata (tribunal, fecha, caratula, magistrados).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| materia | No | civil | |
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it specifies the return format (JSON with specific fields), pagination behavior (up to 15 per page), and default values for materia and limit parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured and front-loaded: purpose statement first, then parameter details, then return format. Every sentence earns its place with essential information, and there's no redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no annotations, but with output schema), the description is remarkably complete. It covers purpose, parameters with semantics and defaults, behavioral constraints, and return format - providing everything an agent needs despite the sparse structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds substantial meaning beyond the bare input schema (0% coverage). It provides query examples, lists all materia options with their default, explains the limit constraint, and clarifies the return structure - all crucial information not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Search') and resource ('JUBA for court decision summaries (sumarios)'), distinguishing it from siblings by focusing on keyword-based search rather than advanced search or retrieving specific fallo details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (searching by keyword) and implies alternatives through sibling tool names, but doesn't explicitly state when to choose juba_advanced_search or juba_get_fallo instead.
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.
3 tool updates
v0.2.0- First observed
juba_advanced_search - First observed
juba_get_fallo - First observed
juba_search
TDQS
Scored across 3 tools
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.
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.
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.
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
Related MCP Connectors
AI governance MCP server for EU AI Act compliance and jurisdiction verification
Connect AI to millions of laws and court cases with the Lawstronaut MCP.
Search German and EU law from official sources with your AI assistant. PRIMAMCP provides citable legal texts via MCP, with daily updates and hosting in Germany.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceRemote MCP server that provides access to over 285K Argentine court rulings and user's own case files via Streamable HTTP transport.-
- AlicenseAqualityCmaintenanceMCP 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.1419 npm3MIT
- AlicenseNot gradedqualityDmaintenanceA specialized MCP server for Argentine legal professionals, enabling legal research, document processing, case analysis, and practice management through integration with official Argentine legal databases.8MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that enables searching and retrieving judicial decisions from the Uruguayan National Public Jurisprudence Database (BJN).-