StatementKit - bank statement normalizer
Normalize bank statements (CSV, camt, MT940, OFX, QIF) to JSON, analyze, export.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"statementkit": {
"url": "https://statementkit.erikssonanton2001.workers.dev/mcp"
}
}
}远程端点
https://statementkit.erikssonanton2001.workers.dev/mcpstreamable-http它能做什么
工具清单
工具(5)
🟢list_formats
List the supported statement formats, CSV column synonyms, limits and prices. Free.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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
}社区
证据