Skip to main content
Glama
blanck1945

zyta-expedientes-mcp

by blanck1945
README.md
# zyta-expedientes-mcp (Clio)

Servidor MCP (stdio) para **Clio** (Expedientes): portales judiciales (PJN, MEV, CABA) y causas sin portal.

## Arquitectura

| Componente | Rol |
|------------|-----|
| **Zyta-be** | Login JWT, device flow OAuth, perfil usuario |
| **expedientes-api** | Portales, listado, sync, CRUD causas sin portal, actuaciones cursor |
| **Zyta-expedientes** (web) | Página `/mcp-device` para autorizar el agente |

El MCP autentica contra **Zyta-be** y consulta **expedientes-api** con el mismo Bearer JWT.

## Configuración en Cursor

```json
{
  "mcpServers": {
    "zyta-expedientes": {
      "command": "npx",
      "args": ["-y", "zyta-expedientes-mcp@latest"],
      "env": {
        "ZYTA_API_BASE_URL": "http://localhost:3333",
        "EXPEDIENTES_API_BASE_URL": "http://localhost:8788",
        "ZYTA_EXPEDIENTES_APP_URL": "http://localhost:8892"
      }
    }
  }
}
```

En producción:

```env
ZYTA_API_BASE_URL=https://zyta-be-production.up.railway.app
EXPEDIENTES_API_BASE_URL=https://zyta-expedientes-api-production.up.railway.app
ZYTA_EXPEDIENTES_APP_URL=https://dashboard.zyta.app
```

Opcional en Railway (Zyta-be): `MCP_DEVICE_VERIFICATION_BASE_URL=https://dashboard.zyta.app`

## Herramientas

| Tool | Descripción |
|------|-------------|
| `zyta_expedientes_login` | Device flow / email / token manual |
| `zyta_expedientes_disconnect` | Cierra sesión del agente |
| `zyta_expedientes_whoami` | Usuario actual |
| `zyta_expedientes_auth_status` | Estado + URLs |
| `zyta_expedientes_portales_status` | PJN / MEV / CABA / INPI conectados |
| `zyta_expedientes_list` | Listar expedientes (filtro por portal) |
| `zyta_expedientes_get` | Leer detalle + actuaciones |
| `zyta_expedientes_create` | Crear causa sin portal |
| `zyta_expedientes_update` | Editar causa sin portal (+ seguimiento opcional) |
| `zyta_expedientes_delete` | Borrar causa sin portal |
| `zyta_expedientes_sync` | Sincronizar portales (sin credenciales) |
| `zyta_expedientes_registrar_actuacion` | Actuación en causa sin portal |
| `zyta_expedientes_honorarios_list` | Honorarios del expediente |
| `zyta_expedientes_honorarios_create` | Alta de honorarios |
| `zyta_expedientes_honorarios_update` | Actualizar honorario |
| `zyta_expedientes_honorarios_delete` | Borrar honorario |
| `zyta_expedientes_tareas_list` | Vencimientos/tareas |
| `zyta_expedientes_tareas_create` | Nueva tarea |
| `zyta_expedientes_tareas_update` | Actualizar tarea |
| `zyta_expedientes_tareas_delete` | Borrar tarea |
| `zyta_expedientes_alertas_list` | Alarmas |
| `zyta_expedientes_alertas_create` | Nueva alarma |
| `zyta_expedientes_alertas_update` | Actualizar alarma |
| `zyta_expedientes_alertas_delete` | Borrar alarma |

Token persistido en `~/.zyta-expedientes-mcp/token`.

## Desarrollo local

```bash
cd Zyta/zyta-expedientes-mcp
npm install
npm run build
npm run dev
```

Smoke test:

1. Levantá Zyta-be, expedientes-api y Zyta-expedientes
2. En Cursor: `zyta_expedientes_login` → autorizá en http://localhost:8892/mcp-device
3. `zyta_expedientes_auth_status` → `hasToken: true`
4. `zyta_expedientes_portales_status`

## Probar el stack completo

Sí, hay que probar los tres servicios juntos:

```bash
# Terminal 1 — monolito (auth)
cd BE/Zyta-be && npm run start:dev

# Terminal 2 — microservicio expedientes
cd Zyta/expedientes-api && npm run dev

# Terminal 3 — front
cd Zyta/Zyta-expedientes && npm run dev

# Terminal 4 — MCP (via Cursor o)
cd Zyta/zyta-expedientes-mcp && npm run dev
```

Sin proxy en Zyta-be todavía, el front y el MCP apuntan **directo** a cada API por URL.

TDQS

B3.2/5.0

Scored across 24 tools

Disambiguation5/5

Each tool targets a distinct resource-action pair (e.g., alertas_create vs. alertas_delete). The CRUD groups for expedientes, alertas, honorarios, and tareas are clearly separated, and authentication and status tools are unique.

Naming Consistency5/5

All tool names follow the pattern zyta_expedientes_<resource>_<action>, with consistent use of snake_case and verb_noun ordering. The only minor variation is registrar_actuacion, which still fits the overall convention.

Tool Count4/5

24 tools is slightly above the typical 3-15 range but still reasonable for a comprehensive legal case management system covering CRUD for multiple sub-resources plus authentication and synchronization. Each tool has a clear purpose.

Completeness4/5

The tool set covers full CRUD for expedientes, alertas, honorarios, and tareas, plus authentication, portal status, and sync. Minor gaps like document attachment might exist, but core workflows are well-covered.

Maintenance

ActivityInactive
ResponsivenessNo issues