Quicken MCP Server
Provides tools to query and analyze Quicken financial data through Ollama, including account listing, transaction search, SQL queries, and financial summaries.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Quicken MCP ServerList my transactions from last month."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Quicken MCP Server
A containerized MCP (Model Context Protocol) server that converts a local export of Quicken in Quicken Interchange Format (QIF) files into a queryable DuckDB database, exposing financial data through standardized MCP tools to LLM Clients.
Features
QIF Import: Parse and normalize Quicken QIF files into structured database tables
In-Memory Database: Uses DuckDB for fast, SQL-compatible data access
MCP Tools: Exposes financial data through standardized MCP tools including:
list_accounts- List all accounts with balanceslist_transactions- Query transactions with flexible filteringrun_sql- Execute safe SQL queries against the dataget_summaries- Generate financial summaries and statisticsget_categories- List transaction categoriessearch_transactions- Search transactions by text
Multiple Transports: Supports both stdio and Server-Sent Events (SSE) protocols
Security: SQL queries are restricted to SELECT operations only
Resources: Export data as CSV files through MCP resources
TLDR: Talk to your Quicken data in ChatGPT, Claude or ollama!

Quick Start
Using Docker (Recommended)
Build the container:
docker build -t quicken-mcp-server .Register the MCP in your LLM client config
Example of
claude-desktop-config.jsonentry:"quicken-mcp": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "<path>/data:/data:ro", "quicken-mcp-server", "--qif", "/data/personal-data.qif" ], "env": {} }In this example, I have exported my quicken data into the QIF format and named it "personal-data.qif". I then placed it into a folder called "data" and made that folder available to the docker image as a volume also named "data".
Local Development
Install dependencies:
pip install -r requirements.txtRun locally:
python -m app.main --qif /path/to/your/file.qif
Usage Examples
Command Line Options
python -m app.main --helpRequired:
--qif PATH- Path to the QIF file to load
Optional:
--server-mode {stdio,sse}- Transport mode (default: stdio)--listen HOST:PORT- Listen address for SSE mode (default: 127.0.0.1:8700)--log-level {DEBUG,INFO,WARNING,ERROR}- Log level (default: INFO)--memory-limit SIZE- DuckDB memory limit (default: 8GB)
Environment Variables
You can also configure using environment variables:
QIF_PATH- Path to QIF fileSERVER_MODE- Transport modeLOG_LEVEL- Logging levelMEMORY_LIMIT- Memory limit
Docker Examples
Basic usage with bind mount:
docker run --rm \
-v "$PWD/data:/data:ro" \
--network host \
quicken-mcp --qif /data/example-file.qifSSE mode with custom port:
docker run --rm \
-v "$PWD/data:/data:ro" \
-p 8700:8700 \
quicken-mcp \
--qif /data/example-file.qif \
--server-mode sse \
--listen 0.0.0.0:8700MCP Tools Reference
list_accounts
Returns all accounts with metadata:
{
"success": true,
"accounts": [
{
"account_id": 1,
"name": "Checking Account",
"type": "Bank",
"balance": 1234.56
}
]
}list_transactions
Query transactions with optional filters:
{
"account_type": "Bank",
"date_from": "2023-01-01",
"date_to": "2023-12-31",
"category": "Food",
"limit": 50
}run_sql
Execute SELECT queries:
{
"query": "SELECT category, SUM(amount) FROM transactions WHERE date >= '2023-01-01' GROUP BY category ORDER BY SUM(amount) DESC LIMIT 10"
}get_summaries
Generate financial summaries:
{
"period": "month" // Options: "month", "category", "account", "all"
}Database Schema
The server creates the following tables:
accounts - Account information (name, type, balance, etc.)
categories - Transaction categories and metadata
transactions - Individual transactions
transaction_splits - Split transaction details
Plus useful views:
transactions_with_categories - Transactions joined with category info
monthly_summaries - Monthly spending summaries
category_summaries - Category-wise summaries
MCP Client Integration
Testing with MCP Inspector
The MCP Inspector is a powerful debugging tool for testing MCP servers. You can use it to explore available tools, test queries, and debug issues.
Using Docker (Recommended):
# Start the inspector (runs on http://localhost:5173)
docker run --rm --network host -p 5173:5173 ghcr.io/modelcontextprotocol/inspector:latestThen connect to your server:
Stdio mode: Use command
docker run --rm -v "/path/to/your/qif:/data:ro" --network host quicken-mcp --qif /data/yourfile.qifSSE mode: Use URL
http://127.0.0.1:8700/sse
Using npx (Local Development):
# For stdio mode
npx @modelcontextprotocol/inspector docker run --rm -v "/path/to/your/qif:/data:ro" --network host quicken-mcp --qif /data/yourfile.qif
# For SSE mode, start the server first, then:
npx @modelcontextprotocol/inspector http://127.0.0.1:8700/sseWith mcpm (MCP Manager)
Create an mcpm profile:
mcpm profile create quicken-ledger
mcpm profile edit quicken-ledger --add local::quicken-mcpWith MCP-compatible editors
Configure your editor to use this server:
Stdio mode: Point to the docker run command
SSE mode: Use
http://127.0.0.1:8700/sseendpoint
Security Considerations
QIF files should be trusted and local
SQL execution is restricted to SELECT statements only
Dangerous SQL keywords are blocked
Container runs as non-root user
File access is controlled through bind mounts
Performance
Recommended memory limit: 8GB for large datasets
File size warning at 100MB+
Query results limited to prevent memory issues
DuckDB provides excellent analytical performance
Development
Project Structure
quicken-mcp-server/
├── app/
│ ├── __init__.py
│ ├── config.py # Configuration management
│ ├── qif_loader.py # QIF parsing and database loading
│ ├── schema.sql # Database schema definitions
│ ├── mcp_tools.py # MCP tool implementations
│ ├── server.py # MCP server setup
│ └── main.py # Application entry point
├── tests/
├── Dockerfile
├── pyproject.toml
├── requirements.txt
└── README.mdRunning Tests
pytestCode Quality
ruff check .
mypy app/License
MIT License - see LICENSE file for details.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sgoley/quicken-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server