Skip to main content

MCP server para integrar VeriFactu (AEAT) con Claude Code y Cursor

Project description

verifactu-mcp

Servidor MCP para integrar VeriFactu (AEAT) con Claude Code y Cursor.

Permite generar, encadenar y enviar registros de facturación electrónica desde lenguaje natural, sin necesidad de leer la documentación técnica de la AEAT.


Herramientas disponibles

Herramienta Descripción
generate_invoice_xml Genera XML válido con hash SHA-256 encadenado (sin enviar)
send_invoice Envía registro de alta a la AEAT via API y persiste la huella
cancel_invoice Envía registro de anulación
check_invoice_status Consulta el estado de un registro
list_invoices Lista los registros enviados (filtros opcionales por emisor y paginación)
get_last_hash Devuelve la última huella registrada localmente para un emisor
calculate_hash Calcula el hash SHA-256 de cualquier registro

El encadenamiento real lo gestiona la API verifactuapi.es internamente (vía previous_id). El servidor MCP persiste la huella canónica que devuelve la API en SQLite local (~/.verifactu-mcp/state.db) como audit log, no como mecanismo de encadenamiento operativo. La herramienta get_last_hash consulta ese log.

calculate_hash y la huella huella_local_estimada de send_invoice son estimaciones heurísticas para inspección — la huella canónica AEAT incluye el timestamp server-side y solo el servidor puede generarla.

Smoke test contra sandbox

$env:VERIFACTU_API_TOKEN = "<tu_token_sandbox>"
python smoke_test.py <id_emisor> [nif_receptor]

Ejecuta list_invoices + send_invoice (¡emite registro real en sandbox!) + check_invoice_status + get_last_hash. NO ejecutar contra producción.


Instalación

# 1. Clona el repositorio
git clone https://github.com/tuusuario/verifactu-mcp
cd verifactu-mcp

# 2. Instala las dependencias
pip install -e .

Configuración en Claude Code

Tras pip install -e ., el script verifactu-mcp queda disponible globalmente. Añade esto a tu ~/.claude.json (o claude_desktop_config.json):

{
  "mcpServers": {
    "verifactu": {
      "command": "verifactu-mcp",
      "env": {
        "VERIFACTU_API_TOKEN": "tu_token_aqui"
      }
    }
  }
}

Alternativa sin script instalado (vía python -m):

{
  "mcpServers": {
    "verifactu": {
      "command": "python",
      "args": ["-m", "verifactu_mcp.server"],
      "cwd": "/ruta/a/verifactu-mcp",
      "env": {
        "VERIFACTU_API_TOKEN": "tu_token_aqui"
      }
    }
  }
}

Uso desde Claude Code

# Generar un XML sin enviar (ideal para pruebas)
"Genera un registro VeriFactu para una factura de 100€ + 21% IVA,
 emisor B12345678, serie 2025/001, fecha 15-05-2025,
 descripción: Servicios de desarrollo web"

# Enviar a la AEAT — la huella anterior se resuelve automáticamente
"Envía a la AEAT la factura 2025/001 del emisor B12345678,
 base 100€, IVA 21%, fecha hoy"

# Consultar estado
"¿Cuál es el estado del registro con ID 42?"

# Anular una factura
"Anula la factura 2025/001 del emisor B12345678"

# Listar las facturas enviadas
"Lista las últimas 50 facturas enviadas para el emisor B12345678"

# Inspeccionar el último hash del emisor
"¿Cuál es la última huella encadenada para B12345678?"

Variables de entorno

Variable Descripción Requerida
VERIFACTU_API_TOKEN Token de acceso a verifactuapi.es Sí (para enviar)
VERIFACTU_API_BASE URL base de la API (por defecto producción) No
VERIFACTU_STATE_DB Ruta a la DB SQLite de estado (por defecto ~/.verifactu-mcp/state.db) No

Entornos AEAT

Entorno URL
Sandbox https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP
Producción https://www1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP

Para certificados de prueba (sandbox): catentidades@correo.aeat.es


Licencia

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

verifactu_mcp-0.1.1.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

verifactu_mcp-0.1.1-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file verifactu_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: verifactu_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for verifactu_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 49403dff2f79bffef878e913a642ae1dd66dd17fbf6da5c8e926804272d55884
MD5 8799b5d5adf92a78662dd151c7d5b859
BLAKE2b-256 7e80d3abe5bbfaf1bb77ee8d4b1bd092901ac94972a1d8744c0f614271bc6872

See more details on using hashes here.

File details

Details for the file verifactu_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: verifactu_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for verifactu_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 323d7f20f53e6f8ef8f1f42d4064916969d8d1b1f410ff01016d3b419014b637
MD5 35acca6e4a029a588b27257fe9dcc889
BLAKE2b-256 f2b627fe7deeae8ba64d43da24e1424653992d07d05de23de13b1a14d121d05e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page