Firefly III MCP Server
Provides tools for managing personal finances through Firefly III, including accounts, transactions, budgets, categories, tags, bills, piggy banks, and rules.
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., "@Firefly III MCP ServerShow me my account balances"
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.
Firefly III MCP Server
A Model Context Protocol (MCP) server that provides programmatic access to Firefly III personal finance management through Claude Desktop, Cursor IDE, and other MCP-compatible AI assistants.
๐ Documentation
๐ Full Documentation
Related MCP server: YNAB MCP Server
Overview
This MCP server enables AI assistants to interact with your Firefly III instance, allowing you to manage your personal finances through natural language conversations. You can:
๐ฐ Manage accounts: List, create, update, and delete asset, expense, revenue, and liability accounts
๐ Handle transactions: Create, retrieve, update, and delete financial transactions
๐ณ Budget management: Work with budgets, budget limits, and track spending
๐ท๏ธ Categorization: Manage transaction categories and tags
๐ธ Bill tracking: Handle recurring bills and payment monitoring
๐ท Piggy banks: Manage savings goals and track progress
โ๏ธ Rules & automation: Configure transaction rules and rule groups
Key Features
๐ค AI Integration: Works seamlessly with Claude Desktop, Cursor IDE, and other MCP clients
๐ก Comprehensive API: Supports most Firefly III v1 API endpoints
โก Flexible modes: Choose between consolidated tools or direct API access
๐ Type-safe: Full Pydantic model validation for all requests/responses
๐ฏ Configurable: Enable only the Firefly III entities you need
Quick Example
Once set up, you can interact with your finances naturally:
"Show me my account balances"
"Create a new expense for $25.50 at Coffee Shop from my Checking Account"
"What's my budget status for this month?"
"List all my transactions from last week"
"Create a new savings goal for a vacation with a target of $2000"
"Show me all bills that are due this month"
"Help me create a transaction rule that automatically categorizes Starbucks purchases as 'Coffee'"
"Create a new budget category for 'Home Improvement' with a $500 monthly limit"Requirements
Python 3.12+
A running Firefly III instance
Firefly III API token (Personal Access Token)
๐ Quick Setup
Local Installation
Clone and set up the project locally:
# Clone the repository
git clone https://github.com/horsfallnathan/firefly-iii-mcp-server.git firefly-mcp
cd firefly-mcp
# Install with UV (recommended)
uv sync
# Or with pip
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -e .Configuration
Create a .env file in the project root:
# Required: Your Firefly III API URL and token
FIREFLY_API_URL=https://your-firefly-instance.com/api/v1
FIREFLY_API_TOKEN=your_token_here
# Optional: Enable all entities (default: just accounts). Requires `FIREFLY_DIRECT_MODE=true`
# Enabling all entities would lead to about 76 tools being registered and most clients suggest a maximum of 40 tools
FIREFLY_ENABLED_ENTITIES=all
# When false, the server will register consolidated tools for dynamic operation. When true, it will register individual tools for each operation
FIREFLY_DIRECT_MODE=false
FIREFLY_LOG_LEVEL=INFO๐ Getting a Firefly III API Token:
Log into your Firefly III instance
Go to Options โ Profile โ OAuth
Click Create New Token
Give it a descriptive name (e.g., "MCP Server")
Copy the generated token to your
.envfile
๐ See full configuration guide
๐ MCP Client Integration
Cursor IDE
Add to your workspace or global settings:
{
"mcp.servers": {
"firefly-mcp": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/firefly-mcp", "run", "firefly-mcp"],
"env": {
"FIREFLY_API_URL": "https://your-firefly-instance.com/api/v1",
"FIREFLY_API_TOKEN": "your_token_here",
"FIREFLY_ENABLED_ENTITIES": "all",
"FIREFLY_DIRECT_MODE": "false"
}
}
}
}VSCode
Create an mcp.json file in your project root or workspace:
{
"servers": {
"firefly-mcp": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/firefly-mcp", "run", "firefly-mcp"],
"env": {
"FIREFLY_API_URL": "https://your-firefly-instance.com/api/v1",
"FIREFLY_API_TOKEN": "your_token_here",
"FIREFLY_ENABLED_ENTITIES": "all",
"FIREFLY_DIRECT_MODE": "false"
}
}
}
}Operation Modes
Consolidated Mode (Default)
Provides three meta-tools for dynamic operation:
firefly_execute(entity, operation, params)- Execute any Firefly III operationfirefly_list_operations(entity?)- List available operationsfirefly_get_schema(entity, operation)- Get parameter schema for operations
Direct Mode
Set FIREFLY_DIRECT_MODE=true to register individual tools for each operation:
account_list(limit?, page?)- List accountsaccount_get(id)- Get account detailstransaction_create(transactions)- Create transactionsAnd many more...
๐ ๏ธ Development & Testing
Using MCP Inspector
For development and debugging, use the MCP Inspector:
# Install and run MCP Inspector
npx @modelcontextprotocol/inspector uv run firefly-mcpThe MCP Inspector provides a web interface where you can:
๐งช Test all available tools and operations
๐ Inspect request/response schemas
๐ Debug server connectivity and authentication
โ Validate your Firefly III configuration
๐ See full development guide
Running Tests
# Run all tests
make test-all
# Run with coverage
make coverage
# Run specific test types
make test-unit
make test-integrationLocal Development
# Development with .env file
make dev
# Direct execution
uv run firefly-mcp
python -m firefly_mcp.main๐ Environment Variables Reference
Variable | Default | Description |
|
| Your Firefly III API base URL |
| (required) | Personal Access Token from Firefly III |
|
| Disable SSL verification for development |
|
| Enable individual tools for each operation |
|
| Comma-separated list of entities to enable |
|
| Logging level (DEBUG, INFO, WARNING, ERROR) |
๐ฏ API Compatibility
This MCP server is compatible with Firefly III API v1. It has been tested with:
โ Firefly III v6.x
๐ค Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests for new functionality
Run the test suite
Submit a pull request
๐ License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.
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/horsfallnathan/firefly-iii-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server