# MCP Server — Digifact

> Servidor MCP (Model Context Protocol) que expone la documentación Digifact a asistentes de IA. Compatible con cualquier cliente que implemente MCP.


## URL del servidor

- **Público:** `https://documentacion.digifact.com/mcp/sse`

## Configuración por cliente

### Claude Desktop / Cursor / Windsurf / Kiro

```json
{
  "mcpServers": {
    "digifact": {
      "url": "https://documentacion.digifact.com/mcp/sse"
    }
  }
}
```

## Autenticación (2 pasos, credenciales TEST)

Las consultas de contenido requieren un `access_token` POR PAÍS, obtenido con el tool `country_login` usando las credenciales de PRUEBA (TEST) del país — las mismas Username/Password del ambiente de pruebas de la API que Digifact entrega a todo cliente.

1. `country_login { country, username, password }` → devuelve `access_token` con el mismo vencimiento que el token del API del país (el password no se almacena).
2. Pasá ese `access_token` en el parámetro `access_token` de cada tool de contenido. El token solo autoriza consultas de SU país.

El login NO invalida los tokens que ya tengas en uso: el API permite tokens simultáneos, así que tu integración de pruebas sigue certificando normalmente.

Quedan abiertos sin token: `list_countries` y `get_country_info`.

## Tools disponibles

### Vitrina (sin token)
- `list_countries` — lista de países disponibles
- `get_country_info` — info general del país

### Autenticación
- `country_login` — login por país con credenciales TEST → access_token (hereda el vencimiento del API)

### API y país (requieren access_token)
- `list_endpoints` — endpoints API por país
- `get_endpoint` — doc completa de un endpoint
- `search_docs` — búsqueda full-text (limitada al país del token)

### Generación de NUC (requieren access_token)
- `generate_nuc_template` — esqueleto de NUC por DocType (con reglas y preguntas obligatorias)
- `get_required_fields` — campos obligatorios por DocType
- `get_complement_for_doctype` — complementos requeridos
- `get_nuc_schema` — XSD o JSON Schema oficial

### Exploración del NUC (requieren access_token)
- `get_nuc_field` — detalle de un campo por ID (R01, A02, B051, etc.)
- `list_nuc_fields_by_section` — campos por conjunto (R/A/B/C/D/E/F)
- `get_doctypes` — catálogo de DocTypes
- `get_catalog` — catálogos cerrados (AfiliacionIVA, Impuestos, etc.)

### Ejemplos (requieren access_token)
- `list_examples` — 46 ejemplos NUC con filtros
- `get_example` — contenido completo de un ejemplo
