Firefly III MCP Server
Firefly III MCP Server
Это сервер Model Context Protocol (MCP) для Firefly III — бесплатного менеджера личных финансов с открытым исходным кодом. Благодаря этому MCP-серверу пользователи могут использовать AI-инструменты для управления своими счетами и транзакциями Firefly III, создавая AI-ассистентов для личных финансов и учёта.
Структура проекта
Проект использует монорепозиторий, управляемый Turborepo, и содержит следующие основные пакеты:
@firefly-iii-mcp/core — модуль базовой функциональности, обеспечивающий основу для взаимодействия с Firefly III API
@firefly-iii-mcp/local — инструмент командной строки для локального запуска MCP-сервера
@firefly-iii-mcp/cloudflare-worker — реализация для развертывания в Cloudflare Workers
@firefly-iii-mcp/server — сервер на базе Express с поддержкой Streamable HTTP и SSE
Related MCP server: Firefly III MCP Server
Возможности
Взаимодействие с экземплярами Firefly III через AI
Программное управление счетами и транзакциями
Расширяемый набор инструментов для различных финансовых операций
Поддержка локального и облачного развертывания
Совместимость со стандартом Model Context Protocol
Фильтрация инструментов с помощью пресетов или пользовательских тегов для снижения расхода токенов
Предварительные требования
Работающий экземпляр Firefly III
Учетная запись Cloudflare, если вы планируете развертывание с помощью кнопки «Deploy to Cloudflare»
Начало работы
1. Получение Personal Access Token (PAT) Firefly III
Чтобы MCP-сервер мог взаимодействовать с вашим экземпляром Firefly III, необходимо создать Personal Access Token (PAT):
Войдите в свой экземпляр Firefly III.
Перейдите в раздел Options > Profile > OAuth.
В разделе «Personal access tokens» нажмите «Create new token».
Дайте токену описательное имя (например, «MCP Server Token»).
Нажмите «Create».
Важно: немедленно скопируйте созданный токен. Вы не сможете увидеть его снова.
Подробнее см. в официальной документации Firefly III: Personal Access Tokens.
2. Настройка MCP-сервера
Необходимо передать MCP-серверу PAT Firefly III и адрес вашего экземпляра Firefly III. Это можно сделать несколькими способами.
Заголовки запросов (рекомендуется)
Передавайте эти значения в заголовках каждого запроса к MCP-серверу. Обычно это самый безопасный способ:
X-Firefly-III-Url: URL вашего экземпляра Firefly III (например,https://firefly.yourdomain.com)Authorization: Personal Access Token, как правило, с префиксомBearer(например,Bearer YOUR_FIREFLY_III_PAT)
Уточняйте точные названия заголовков в документации используемого вами AI-инструмента или клиента.
Параметры запроса (используйте с осторожностью)
Кроме того, вы можете передавать эти значения в параметрах запроса к MCP-серверу:
baseUrl: URL вашего экземпляра Firefly IIIpat: ваш Personal Access Token Firefly III
Обратите внимание: URL-адреса, включая параметры запроса, могут записываться в журналы в разных системах, что может привести к раскрытию чувствительных данных.
Переменные окружения (в основном для самостоятельного хостинга и локальной разработки)
Укажите следующие переменные окружения перед запуском сервера:
FIREFLY_III_BASE_URL="YOUR_FIREFLY_III_INSTANCE_URL" # e.g., https://firefly.yourdomain.com
FIREFLY_III_PAT="YOUR_FIREFLY_III_PAT"
# Optional: Filter tools using preset or custom tags
FIREFLY_III_PRESET="default" # Available: default, full, basic, budget, reporting, admin, automation
# Or specify custom tool tags (overrides preset if both are set)
FIREFLY_III_TOOLS="accounts,transactions,categories"Running MCP-сервера
Способ 1: Локальный режим
Этот способ подходит для клиентов, поддерживающих вызов MCP-инструментов через стандартный ввод/вывод (stdio), например Claude Desktop.
Базовая команда запуска:
npx @firefly-iii-mcp/local --pat YOUR_PAT --baseUrl YOUR_FIREFLY_III_URLВы также можете отфильтровать доступные инструменты, чтобы снизить расход токенов:
# Using a preset
npx @firefly-iii-mcp/local --pat YOUR_PAT --baseUrl YOUR_FIREFLY_III_URL --preset budget
# Using custom tool tags
npx @firefly-iii-mcp/local --pat YOUR_PAT --baseUrl YOUR_FIREFLY_III_URL --tools accounts,transactions,categoriesКроме того, настройку по JSON можно выполнить по официальной инструкции.
{
"mcpServers": {
"firefly-iii": {
"command": "npx",
"args": [
"@firefly-iii-mcp/local",
"--pat",
"<Your Firefly III Personal Access Token>",
"--baseUrl",
"<Your Firefly III Base URL>",
"--preset",
"default"
]
}
}
}Способ 2: Express-сервер (рекомендуется для веб-приложений)
Этот способ предоставляет HTTP-сервер с поддержкой Streamable HTTP и SSE, что делает его идеальным для веб-приложений.
Как инструмент командной строки
npx @firefly-iii-mcp/server --pat YOUR_PAT --baseUrl YOUR_FIREFLY_III_URLПараметры командной строки:
-p, --pat <pat>— ваша Personal Access Token Firefly III-b, --baseUrl <url>— базовый URL Firefly III-P, --port <port>— порт прослушивания (по умолчанию: 3000)-l, --logLevel <level>— уровень логирования: debug, info, warn, error (по умолчанию: info)-s, --preset <name>— используемый пресет инструментов (default, full, basic, budget, reporting, admin, automation)-t, --tools <list>— разделённый запятыми список тегов инструментов для включения
Как библиотеки
npm install @firefly-iii-mcp/serverБазовый вариант использования:
import { createServer } from '@firefly-iii-mcp/server';
const server = createServer({
port: 3000,
pat: process.env.FIREFLY_III_PAT,
baseUrl: process.env.FIREFLY_III_BASE_URL,
enableToolTags: ['accounts', 'transactions', 'categories'] // Optional: Filter available tools
});
server.start().then(() => {
console.log('MCP Server is running on http://localhost:3000');
});Подробнее см. документацию @firefly-iii-mcp/server.
Способ 3: Развертывание в Cloudflare Workers (рекомендуется для продакшена)
Развернуть MCP-сервер в Cloudflare Workers можно с помощью кнопки ниже:
Примечание: После развертывания необходимо настроить переменные окружения в вашем Cloudflare Worker:
Перейдите на панель управления Cloudflare.
Откройте раздел Workers & Pages.
Выберите ваш развернутый Worker.
Перейдите в Settings > Variables.
Добавьте следующие переменные:
Обязательные:
FIREFLY_III_BASE_URLиFIREFLY_III_PATНеобязательные:
FIREFLY_III_PRESETилиFIREFLY_III_TOOLS
Способ 4: Локальный запуск из исходного кода
[!NOTE]
Для продакшн-использования рекомендуется использовать NPM-пакет или развертывание в Cloudflare Workers.
Клонируйте репозиторий:
git clone https://github.com/etnperlong/firefly-iii-mcp.git cd firefly-iii-mcpУстановите зависимости:
npm installСоздайте файл
.env:FIREFLY_III_BASE_URL="YOUR_FIREFLY_III_INSTANCE_URL" FIREFLY_III_PAT="YOUR_FIREFLY_III_PAT" # Optional: Filter tools FIREFLY_III_PRESET="default" # Or FIREFLY_III_TOOLS="accounts,transactions,categories"Соберите проект:
npm run buildЗапустите сервер разработки:
npm run dev
Настройка фильтрации инструментов
Вы можете определять, какие инструменты будут доступны MCP-клиенту, чтобы уменьшить потребление токенов и сфокусироваться на нужных функциях.
Доступные пресеты
default: базовые инструменты для повседневного использования (accounts, bills, categories, tags, transactions, search, summary)full: все доступные инструментыbasic: базовые инструменты управления финансамиbudget: инструменты, ориентированные на бюджетreporting: инструменты для отчётов и анализаadmin: инструменты администратораautomation: инструменты автоматизации
Руководство по разработке
Проект использует Turborepo для управления монорепозиторием и Changesets для версионирования и публикации.
Распространённые команды
Собрать все пакеты:
npm run buildСобрать отдельные пакеты:
npm run build:coreилиnpm run build:localОчистить артефакты сборки:
npm run cleanРежим разработки:
npm run devОпубликовать пакеты:
npm run publish-packages
Подробные правила разработки описаны в руководстве по контрибуции.
Благодарности
Этот проект использует и дорабатывает скрипты генерации из harsha-iiiv/openapi-mcp-generator. Большое спасибо авторам продута за их работу.
Участие в разработке
Контрибуции приветствуются! Проект использует Turborepo для управления монорепозиторием. Подробное руководство участника см. в CONTRIBUTING.md.
Лицензия
Проект распространяется под лицензией MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
- Era ContextOAuthapp.era
Personal finance, bank account, and shared memory connector for Claude, ChatGPT, Gemini Spark & more
Personal-finance workspace for AI agents: accounts, spending, budgets, goals, and investments.
- ManiloOAuthapp.manilo
Log, query, and edit expenses, budgets, and accounts in Manilo from any MCP-compatible AI assistant.
- BankSyncOAuthio.banksync
Connect AI agents to bank accounts, transactions, balances, and investments.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEnables 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.17 npm-
- AlicenseNot gradedqualityCmaintenanceEnables interaction with Firefly III personal finance management instances via the Firefly III API, deployed as a Cloudflare Worker. It allows AI tools to manage transactions, accounts, budgets, and reporting through natural language.17 npmISC
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to manage Firefly III personal finance accounts and transactions through the Model Context Protocol.17 npm86MIT
- AlicenseBqualityFmaintenanceA 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.58AGPL 3.0