quicken
A python based mcp server (with embedded duckdb) to interact with Quicken data via an LLM Client.
claude mcp add --transport stdio sgoley-quicken-mcp-server python -m app.main --qif /path/to/your/file.qif \ --env QIF_PATH="Path to QIF file (override via --qif if needed)" \ --env LOG_LEVEL="Logging level (DEBUG, INFO, WARNING, ERROR)" \ --env SERVER_MODE="Transport mode: stdio or sse"
How to use
This MCP server ingests a local Quicken QIF export and builds an in-memory DuckDB database that you can query using standardized MCP tools. It exposes a set of helpers for working with financial data, including listing accounts and their balances, querying transactions with flexible filters, running safe SELECT-only SQL against the dataset, generating financial summaries, listing categories, and searching transactions by text. The server supports multiple transport modes: stdio for direct tool integration and Server-Sent Events (SSE) for streaming updates to clients. Security is enforced by restricting SQL to SELECT statements only and by isolating file access via controlled QIF imports and containerized execution when deployed with Docker or similar environments.
How to install
Prerequisites:
- Python 3.8+ (tested with Python 3.10+)
- pip (Python package manager)
- Optional: Docker (for containerized deployment)
Install from source:
-
Clone the repository: git clone https://github.com/your-org/quicken-mcp-server.git cd quicken-mcp-server
-
Create and activate a virtual environment (recommended): python -m venv venv source venv/bin/activate # on Unix/macOS venv\Scripts\activate # on Windows
-
Install dependencies: pip install -r requirements.txt
Run locally: 4) Start the server (QIF path required): python -m app.main --qif /path/to/your/file.qif
Containerized (Docker): 5) Build the image: docker build -t quicken-mcp-server .
- Run with a mounted QIF file: docker run --rm -v "<path>/data:/data:ro" quicken-mcp-server --qif /data/personal-data.qif
Configuration (optional):
- You can pass transport mode and listen address via flags or environment variables as described in the README.
- See the MCP Tools Reference in the README for available commands and their usage.
Additional notes
Tips and common issues:
- Ensure the QIF file is trusted and accessible by the server when running in Docker or with a mounted volume.
- The server enforces SELECT-only queries for safety; attempting DDL/DML will be blocked.
- If using SSE, open clients can subscribe to /sse (default port 8700) to receive updates and results.
- Memory recommendations: 8 GB+ for large QIF exports; DuckDB handles large analytical queries efficiently.
- Environment variables: QIF_PATH, SERVER_MODE, LOG_LEVEL, and MEMORY_LIMIT can be used to configure startup behavior without always passing CLI flags.
- If you run into port or binding issues in SSE mode, verify your host network configuration and that the listen address is accessible from clients.
- For local development, using a virtual environment helps manage dependencies and isolation.
Related MCP Servers
web-eval-agent
An MCP server that autonomously evaluates web applications.
mcp-neo4j
Neo4j Labs Model Context Protocol servers
Gitingest
mcp server for gitingest
zotero
Model Context Protocol (MCP) server for the Zotero API, in Python
fhir
FHIR MCP Server – helping you expose any FHIR Server or API as a MCP Server.
unitree-go2
The Unitree Go2 MCP Server is a server built on the MCP that enables users to control the Unitree Go2 robot using natural language commands interpreted by a LLM.