Skip to main content
Glama
YakupEmreYerli

Firefly III MCP Server

Firefly III MCP Server

Предоставьте ИИ-ассистенту доступ на чтение — и, если разрешите, на запись — к вашему собственному экземпляру Firefly III через Model Context Protocol.

146 операций по 26 сущностям: транзакции, счета, бюджеты, категории, теги, счета-фактуры, копилки, правила, а также поиск и анализ периодов.

Türkçe: README.tr.md

Каждый запускает это против своего экземпляра Firefly со своим токеном. Ничего не передаётся, и никакие данные не проходят через третьи стороны.

Install

Требуется Node.js 20.6+. Самый быстрый способ — позволить установщику сделать всё самому:

npx -y @yakupemreyerli/firefly-mcp setup

Он запрашивает адрес вашего Firefly III и API-токен, проверяет, что они действительно работают с вашим экземпляром, а затем настраивает Claude Code и Claude Desktop, если находит их — создавая резервные копии всего, к чему прикасается, и не трогая ваши остальные MCP-серверы. Для любого другого клиента он выводит конфигурацию для вставки.

Если вы предпочитаете сделать это вручную:

Claude Code

claude mcp add firefly \
  --env FIREFLY_API_URL=your-firefly.example \
  --env FIREFLY_API_TOKEN=your-token \
  -- npx -y @yakupemreyerli/firefly-mcp

Claude Desktop, Cursor и другие клиенты

Добавьте это в файл конфигурации MCP клиента:

{
  "mcpServers": {
    "firefly": {
      "command": "npx",
      "args": ["-y", "@yakupemreyerli/firefly-mcp"],
      "env": {
        "FIREFLY_API_URL": "your-firefly.example",
        "FIREFLY_API_TOKEN": "your-token"
      }
    }
  }
}

Получите токен в Firefly III → Options → Profile → OAuth → Create New Personal Access Token. Для URL достаточно вашего домена — https:// и /api/v1 подставляются автоматически. Укажите полный URL, если ваш экземпляр находится в подкаталоге, на нестандартном порту или по обычному http.

Related MCP server: Firefly III MCP Server

Насколько далеко это может зайти

Через stdio — настолько, насколько позволяет токен Firefly: вы можете попросить ассистента записать покупку или категоризировать транзакцию, и он это сделает. Не существует общесерверной настройки прав — для сеанса, который может только отвечать на вопросы, выдайте в Firefly III Personal Access Token только для чтения, чтобы ограничение накладывалось Firefly, а не переменной, которую тот же человек может изменить.

Через HTTP с OAuth доступ определяется для каждого подключения: firefly:read, firefly:write и firefly:destructive выдаются на экране пароля, а поверхность, которая не была предоставлена, скрывается и отклоняется.

Что видит ассистент

Пять инструментов, а не 146 — и выполнение разделено по уровню риска, чтобы хост мог отличить чтение баланса от удаления транзакции:

Инструмент

Ответы

Риск

firefly_query

Читает что угодно. Его описание содержит каталог, поэтому выбор операции не требует дополнительного вызова.

только чтение

firefly_mutate

Создаёт или изменяет запись.

запись

firefly_destructive

Удаляет запись или перезаписывает одно поле сразу во многих записях.

необратимо

firefly_list_operations

Что я могу сделать с этой сущностью?

только чтение

firefly_get_schema

Какие параметры принимает эта операция?

только чтение

Каждый несёт аннотации инструментов MCP (readOnlyHint, destructiveHint, idempotentHint), и разделение соблюдается, а не просто заявлено: удаление, запрошенное через firefly_query, отклоняется. Подключение, получившее только firefly:read, вообще не видит два пишущих инструмента.

Большинство MCP-клиентов деградируют после примерно 40 инструментов, поэтому поверхность состоит из трёх.

Ответы обрезаются перед тем, как попасть к модели: пустые и null-атрибуты всегда отбрасываются, а каждый инструмент выполнения принимает список fields, который оставляет только те атрибуты, которые вы назвали — на большом списке транзакций это сокращение примерно на 90%.

Конфигурация

Переменная

По умолчанию

Назначение

FIREFLY_API_URL

Обязателен. Голый домен или полный базовый URL, включая /api/v1.

FIREFLY_API_TOKEN

Обязателен. Personal Access Token.

FIREFLY_DISABLE_SSL_VERIFY

false

Только для локального экземпляра с самоподписанным сертификатом.

Удалённый HTTP-режим

Для клиентов, которые подключаются по HTTP, а не запускают процесс — например, n8n — тот же сервер поддерживает streamable HTTP:

export MCP_HTTP_TOKEN=$(openssl rand -hex 32)
npx -y -p @yakupemreyerli/firefly-mcp firefly-mcp-http

firefly-mcp-http — это второй бинарный файл в том же пакете, поэтому npx требует -p, чтобы указать пакет и команду отдельно.

Он отказывается запускаться без MCP_HTTP_TOKEN, и каждый запрос к /mcp должен содержать Authorization: Bearer <token>. /health открыт для проверок контейнеров. В репозитории есть Dockerfile и compose.example.yml.

Поместите его за TLS. Токен — единственное, что отделяет интернет от доступа на запись к вашей финансовой истории — не открывайте порт напрямую.

Документация

Страница

Что описывает

Quickstart

Получение токена, подключение клиента, что попробовать в первую очередь, устранение неполадок

Configuration

Каждая переменная окружения, политика разрешений, HTTP-режим

MCP Integration

Claude Code, Claude Desktop, Cursor, VS Code, n8n и удалённый HTTP

Operations

Все 146 операций, обрезка ответов, коварные особенности Firefly

Analysis Operations

summary.overview, поиск и восемь insight-эндпоинтов

MCP Inspector

Интерактивное исследование сервера во время разработки

Docker

Для HTTP-режима есть готовый образ для linux/amd64 и linux/arm64:

docker run -d \
  -e FIREFLY_API_URL=your-firefly.example \
  -e FIREFLY_API_TOKEN=your-token \
  -e MCP_HTTP_HOST=0.0.0.0 \
  -e MCP_HTTP_TOKEN="$(openssl rand -hex 32)" \
  -p 3000:3000 \
  ghcr.io/yakupemreyerli/mcp-firefly-iii:latest

/health отвечает без токена, для проверок контейнеров. Всё на /mcp требует Authorization: Bearer <MCP_HTTP_TOKEN>.

Для всего, от чего вы зависите, фиксируйте версию (:0.3.1), а не :latest.

Разработка

git clone https://github.com/YakupEmreYerli/mcp-firefly-iii.git
cd mcp-firefly-iii
npm install
cp .env.example .env    # fill in your instance
npm test                # mocked; never touches a live instance
npm run build
npm run check           # read-only connection check against .env

Тесты используют моки и никогда не выходят в сеть. npm run smoke:live — инструмент мейнтейнера, который проходит по всем операциям чтения против экземпляра из .env; он только для чтения и не входит в опубликованный пакет.

Участие в разработке

Баг-репорты и пул-реквесты приветствуются. Смотрите CONTRIBUTING.md: там описана структура кода, как запускать тесты и особенности Firefly III, которые стоит знать, прежде чем что-то трогать.

Нашли проблему безопасности? Пожалуйста, сообщите о ней конфиденциально — см. SECURITY.md.

Лицензия

MIT — см. LICENSE.

A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
11Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    An MCP server implementation that provides programmatic access to personal finance data through LunchMoney's API, enabling AI assistants to manage transactions, budgets, categories, and assets.
    59
    2,361
    98
    MIT
  • -
    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.
    29
  • A
    license
    Not graded
    quality
    C
    maintenance
    A comprehensive MCP server that enables AI assistants to manage Lunch Money finances through 37 tools for transactions, budgets, and accounts. It supports both local stdio and remote HTTP transport modes with secure, encrypted credential storage.
    17
    3
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    A Model Context Protocol server that provides programmatic access to Firefly III personal finance management. It enables AI assistants to manage accounts, transactions, budgets, and more through natural language.
    5
    8
    AGPL 3.0

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/YakupEmreYerli/mcp-firefly-iii'

If you have feedback or need assistance with the MCP directory API, please join our Discord server