StatementKit - bank statement normalizer

Normalize bank statements (CSV, camt, MT940, OFX, QIF) to JSON, analyze, export.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
86%
Calidad de los nombres
100%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,530Tokens (definiciones de herramientas)
~2.8 KBTamaño de respuesta típico
Impacto moderado en la atención (1.20% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "statementkit": {
      "url": "https://statementkit.zenith-ops.workers.dev/mcp"
    }
  }
}

Puntos de conexión remotos

https://statementkit.zenith-ops.workers.dev/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (5)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢list_formats

List the supported statement formats, CSV column synonyms, limits and prices. Free.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢parse_statement_demo(content, format, delimiter, decimal, dateFormat, ...)

Free demo: parse a statement (max 24 KB) into normalized JSON; returns the first 100 transactions plus an analysis preview. Rate limited to 20 calls per hour.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "description": "The statement file as text (UTF-8). PDF and scanned images are not supported."
    },
    "format": {
      "type": "string",
      "enum": [
        "csv",
        "camt",
        "mt940",
        "ofx",
        "qif"
      ],
      "description": "Skip auto-detection."
    },
    "delimiter": {
      "type": "string",
      "description": "CSV delimiter override: comma, semicolon, tab or pipe."
    },
    "decimal": {
      "type": "string",
      "enum": [
        ",",
        "."
      ],
      "description": "CSV decimal separator override."
    },
    "dateFormat": {
      "type": "string",
      "enum": [
        "ymd",
        "dmy",
        "mdy"
      ],
      "description": "CSV date order override for ambiguous dates."
    },
    "currency": {
      "type": "string",
      "description": "Fallback ISO 4217 currency when the file has none, e.g. SEK."
    },
    "columns": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "CSV: map field names (date, amount, description, ...) to exact header names."
    },
    "includeRaw": {
      "type": "boolean",
      "description": "Add the raw source fields to every transaction."
    }
  },
  "required": [
    "content"
  ],
  "additionalProperties": false
}
🟢parse_statement(content, format, delimiter, decimal, dateFormat, ...)

Paid ($0.005): Parses a bank statement (CSV from any bank, camt.052/053/054, MT940, OFX/QFX, QIF) into normalized JSON: accounts, balances and signed transactions with ISO dates, counterparty, reference and OCR number. Deterministic, no AI, nothing stored. JSON body up to 1000 KB. Failed calls (4xx/5xx) are not settled. Without a payment header the result is the x402 payment requirements.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "description": "The statement file as text (UTF-8). PDF and scanned images are not supported."
    },
    "format": {
      "type": "string",
      "enum": [
        "csv",
        "camt",
        "mt940",
        "ofx",
        "qif"
      ],
      "description": "Skip auto-detection."
    },
    "delimiter": {
      "type": "string",
      "description": "CSV delimiter override: comma, semicolon, tab or pipe."
    },
    "decimal": {
      "type": "string",
      "enum": [
        ",",
        "."
      ],
      "description": "CSV decimal separator override."
    },
    "dateFormat": {
      "type": "string",
      "enum": [
        "ymd",
        "dmy",
        "mdy"
      ],
      "description": "CSV date order override for ambiguous dates."
    },
    "currency": {
      "type": "string",
      "description": "Fallback ISO 4217 currency when the file has none, e.g. SEK."
    },
    "columns": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "CSV: map field names (date, amount, description, ...) to exact header names."
    },
    "includeRaw": {
      "type": "boolean",
      "description": "Add the raw source fields to every transaction."
    }
  },
  "required": [
    "content"
  ],
  "additionalProperties": false
}
🟢analyze_statement(content, format, delimiter, decimal, dateFormat, ...)

Paid ($0.01): Parses a statement and adds analysis: monthly totals, top counterparties, recurring payments, suspected duplicates, largest transactions and balance reconciliation. Set include_transactions=false to receive only the analysis. JSON body up to 1000 KB. Failed calls (4xx/5xx) are not settled. Without a payment header the result is the x402 payment requirements.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "description": "The statement file as text (UTF-8). PDF and scanned images are not supported."
    },
    "format": {
      "type": "string",
      "enum": [
        "csv",
        "camt",
        "mt940",
        "ofx",
        "qif"
      ],
      "description": "Skip auto-detection."
    },
    "delimiter": {
      "type": "string",
      "description": "CSV delimiter override: comma, semicolon, tab or pipe."
    },
    "decimal": {
      "type": "string",
      "enum": [
        ",",
        "."
      ],
      "description": "CSV decimal separator override."
    },
    "dateFormat": {
      "type": "string",
      "enum": [
        "ymd",
        "dmy",
        "mdy"
      ],
      "description": "CSV date order override for ambiguous dates."
    },
    "currency": {
      "type": "string",
      "description": "Fallback ISO 4217 currency when the file has none, e.g. SEK."
    },
    "columns": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "CSV: map field names (date, amount, description, ...) to exact header names."
    },
    "includeRaw": {
      "type": "boolean",
      "description": "Add the raw source fields to every transaction."
    },
    "today": {
      "type": "string",
      "description": "YYYY-MM-DD; flags recurring payments that stopped before this date."
    },
    "include_transactions": {
      "type": "boolean",
      "description": "Default true. false returns only the analysis."
    }
  },
  "required": [
    "content"
  ],
  "additionalProperties": false
}
🟢convert_statement(content, format, delimiter, decimal, dateFormat, ...)

Paid ($0.005): Parses a statement and exports it as normalized CSV, an hledger journal, a SIE4 file (experimental) or JSON. The converted file is returned as a string in the content field. JSON body up to 1000 KB. Failed calls (4xx/5xx) are not settled. Without a payment header the result is the x402 payment requirements.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "description": "The statement file as text (UTF-8). PDF and scanned images are not supported."
    },
    "format": {
      "type": "string",
      "enum": [
        "csv",
        "camt",
        "mt940",
        "ofx",
        "qif"
      ],
      "description": "Skip auto-detection."
    },
    "delimiter": {
      "type": "string",
      "description": "CSV delimiter override: comma, semicolon, tab or pipe."
    },
    "decimal": {
      "type": "string",
      "enum": [
        ",",
        "."
      ],
      "description": "CSV decimal separator override."
    },
    "dateFormat": {
      "type": "string",
      "enum": [
        "ymd",
        "dmy",
        "mdy"
      ],
      "description": "CSV date order override for ambiguous dates."
    },
    "currency": {
      "type": "string",
      "description": "Fallback ISO 4217 currency when the file has none, e.g. SEK."
    },
    "columns": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "CSV: map field names (date, amount, description, ...) to exact header names."
    },
    "includeRaw": {
      "type": "boolean",
      "description": "Add the raw source fields to every transaction."
    },
    "to": {
      "type": "string",
      "enum": [
        "csv",
        "hledger",
        "sie4",
        "json"
      ],
      "description": "Target format."
    },
    "bankAccount": {
      "type": "string",
      "description": "Bank account number (SIE4, e.g. 1930) or ledger account (hledger)."
    },
    "expenseAccount": {
      "type": "string",
      "description": "Counter account for outgoing money."
    },
    "incomeAccount": {
      "type": "string",
      "description": "Counter account for incoming money."
    },
    "assetAccount": {
      "type": "string",
      "description": "hledger asset account name."
    },
    "company": {
      "type": "string",
      "description": "Company name for the SIE4 header."
    }
  },
  "required": [
    "content",
    "to"
  ],
  "additionalProperties": false
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada5 herramientas