Skip to main content
Glama
Firefly III MCP Server

Firefly III MCP Server

by przbadu

Firefly III MCP Server

npm version License: MIT

An MCP (Model Context Protocol) server that gives Claude full access to your Firefly III personal finance instance. Talk to Claude in natural language to record expenses, check balances, manage budgets, and more.

Features

  • Transactions: Create, list, search, update, and delete transactions (withdrawals, deposits, transfers)

  • Accounts: Manage asset, expense, revenue, liability, and cash accounts

  • Categories: Organize transactions with categories

  • Budgets: Create and manage budgets with auto-budget support

  • Tags: Label transactions with flexible tags

Related MCP server: Firefly III MCP Server

Prerequisites

  • Node.js >= 18

  • A running Firefly III instance

  • A Personal Access Token (PAT) from your Firefly III instance

Getting Your PAT

  1. Log into your Firefly III instance

  2. Go to Options → Profile → OAuth

  3. Under Personal Access Tokens, create a new token

  4. Copy the token — you'll need it for configuration

Installation

npm install -g firefly-iii-mcp-server

From source

git clone https://github.com/przbadu/firefly-iii-mcp-server.git
cd firefly-iii-mcp-server
npm install
npm run build

Configuration

Claude Desktop

Edit your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Using the npm-installed binary:

{
  "mcpServers": {
    "firefly-iii": {
      "command": "firefly-iii-mcp-server",
      "env": {
        "FIREFLY_III_URL": "https://your-firefly-instance.example.com",
        "FIREFLY_III_PAT": "your-personal-access-token-here"
      }
    }
  }
}

Or using npx (no global install needed):

{
  "mcpServers": {
    "firefly-iii": {
      "command": "npx",
      "args": ["-y", "firefly-iii-mcp-server"],
      "env": {
        "FIREFLY_III_URL": "https://your-firefly-instance.example.com",
        "FIREFLY_III_PAT": "your-personal-access-token-here"
      }
    }
  }
}

Claude Code CLI

claude mcp add firefly-iii \
  -e FIREFLY_III_URL=https://your-firefly-instance.example.com \
  -e FIREFLY_III_PAT=your-personal-access-token-here \
  -- npx -y firefly-iii-mcp-server

Or add it to your .claude/settings.json:

{
  "mcpServers": {
    "firefly-iii": {
      "command": "npx",
      "args": ["-y", "firefly-iii-mcp-server"],
      "env": {
        "FIREFLY_III_URL": "https://your-firefly-instance.example.com",
        "FIREFLY_III_PAT": "your-personal-access-token-here"
      }
    }
  }
}

Usage Examples

Once configured, just talk to Claude naturally:

Recording Transactions

"I spent $45.50 at Trader Joe's on groceries today"

"Record a $2,500 salary deposit from my employer into my checking account"

"Transfer $500 from Checking to Savings"

Querying

"Show me all my transactions from last week"

"How much did I spend on restaurants this month?"

"What's the balance of my checking account?"

Managing Finances

"Create a monthly grocery budget of $600"

"List all my expense categories"

"Tag my last 3 restaurant transactions as 'business meals'"

Available Tools

Tool

Description

firefly_create_transaction

Create withdrawal, deposit, or transfer

firefly_list_transactions

List transactions with filters

firefly_get_transaction

Get transaction details by ID

firefly_update_transaction

Update an existing transaction

firefly_delete_transaction

Delete a transaction

firefly_search_transactions

Search with Firefly III query syntax

firefly_create_account

Create a new account

firefly_list_accounts

List accounts by type

firefly_get_account

Get account details

firefly_update_account

Update account properties

firefly_delete_account

Delete an account

firefly_list_categories

List all categories

firefly_create_category

Create a category

firefly_update_category

Update a category

firefly_delete_category

Delete a category

firefly_list_budgets

List all budgets

firefly_create_budget

Create a budget

firefly_update_budget

Update a budget

firefly_delete_budget

Delete a budget

firefly_list_tags

List all tags

firefly_create_tag

Create a tag

firefly_update_tag

Update a tag

firefly_delete_tag

Delete a tag

Development

# Watch mode with auto-reload
npm run dev

# Build for production
npm run build

# Run the built server
npm start

License

MIT

Available Tools

23 tools
firefly_create_accountCreate Firefly III AccountA

Create a new account in Firefly III.

Account types: asset (bank accounts, wallets), expense (stores, services), revenue (employers, income sources), liability (loans, mortgages), cash.

For asset accounts, specify a role: defaultAsset, sharedAsset, savingAsset, ccAsset (credit card), cashWalletAsset.

Inputs: name (required), type (required), currency_code, account_role, +7 more.

firefly_create_budgetCreate Firefly III BudgetA

Create a new budget. Budgets help you track spending limits.

Auto-budget options:

  • 'reset': Budget resets to the set amount each period

  • 'rollover': Unused budget rolls over to the next period

  • 'none': Manual budgeting only

Inputs: name (required), active, auto_budget_type, auto_budget_amount, +3 more.

firefly_create_categoryCreate Firefly III CategoryC

Create a new transaction category.

Inputs: name (required), notes.

firefly_create_tagCreate Firefly III TagB

Create a new tag for labeling transactions.

Inputs: tag (required), description.

firefly_create_transactionCreate Firefly III TransactionA

Create a new transaction in Firefly III.

Supports withdrawals (expenses), deposits (income), and transfers between accounts.

For a withdrawal: provide source_name (your asset account, e.g. "Checking Account") and destination_name (the expense account, e.g. "Supermarket"). For a deposit: provide source_name (revenue account, e.g. "Employer") and destination_name (your asset account). For a transfer: both source and destination should be your own asset accounts.

If an expense/revenue account doesn't exist yet, Firefly III will auto-create it.

Returns: The created transaction with its ID.

Inputs: type (required), description (required), date (required), amount (required), +10 more.

firefly_delete_accountDelete Firefly III AccountA
DestructiveIdempotent

Permanently delete an account. All linked transactions will also be deleted. This cannot be undone.

Inputs: id (required).

firefly_delete_budgetDelete Firefly III BudgetA
DestructiveIdempotent

Delete a budget. Transactions linked to this budget will have their budget cleared.

Inputs: id (required).

firefly_delete_categoryDelete Firefly III CategoryA
DestructiveIdempotent

Delete a category. Transactions using this category will have their category cleared.

Inputs: id (required).

firefly_delete_tagDelete Firefly III TagA
DestructiveIdempotent

Delete a tag. It will be removed from all transactions that use it.

Inputs: tag (required).

firefly_delete_transactionDelete Firefly III TransactionA
DestructiveIdempotent

Permanently delete a transaction by its ID. This action cannot be undone.

Inputs: id (required).

firefly_get_accountGet Firefly III AccountB
Read-onlyIdempotent

Get a single account by ID with full details.

Inputs: id (required).

firefly_get_transactionGet Firefly III TransactionA
Read-onlyIdempotent

Get a single transaction by its ID. Returns full details including all splits.

Inputs: id (required).

firefly_list_accountsList Firefly III AccountsA
Read-onlyIdempotent

List accounts with optional type filter. Returns account names, balances, and types.

Inputs: type, limit, page.

firefly_list_budgetsList Firefly III BudgetsB
Read-onlyIdempotent

List all budgets with their auto-budget configuration.

Inputs: limit, page.

firefly_list_categoriesList Firefly III CategoriesA
Read-onlyIdempotent

List all categories. Use categories to classify transactions (e.g. Groceries, Rent, Entertainment).

Inputs: limit, page.

firefly_list_tagsList Firefly III TagsB
Read-onlyIdempotent

List all tags. Tags are flexible labels you can attach to transactions.

Inputs: limit, page.

firefly_list_transactionsList Firefly III TransactionsB
Read-onlyIdempotent

List transactions from Firefly III with optional filters.

Supports filtering by type (withdrawal, deposit, transfer), date range, and pagination. Returns a paginated list of transactions with key details.

Inputs: limit, page, type, start, +1 more.

firefly_search_transactionsSearch Firefly III TransactionsA
Read-onlyIdempotent

Search transactions using Firefly III's query syntax.

Simple text searches match against description. Advanced syntax includes:

  • description_contains:grocery

  • amount_more:50

  • amount_less:200

  • date_after:2024-01-01

  • date_before:2024-12-31

  • category_is:Food

  • tag_is:vacation

  • source_account_is:Checking

  • destination_account_is:Supermarket

Combine multiple filters with spaces.

Inputs: query (required), limit, page.

firefly_update_accountUpdate Firefly III AccountA
Idempotent

Update an existing account. Only provide fields you want to change.

Inputs: id (required), name, active, account_role, +2 more.

firefly_update_budgetUpdate Firefly III BudgetA
Idempotent

Update an existing budget's name, status, or notes.

Inputs: id (required), name, active, notes.

firefly_update_categoryUpdate Firefly III CategoryA
Idempotent

Update an existing category's name or notes.

Inputs: id (required), name, notes.

firefly_update_tagUpdate Firefly III TagA
Idempotent

Update an existing tag's description.

Inputs: tag (required), description.

firefly_update_transactionUpdate Firefly III TransactionA
Idempotent

Update an existing transaction. Only provide the fields you want to change.

First use firefly_get_transaction to retrieve the current values, then pass only the changed fields here.

Inputs: id (required), description, date, amount, +6 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

    TDQS

    A3.7/5.0

    Scored across 23 tools

    Disambiguation5/5

    Each tool targets a distinct resource-action combination (create/list/get/update/delete/search for transactions and accounts; list/create/update/delete for categories, budgets, and tags). There is no meaningful overlap, and list vs. search transactions are clearly differentiated by search's advanced query syntax.

    Naming Consistency5/5

    All tools follow the same `firefly_<verb>_<noun>` snake_case pattern, using a consistent set of verbs: create, list, get, update, delete, search. This makes the API highly predictable and easy to navigate.

    Tool Count4/5

    At 23 tools, this exceeds the typical 3-15 sweet spot, but each tool maps to a specific operation on one of five core resources (transactions, accounts, categories, budgets, tags). The count is slightly heavy but justified given the breadth of Firefly III's domain.

    Completeness4/5

    The surface covers full CRUD for accounts and transactions, plus search for transactions, and reasonable create/list/update/delete coverage for categories, budgets, and tags. Minor gaps include the absence of dedicated get-by-ID operations for categories, budgets, and tags, and no support for advanced Firefly III features like rules or recurring transactions, but core workflows are solid.

    Related MCP Connectors

    Related MCP Servers

    • -
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables AI tools to interact with Firefly III personal finance management instances through a cloud-deployed MCP server. Supports financial operations like account management, transactions, budgeting, and reporting with configurable tool presets.
      21 npm
      -
    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables interaction with Firefly III personal finance management instances via the Firefly III API, deployed as a Cloudflare Worker. It allows AI tools to manage transactions, accounts, budgets, and reporting through natural language.
      21 npm
      ISC
    • A
      license
      C
      quality
      C
      maintenance
      Provides comprehensive AI-agnostic access to all Firefly III personal finance features via 66 tools, enabling natural language management of accounts, transactions, budgets, and more.
      66
      7 npm
      24
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables interaction with Firefly III personal finance tools through natural language, deployed globally on Cloudflare Workers for low latency and high availability.
      21 npm
      ISC