Firefly III MCP server
Firefly III in any MCP client, through Memtro: Firefly III does not publish this server. Memtro's Firefly III connector reads Firefly III through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.
What the model can do
Firefly III (self-hosted finance manager): accounts and balances, transactions by date or search, budgets with spending, bills, categories, tags, piggy banks, rules, recurring transactions and a period summary of income, spending and net worth. Can record, change, link or delete a transaction, create, rename or delete a tag or a category, create, change or delete an account, a budget or a bill, set a budget's limit for a period, create, change or delete a piggy bank, create a rule group, create or delete an automation rule, and create the next transaction of a recurring one now.
Reads
fireflyiii_list_accountsFirefly III accounts: name, type (asset, expense, revenue, liability…), role, currency, current balance and its date, last activity.fireflyiii_list_transactionsFirefly III transactions, one row per split: date, type (withdrawal, deposit, transfer), amount, currency, description, from and to accounts…fireflyiii_list_budgetsFirefly III budgets with what was spent in a period (default the current month): name, active, auto-budget amount and period, spent per currency.fireflyiii_list_billsFirefly III bills (subscriptions): name, expected amount range, currency, repeat frequency, next expected date, active.fireflyiii_list_categoriesFirefly III categories with their ids and last activity.fireflyiii_list_tagsFirefly III tags with ids, dates and descriptions.fireflyiii_summaryFirefly III's own summary for a period (default the current month): balance, spent, earned, bills paid and unpaid, left to spend and net worth…fireflyiii_list_piggy_banksFirefly III piggy banks (savings goals): id, name, currency, target, saved so far, left to save, suggested monthly saving, dates…fireflyiii_list_rulesFirefly III automation rules: id, title, rule group, when it runs, active, strict, and its triggers and actions.fireflyiii_list_recurrencesFirefly III recurring transactions: id, title, type, first and latest date, repeat until, active, how it repeats, and each transaction's amount…fireflyiii_list_link_typesFirefly III's transaction link types (id, name, inward and outward wording), for fireflyiii_link_transactions.fireflyiii_list_rule_groupsFirefly III rule groups (id, title, active), for fireflyiii_create_rule.
Acts, when you ask
These change something in Firefly III. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.
fireflyiii_create_tagCreates a tag in Firefly III, with an optional date and description.fireflyiii_create_categoryCreates a category in Firefly III, with optional notes.fireflyiii_create_transactionRecords one transaction in Firefly III: a withdrawal, deposit or transfer with a date-time, amount, description…fireflyiii_delete_transactionDESTRUCTIVE.fireflyiii_update_transactionOVERWRITES.fireflyiii_create_accountCreates a Firefly III account: an asset account (needs a role), an expense or revenue account (a payee or payer), or a liability (loan…fireflyiii_create_budgetCreates a Firefly III budget, optionally with an automatic amount per period (reset or rollover) and notes.fireflyiii_create_billCreates a Firefly III bill (an expected recurring payment): name, the expected amount range, the first date, how often it repeats, optional currency…fireflyiii_create_ruleCreates a Firefly III automation rule in a rule group: when a transaction is stored (or updated) and its triggers match…fireflyiii_update_tagOVERWRITES.fireflyiii_update_categoryOVERWRITES.fireflyiii_delete_tagDESTRUCTIVE.fireflyiii_delete_categoryDESTRUCTIVE.fireflyiii_set_budget_limitSets how much a Firefly III budget may spend between two dates (a budget limit), in an optional currency, with optional notes.fireflyiii_update_budgetOVERWRITES.fireflyiii_delete_budgetDESTRUCTIVE.fireflyiii_update_accountOVERWRITES.fireflyiii_delete_accountDESTRUCTIVE.fireflyiii_update_billOVERWRITES.fireflyiii_delete_billDESTRUCTIVE.fireflyiii_create_piggy_bankCreates a Firefly III piggy bank (a savings goal) on an asset account: name, target amount, start date, optional amount already saved…fireflyiii_update_piggy_bankOVERWRITES.fireflyiii_delete_piggy_bankDESTRUCTIVE.fireflyiii_create_rule_groupCreates a Firefly III rule group (a folder of automation rules), with an optional description.fireflyiii_delete_ruleDESTRUCTIVE.fireflyiii_trigger_recurrenceCreates now the transaction a Firefly III recurring transaction would create on a given future date (ids from fireflyiii_list_recurrences).fireflyiii_link_transactionsLinks two Firefly III transactions by their split journal ids with a link type (ids from fireflyiii_list_link_types)…
Connect it
First connect Firefly III on Dashboard → Connections, then add Memtro to your client once. The Firefly III tools appear alongside the tools of everything else you have connected; nothing is configured per connector.
Claude Code
The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.
claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...Cursor
Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.
{
"mcpServers": {
"memtro": {
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Claude Desktop
Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…
OpenCode
A remote server in opencode.json.
{
"mcp": {
"memtro": {
"type": "remote",
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Pi
One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.
Any other client
Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.
Who may use it
The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared Firefly III connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.
Ask it like this
- › How much did we spend on groceries this month?
- › How is each budget doing so far this month?
- › Which bills are due in the next two weeks?
- › What is my net worth now compared with January?
- › Record a 42 pound withdrawal from the current account for the Acme lunch
Questions
- Is this an official Firefly III MCP server?
- No. It is Memtro's MCP server with Memtro's Firefly III connector behind it: the connector reads Firefly III through its API with the credentials you connect on Dashboard → Connections, and Firefly III publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
- What does it cost?
- Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
- Can it change anything in Firefly III?
- Only when you ask, and only what it has been granted: record a transaction (bookkeeping only, webhooks and rules off); delete a transaction; create a tag; create a category; rename or redescribe a tag; rename a category or replace its notes; delete a tag; delete a category; overwrite fields of one split of a transaction, keeping every other split; create an account (asset, expense, revenue or liability); create a budget; create a bill (expected recurring payment); create an automation rule that changes future transactions; set a budget's limit for a period; rename a budget or change its active flag, notes or auto-budget; delete a budget (transactions stay); overwrite named fields of an account, keeping every other field; delete an account with all its transactions and piggy banks; change a bill; delete a bill; create a piggy bank (savings goal) on an account; change a piggy bank's name, target, dates or notes; delete a piggy bank; create a rule group; delete an automation rule; create a recurring transaction's occurrence now; link two transactions. Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
- Which clients work?
- Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.