Metadata-Version: 2.4
Name: juscaba-mcp
Version: 0.1.0
Summary: MCP server for JusCABA — Buenos Aires City judicial system public API
Project-URL: Homepage, https://github.com/hernan-cc/juscaba-mcp
Project-URL: Repository, https://github.com/hernan-cc/juscaba-mcp
Project-URL: Issues, https://github.com/hernan-cc/juscaba-mcp/issues
Author: Hernán Carlos Caravario
License-Expression: MIT
License-File: LICENSE
Keywords: argentina,caba,judicial,juscaba,legal-tech,mcp
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Legal Industry
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Requires-Dist: mcp[cli]>=1.0
Description-Content-Type: text/markdown

# 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

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

## Configuración

### Claude Desktop / Claude Code

Agregá a tu configuración MCP (`~/.claude/settings.json` o `claude_desktop_config.json`):

```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.):

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.
