Skip to main content
Glama
marcoaperez

Actual Budget MCP Server

by marcoaperez

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOCALENoLocale for formatting amounts and dates (e.g. es-ES)en-US
CURRENCYNo3-letter ISO currency code (e.g. EUR)USD
ENABLE_WRITENoEnables the 18 write tools (categorize, splits, schedules, budget, notes, category groups/categories, payees/transfers, rules)false
MESSAGES_LANGNoLanguage of the server's error messages: es or enes
ACTUAL_SYNC_IDYesBudget Sync ID (Settings -> Advanced -> Sync ID)
ACTUAL_DATA_DIRNoFolder where the local copy of the budget is downloaded./data
SYNC_TTL_SECONDSNoSeconds the sync is cached before re-syncing60
ACTUAL_SERVER_URLYesURL of the self-hosted Actual server
ACTUAL_SERVER_PASSWORDYesActual server password

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_accountsA

List accounts with current balances. Off-budget accounts (pensions, funds, mortgage) included by default.

get_net_worthA

Full net worth: on-budget + off-budget (pensions, funds, mortgage) with per-account breakdown. Open accounts only.

get_categoriesA

Category groups and categories with their IDs (IDs are required by write tools).

get_transactionsA

Search transactions by date range with optional filters (account, category, text, amount range, uncategorized). Transfers excluded by default. Paginated (max 200).

get_spending_summaryB

Aggregated spending by category, payee or month. Transfers always excluded. Spending amounts are positive; income negative. Sorted descending.

get_budget_monthB

Budget status for a month: to-budget, income, totals and per-category budgeted/spent/balance. Category ids included for set_budget.

get_budget_averagesA

Per-category spending average, median and max over the last N complete months — input for budget preparation. Median resists anomalous months. Spending positive; transfers and income excluded.

get_schedulesC

Recurring schedules configured in Actual (name, next date, amount).

get_payeesA

Payees with their IDs. A payee with transfer_account_id set is the payee Actual uses to represent that account in a transfer.

get_account_transfer_payeeA

The payee that represents an account in a transfer. Shortcut over get_payees for the common case; set_transaction_transfer resolves it on its own, so this is mainly for inspection.

get_rulesA

Actual's automation rules, with their IDs. Rules run on imported transactions and are how recurring movements classify themselves. Amounts are in currency units.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation5/5

Every tool targets a distinct concept in the Actual budget domain: accounts, net worth, categories, transactions, spending summaries, budget month, budget averages, schedules, payees, and rules. There is slight conceptual proximity between get_spending_summary and get_budget_averages (both return spending data), and between get_payees and get_account_transfer_payee, but descriptions clearly differentiate their purposes. No tool appears to do the same thing as another.

Naming Consistency5/5

All eleven tools follow a consistent 'get_<noun(s)>' verb_noun pattern: get_accounts, get_categories, get_transactions, get_spending_summary, get_budget_month, get_budget_averages, get_schedules, get_payees, get_rules, get_net_worth, get_account_transfer_payee. The naming convention is uniform and predictable throughout.

Tool Count5/5

With 11 tools, this is a well-scoped set squarely in the optimal range. Each tool addresses a distinct read-only query a user would reasonably make about their Actual budget, and none feels redundant or trivial. The count is appropriate for the server's apparent purpose of budget querying.

Completeness3/5

The server is entirely read-only, covering queries well but offering no write operations (no 'create', 'update', 'delete' tools). Notably, the descriptions reference write tools (set_budget, set_transaction_transfer) that are not present in this set. While the domain is comprehensive on the read side, the absence of any mutation tools leaves the surface partially gap-laden if the intent is full budget management.

Maintenance

ActivityStale
ResponsivenessNo issues