saldo-mcp
A read-only MCP server that securely connects Swedish/Nordic bank accounts to AI assistants, keeping all financial data local and encrypted.
README
saldo-mcp
Ask your AI about your money — without your money data ever leaving your machine.
saldo-mcp is the open-source engine behind Saldo: a read-only
MCP server that connects Swedish/Nordic bank
accounts to Claude, ChatGPT, and any MCP-compatible assistant. It runs on your
computer, fetches data directly from the bank via Enable Banking's
open-banking API, and keeps an encrypted local cache — so your transaction
history accumulates beyond the bank's ~90-day window, and nothing financial ever
touches anyone else's servers. Including ours.
Principles
- Read-only, always. Account-information consents only. Payment initiation isn't a disabled feature — it's a capability this codebase does not contain.
- Privacy by architecture. The engine calls the bank API from your device. The optional managed broker (hosted by us, for the paid tiers) handles consent and short-lived keys only; it has no endpoint that can receive financial data.
- Yours to run. Self-hosting with your own free Enable Banking application is free forever, no account with us required.
Quick start (self-host)
Requirements: Node 24+, a Swedish/Nordic bank account, and a free Enable Banking application (their Restricted Production tier: link your own accounts, real data, no contract).
No install needed to try it — state lives in ~/.saldo/, not in the package:
npx saldo-mcp init # wizard: managed or self-host (paste your EB app id + .pem path)
npx saldo-mcp institutions SE
npx saldo-mcp link "SE:Your Bank" # BankID in the browser
npx saldo-mcp sync # pull history into the encrypted cache
npx saldo-mcp doctor # ✓/✗ health checks
To connect an assistant, install permanently (Claude Desktop launches the server from a fixed path, and the npx cache is temporary):
npm install -g saldo-mcp
saldo connect-claude # register in Claude Desktop, restart Claude
Prefer running from source? git clone https://github.com/pixby/saldo-mcp.git && cd saldo-mcp && npm install && npm run build, then use node dist/cli/index.js in place of saldo.
Then ask Claude: "What did I spend on groceries last month?"
(npm package coming: npx saldo-mcp init — after which the command is just saldo.)
MCP tools
Seven read-only tools, designed so assistants answer cheaply from pre-computed summaries instead of re-deriving totals from raw dumps:
list_accounts · get_balances · get_transactions (date + amount filters,
one or all accounts) · search_transactions (full-text) ·
spending_by_category (own Nordic merchant categorizer, or by exact counterparty) ·
get_recurring_charges · compare_periods
Architecture notes
- Provider-neutral core: everything above
src/providers/provider.ts(BankProvider) speaks provider-neutral domain types — Enable Banking is the backend today; others can slot in without touching the engine or tools. - Cache:
node:sqlite+ AES-256-GCM at rest (no native deps). Only ids and booking dates are stored in the clear (for indexed range queries); amounts, names, and descriptions never hit disk unencrypted. - Transports: stdio (this repo's default — your MCP client launches it) and
Streamable HTTP on
127.0.0.1(used by the Saldo desktop app). - Money is integer minor units (öre) internally; formatting to kr happens only at presentation.
- Tests:
npm test— 54 integration/unit tests over a deterministic fake provider (no bank, no network, no secrets).
Relationship to Saldo
This repo is the engine. Saldo wraps it in a desktop app (macOS/Windows/Linux) with one-click assistant connections and a managed tier where you bring only your BankID. Self-hosting this engine is and stays free.
License
MIT © Pixby Media AB
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.