# Actual Budget MCP Server

Подключает Actual Budget к ИИ-ассистенту: счета, транзакции, категории и отчёты доступны через обычные запросы на естественном языке.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 268
- Автор: s-stefanov
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/s-stefanov/actual-mcp
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/mcp/actual-budget-mcp-server

## Что делает

Сервер отдаёт ассистенту данные вашего бюджета в Actual Budget: список счетов с балансами, историю транзакций, категории, плательщиков и правила. Отдельная группа инструментов считает аналитику — расходы по категориям, месячные итоги, сравнение плана с фактом, динамику чистого капитала, движение денег по месяцам и неделям. Пять аналитических инструментов возвращают JSON, а не markdown, чтобы суммы оставались машинночитаемыми: каждое значение — целое число центов, а в ответе есть поле `amountsIn` с описанием знаков.

Есть работа с сохранёнными отчётами и дашбордами: их можно создавать, менять, удалять, добавлять и двигать виджеты. Плюс два готовых промпта — `financial-insights` и `budget-review`. Для запуска нужен Node.js v16 или выше и настроенный Actual Budget; Docker Desktop опционален. Локальный запуск — `git clone`, затем `npm install` и `npm run build`.

Настройка идёт через переменные окружения: `ACTUAL_DATA_DIR` для каталога данных, `ACTUAL_SERVER_URL` и `ACTUAL_PASSWORD` для удалённого сервера, `ACTUAL_BUDGET_SYNC_ID` для выбора бюджета. Если сервер использует OpenID с `ACTUAL_OPENID_ENFORCE=true`, вход по паролю отключён, поэтому `ACTUAL_PASSWORD` не подойдёт — нужен `ACTUAL_SESSION_TOKEN`, который берётся из браузера и имеет приоритет над паролем. Токен даёт полный доступ к бюджетам, так что обращаться с ним стоит как с паролем. При недействительном или истёкшем токене сервер всё равно стартует, но вызовы инструментов падают с ошибкой аутентификации.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `ACTUAL_SERVER_URL`, `ACTUAL_PASSWORD`, `ACTUAL_BUDGET_SYNC_ID`, `ACTUAL_DATA_DIR`, `ACTUAL_BUDGET_ENCRYPTION_PASSWORD`, `ACTUAL_SYNC_TTL_MS` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env ACTUAL_SERVER_URL=<ACTUAL_SERVER_URL> --env ACTUAL_PASSWORD=<ACTUAL_PASSWORD> --env ACTUAL_BUDGET_SYNC_ID=<ACTUAL_BUDGET_SYNC_ID> --env ACTUAL_DATA_DIR=<ACTUAL_DATA_DIR> --env ACTUAL_BUDGET_ENCRYPTION_PASSWORD=<ACTUAL_BUDGET_ENCRYPTION_PASSWORD> --transport stdio actual-budget-mcp-server -- npx -y actual-mcp
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add actual-budget-mcp-server --env ACTUAL_SERVER_URL=<ACTUAL_SERVER_URL> --env ACTUAL_PASSWORD=<ACTUAL_PASSWORD> --env ACTUAL_BUDGET_SYNC_ID=<ACTUAL_BUDGET_SYNC_ID> --env ACTUAL_DATA_DIR=<ACTUAL_DATA_DIR> --env ACTUAL_BUDGET_ENCRYPTION_PASSWORD=<ACTUAL_BUDGET_ENCRYPTION_PASSWORD> -- npx -y actual-mcp
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "actual-budget-mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "actual-mcp"
            ],
            "env": {
                "ACTUAL_SERVER_URL": "<ACTUAL_SERVER_URL>",
                "ACTUAL_PASSWORD": "<ACTUAL_PASSWORD>",
                "ACTUAL_BUDGET_SYNC_ID": "<ACTUAL_BUDGET_SYNC_ID>",
                "ACTUAL_DATA_DIR": "<ACTUAL_DATA_DIR>",
                "ACTUAL_BUDGET_ENCRYPTION_PASSWORD": "<ACTUAL_BUDGET_ENCRYPTION_PASSWORD>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "actual-budget-mcp-server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "actual-mcp"
            ],
            "env": {
                "ACTUAL_SERVER_URL": "<ACTUAL_SERVER_URL>",
                "ACTUAL_PASSWORD": "<ACTUAL_PASSWORD>",
                "ACTUAL_BUDGET_SYNC_ID": "<ACTUAL_BUDGET_SYNC_ID>",
                "ACTUAL_DATA_DIR": "<ACTUAL_DATA_DIR>",
                "ACTUAL_BUDGET_ENCRYPTION_PASSWORD": "<ACTUAL_BUDGET_ENCRYPTION_PASSWORD>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e ACTUAL_SERVER_URL=<ACTUAL_SERVER_URL> -e ACTUAL_PASSWORD=<ACTUAL_PASSWORD> -e ACTUAL_BUDGET_SYNC_ID=<ACTUAL_BUDGET_SYNC_ID> -e ACTUAL_DATA_DIR=<ACTUAL_DATA_DIR> -e ACTUAL_BUDGET_ENCRYPTION_PASSWORD=<ACTUAL_BUDGET_ENCRYPTION_PASSWORD> actual-budget-mcp-server npx -y actual-mcp
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

## Когда брать
- посмотреть балансы всех счетов одним запросом
- отфильтровать транзакции по дате, сумме или плательщику
- сравнить заложенный бюджет с фактическими тратами
- построить отчёт о расходах по категориям за месяц
- собрать дашборд из виджетов и переставить их местами

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
