StatementKit - bank statement normalizer
Normalize bank statements (CSV, camt, MT940, OFX, QIF) to JSON, analyze, export.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
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-httpQué puede hacer
Inventario de herramientas
Herramientas (5)
🟢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
Evidencia