juscaba-mcp 0.3.1
Buenos Aires City courts MCP server for JusCABA. Search cases by party name or case number, read court proceedings and filings, list parties involved, and download judicial documents as PDFs. Access the full public docket of CABA's judicial system.
Requires Python: >=3.10
Keywords: argentina, caba, judicial, juscaba, legal-tech, mcp

<!-- mcp-name: io.github.hernan-cc/juscaba-mcp -->
# juscaba-mcp

Servidor MCP para el sistema judicial de la Ciudad de Buenos Aires. Conectá cualquier IA (Claude, ChatGPT, Gemini) al portal público de JusCABA.

Buscá causas por nombre, consultá actuaciones, partes, descargá PDFs. Todos los datos son públicos — no requiere credenciales.

## Instalación

### Opción 1: Claude Desktop (doble click)

Descargá [`juscaba.mcpb`](https://github.com/hernan-cc/juscaba-mcp/releases/latest/download/juscaba.mcpb) y hacé doble click. Se instala solo.

### Opción 2: pip / uvx (una línea)

```bash
pip install juscaba-mcp
```

### Opción 3: Desde el código fuente

```bash
git clone https://github.com/hernan-cc/juscaba-mcp.git
cd juscaba-mcp && pip install -e .
```

## Configuración por cliente

### Claude Desktop

Si instalaste el `.mcpb`, ya está configurado. Si usaste pip, agregá a tu config:

```json
{
  "mcpServers": {
    "juscaba": {
      "command": "uvx",
      "args": ["juscaba-mcp"]
    }
  }
}
```

### Claude Code

```json
{
  "mcpServers": {
    "juscaba": {
      "command": "juscaba-mcp"
    }
  }
}
```

### ChatGPT (Developer Mode)

Levantá el servidor en modo HTTP:

```bash
juscaba-mcp --http 8000
```

Después agregá `http://localhost:8000` como conector MCP en ChatGPT → Settings → Connectors → Developer Mode.

### Gemini CLI

```json
{
  "mcpServers": {
    "juscaba": {
      "command": "juscaba-mcp"
    }
  }
}
```

## Herramientas disponibles

| Herramienta | Descripción |
|-------------|-------------|
| `juscaba_search` | Buscar causas por nombre de persona (parte, abogado, sujeto) |
| `juscaba_case_header` | Obtener CUIJ, carátula, estado administrativo, fecha de inicio |
| `juscaba_case_details` | Obtener tribunal, objeto de juicio, ubicación actual, monto |
| `juscaba_case_fuero` | Obtener fuero (CAyT, PCyF, etc.) |
| `juscaba_list_proceedings` | Listar actuaciones: escritos, despachos, cédulas, notas |
| `juscaba_list_parties` | Listar partes con roles, domicilios y representantes |
| `juscaba_related_cases` | Listar causas relacionadas (incidentes, apelaciones) |
| `juscaba_last_action` | Obtener última novedad (para monitoreo de cambios) |
| `juscaba_has_sentence` | Verificar si la causa tiene sentencia |
| `juscaba_list_attachments` | Listar PDFs adjuntos de una actuación |
| `juscaba_download_pdf` | Descargar un PDF adjunto |

## Ejemplos de uso

Una vez conectado, preguntale a tu IA:

- "Buscá las causas de Juan García en CABA"
- "Mostrá las actuaciones del expediente 3389017"
- "¿Quiénes son las partes en esta causa?"
- "Descargá la demanda"
- "¿Tiene sentencia esta causa?"
- "¿Cuál fue la última novedad?"

### Flujo típico

```
1. juscaba_search("garcía juan")           → 150 causas encontradas
2. juscaba_case_header(exp_id=3389017)      → carátula, estado, CUIJ
3. juscaba_list_proceedings(exp_id=3389017)  → 3 actuaciones
4. juscaba_list_attachments(act_id=53196910) → 1 PDF adjunto
5. juscaba_download_pdf(aac_id=9100243, ...) → PDF descargado a /tmp/
```

## Cómo funciona

JusCABA (eje.juscaba.gob.ar) expone una API REST pública para consultar expedientes. Este servidor MCP envuelve esos endpoints y los hace accesibles desde cualquier cliente de IA compatible con MCP.

- **Sin credenciales** — toda la información es pública
- **Sin Playwright** — llamadas HTTP directas (rápido y liviano)
- **Sin estado** — cada consulta es independiente
- **Rate limiting propio** — 100ms entre requests para ser buen ciudadano

## Adaptación a otras jurisdicciones

Este servidor se puede usar como plantilla para otros sistemas judiciales argentinos (PJN, Santa Fe, Córdoba, etc.).

**¿Querés explorar tu jurisdicción?** Usá [judicial-recon](https://github.com/hernan-cc/judicial-recon) — una skill interactiva que guía a una IA a descubrir y mapear cualquier portal judicial en ~20 minutos.

Si ya sabés qué endpoints tiene tu portal:

1. Forkeá este repo
2. Modificá `config.py` con la URL base de la nueva API
3. Mapeá los endpoints de la jurisdicción a herramientas MCP
4. Actualizá los docstrings con detalles específicos de la jurisdicción

### Portales judiciales con API pública conocida

| Jurisdicción | Portal | API pública |
|-------------|--------|-------------|
| **CABA** | eje.juscaba.gob.ar | ✅ Este proyecto |
| **PJN** | pjn.gov.ar | Por investigar |
| **Santa Fe** | sisfe.justiciasantafe.gov.ar | Requiere credenciales |
| **Córdoba** | sae.justiciacordoba.gob.ar | Por investigar |

Si encontrás una API pública en otra jurisdicción, abrí un issue o un PR.

## Desarrollo local

```bash
git clone https://github.com/hernan-cc/juscaba-mcp.git
cd juscaba-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

# Probar que funciona
juscaba-mcp  # Arranca en modo stdio
juscaba-mcp --http 8000  # Arranca en modo HTTP
```

## Licencia

MIT — usalo, modificalo, distribuilo como quieras.