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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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.12
- 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.12ISC
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to manage Firefly III personal finance accounts and transactions through the Model Context Protocol.1282MIT
- 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
Related MCP Connectors
Connect AI agents to bank accounts, transactions, balances, and investments.
Log, query, and edit expenses, budgets, and accounts in Ledgy from any MCP-compatible AI assistant.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/IvanChurakov/firefly-iii-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server