lunchmoney mcp server
An MCP server that lets AI assistants interact with your Lunchmoney data, enabling natural language queries about transactions, budgets, and spending patterns.
An MCP server that lets AI assistants interact with your Lunchmoney data, enabling natural language queries about transactions, budgets, and spending patterns.
A Model Context Protocol (MCP) server that lets you interact with your Lunchmoney transactions and budgets through Claude and other AI assistants.
This tool allows you to connect your Lunchmoney financial data to Claude AI, so you can ask questions about your spending, analyze your budget, and get insights about your finances through a natural conversation.
This server provides four main tools:
Important: MCP provides a structured way for Claude to interact with your Lunchmoney data while maintaining privacy boundaries. Here's what you should know:
You can find more about MCP in the documentaion: https://modelcontextprotocol.io/introduction
Also look at the offical Claude documentation: https://modelcontextprotocol.io/quickstart/user
Node.js is a software platform that lets you run JavaScript code on your computer (outside of a web browser).
To install Node.js:
- Windows/Mac: Download and run the installer from the official Node.js website
- Mac with Homebrew: Run brew install node
in Terminal
- Linux: Use your package manager (e.g., sudo apt install nodejs
for Ubuntu)
Once Node.js is installed on your computer, you can run the server directly without downloading anything:
Edit Config
{
"mcpServers": {
"lunchmoney": {
"command": "npx",
"args": ["-y", "lunchmoney-mcp-server"],
"env": {
"LUNCHMONEY_TOKEN": "your_token_here"
}
}
}
}
Replace your_token_here
with your actual Lunchmoney API token.
Important Note: After changing the configuration, you may need to restart Claude Desktop for the changes to take effect.
Once configured in Claude Desktop, you can ask questions like:
The Model Context Protocol (MCP) is an open protocol that standardizes how applications provide context to Large Language Models (LLMs). Think of MCP like a USB-C port for AI applications - it provides a standardized way to connect AI models to different data sources and tools.
Some key benefits of MCP: - Standardized way to expose data and functionality to LLMs - Human-in-the-loop security (all actions require user approval) - Growing ecosystem of pre-built integrations - Works with multiple AI models and applications
Claude says it can't connect to my MCP server: - Make sure the configuration in Claude's Developer settings is correct - Try restarting Claude Desktop after changing the configuration - Check that your Lunchmoney API token is valid
Claude does not recognize Lunchmoney commands: - Start a new conversation in Claude - Try explicitly mentioning Lunchmoney in your query (e.g., "Show me my recent Lunchmoney transactions")
MIT
Contributions are welcome! Please feel free to submit a Pull Request.
[
{
"description": "Get budget summary for a specific time period",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"end_date": {
"description": "End date (YYYY-MM-DD, should be end of month)",
"type": "string"
},
"start_date": {
"description": "Start date (YYYY-MM-DD, should be start of month)",
"type": "string"
}
},
"required": [
"start_date",
"end_date"
],
"type": "object"
},
"name": "get-budget-summary"
},
{
"description": "Get recent transactions",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"days": {
"default": 30,
"description": "Number of days to look back",
"type": "number"
},
"limit": {
"default": 10,
"description": "Maximum number of transactions to return",
"type": "number"
}
},
"type": "object"
},
"name": "get-recent-transactions"
},
{
"description": "Search transactions by keyword",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"days": {
"default": 90,
"description": "Number of days to look back",
"type": "number"
},
"keyword": {
"description": "Search term to look for",
"type": "string"
},
"limit": {
"default": 10,
"description": "Maximum number of transactions to return",
"type": "number"
}
},
"required": [
"keyword"
],
"type": "object"
},
"name": "search-transactions"
},
{
"description": "Get spending in a category",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"category": {
"description": "Category name",
"type": "string"
},
"days": {
"default": 30,
"description": "Number of days to look back",
"type": "number"
}
},
"required": [
"category"
],
"type": "object"
},
"name": "get-category-spending"
}
]