# Actual Budget MCP Server (npm · actual-mcp)

MCP server exposing Actual Budget accounts, transactions, budgets and reporting to LLM assistants.

- Trust score: 84/100 (high trust)
- Change this week: +18
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-21

## Components

- npm · `actual-mcp`: 84/100 (this document), [markdown](https://verifymcp.io/servers/s-stefanov-actual-mcp/actual-mcp.md), [page](https://verifymcp.io/servers/s-stefanov-actual-mcp/actual-mcp)

## Channel facts

- Registry: `npm`
- Package: `actual-mcp`
- Version: `1.14.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-21.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 67 of 163 dependencies flagged as unhealthy (1 deprecated).
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to s-stefanov/actual-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 7 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 82/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 892 tokens (~52/item across 17 items; 17 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability check failed: the tool surface changed between 1.13.0 and 1.14.0: 0 tool removals, 1 breaking changes, 0 additions.
- **Tool Coverage**: 84/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 53% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 17 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 17 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Actual Budget MCP Server server?

Actual Budget MCP Server runs locally as an npm package, launched with npx -y actual-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add s-stefanov-actual-mcp -- npx -y actual-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "s-stefanov-actual-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "actual-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "s-stefanov-actual-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "actual-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add s-stefanov-actual-mcp -- npx -y actual-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "s-stefanov-actual-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "actual-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add s-stefanov-actual-mcp --command npx --arg -y --arg actual-mcp
```

### Hermes

```yaml
mcp_servers:
  s-stefanov-actual-mcp:
    command: "npx"
    args: ["-y", "actual-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "s-stefanov-actual-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "actual-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add s-stefanov-actual-mcp -t stdio -c npx -a -y actual-mcp
```

### Other

```json
{
  "mcpServers": {
    "s-stefanov-actual-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "actual-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-20 (score 84, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 24.

### 2026-09-18 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 14 to 17.

### 2026-09-16 (score 82, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10.

### 2026-09-15 (score 81, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-09-14 (score 66, −14)

- [security regression] Stability: unverified → fail
- [security regression] Malware scan: pass → unverified
- [functional] Package version: 1.13.0 → 1.14.0

### 2026-09-13 (score 80, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-09-12 (score 65)

First indexed and scored.

## MCP tools (17)

### `get-transactions` (~82 tokens)

Get transactions for an account with optional filtering

Input parameters:

- `accountId` (string, required)
- `categoryName` (string)
- `endDate` (string)
- `limit` (number)
- `maxAmount` (number)
- `minAmount` (number)
- `payeeName` (string)
- `startDate` (string)

### `spending-by-category` (~52 tokens)

Get spending breakdown by category for a specified date range

Input parameters:

- `accountId` (string)
- `endDate` (string)
- `includeIncome` (boolean)
- `startDate` (string)

### `monthly-summary` (~32 tokens)

Get monthly income, expenses, and savings

Input parameters:

- `accountId` (string)
- `months` (number, required)

### `balance-history` (~39 tokens)

Get account balance history over time

Input parameters:

- `accountId` (string)
- `includeOffBudget` (boolean)
- `months` (integer)

### `budget-vs-actual` (~83 tokens)

Compare budgeted amounts against actual spending per category, for recent months. Returns JSON; amounts are integer cents.

Input parameters:

- `categoryGroupName` (string): Restrict the report to a single category group, by name
- `includeHidden` (boolean, required): Include categories and groups marked hidden
- `months` (number, required): Number of most recent months to report on

### `net-worth` (~81 tokens)

Track assets, liabilities, and net worth across all accounts over time. Returns JSON; amounts are integer cents.

Input parameters:

- `includeClosed` (boolean, required): Include closed accounts
- `includeOffBudget` (boolean, required): Include off-budget accounts. Defaults to true, since net worth normally covers every account.
- `months` (number, required): Number of most recent months to report on

### `category-trends` (~97 tokens)

Show how spending in each category changes month over month, with trend direction. Returns JSON; amounts are integer cents.

Input parameters:

- `categoryGroupName` (string): Restrict the report to a single category group, by name
- `categoryNames` (array): Restrict the report to these categories, by name
- `includeIncome` (boolean, required): Include income categories
- `months` (number, required): Number of most recent months to report on

### `spending-by-payee` (~111 tokens)

Rank payees by how much money was spent with (or received from) each one. Returns JSON; amounts are integer cents.

Input parameters:

- `accountId` (string): Restrict the report to a single account
- `endDate` (string): End date in YYYY-MM-DD format
- `includeIncome` (boolean, required): Report income received instead of money spent
- `limit` (number, required): Maximum number of payees to list
- `startDate` (string): Start date in YYYY-MM-DD format

### `cash-flow` (~76 tokens)

Report income, expenses, and net cash flow per month or week. Returns JSON; amounts are integer cents.

Input parameters:

- `accountId` (string): Restrict the report to a single account
- `interval` (string, required): Bucket size for each row of the report
- `months` (number, required): Number of most recent months to report on

### `get-accounts` (~22 tokens)

Retrieve a list of all accounts with their current balance and ID.

### `get-grouped-categories` (~29 tokens)

Retrieve a list of all category groups with their id, name, type and category list.

### `get-payees` (~29 tokens)

Retrieve a list of all payees with their id, name, categoryId and transferAccountId.

### `get-rules` (~30 tokens)

Retrieve a list of all rules. PS amount comes in cents: positive for deposit, negative for payment

### `get-custom-reports` (~22 tokens)

Retrieve every saved custom report from the budget's Reports section

### `get-dashboards` (~34 tokens)

Retrieve every dashboard page and the widgets laid out on it. These are the dashboards under the Reports section of the sidebar.

### `get-budget-months` (~23 tokens)

Retrieve a list of all available budget months in YYYY-MM format.

### `get-budget-month` (~50 tokens)

Retrieve budget data for a specific month, including budgeted amounts, spending, and balances per category.

Input parameters:

- `month` (string, required): Month in YYYY-MM format (e.g. "2025-01")

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/s-stefanov-actual-mcp/actual-mcp#diagnostics

## Score history

- 2026-09-21: 84
- 2026-09-20: 84
- 2026-09-19: 83
- 2026-09-18: 83
- 2026-09-17: 82
- 2026-09-16: 82
- 2026-09-15: 81
- 2026-09-14: 66
- 2026-09-13: 80
- 2026-09-12: 65

## Common questions

### What is the Actual Budget MCP Server server?

Actual Budget MCP Server is listed in the public MCP registry as io.github.s-stefanov/actual-mcp. MCP server exposing Actual Budget accounts, transactions, budgets and reporting to LLM assistants. This page covers its npm package (actual-mcp).

### Is the Actual Budget MCP Server server safe to use?

Actual Budget MCP Server scores 84 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Actual Budget MCP Server server expose?

Actual Budget MCP Server exposes 17 tools: get-transactions, spending-by-category, monthly-summary, balance-history, budget-vs-actual, and 12 more. Their descriptions and schemas cost roughly 892 tokens of context every time the server is loaded.

### Is the Actual Budget MCP Server server still maintained?

Actual Budget MCP Server is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Actual Budget MCP Server server under?

Actual Budget MCP Server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/actual-mcp
- Socket report: https://socket.dev/npm/package/actual-mcp
- Repository: https://github.com/s-stefanov/actual-mcp
- Changelog RSS feed: https://verifymcp.io/servers/s-stefanov-actual-mcp/actual-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/s-stefanov-actual-mcp/actual-mcp.json
- HTML version of this page: https://verifymcp.io/servers/s-stefanov-actual-mcp/actual-mcp
