使用说明
Firefly III MCP服务器
一种模型上下文协议(MCP)服务器,提供对以下内容的编程访问 萤火虫III 通过Claude Desktop、Cursor IDE和其他兼容MCP的AI助手进行个人财务管理。
📚 文档
📖 全部文件
概述
此MCP服务器使AI助手能够与您的Firefly III实例进行交互,使您能够通过自然语言对话管理个人财务。你可以:
- 💰 管理帐户:列出、创建、更新和删除资产、支出、收入和负债账户
- 📊 处理交易:创建、检索、更新和删除财务交易
- 💳 预算管理:处理预算、预算限制并跟踪支出
- 🏷️ 分类:管理交易类别和标签
- 💸 账单跟踪:处理经常性账单和付款监控
- 🐷 扑满:管理节约目标并跟踪进度
- ⚙️ 规则和自动化:配置事务规则和规则组
主要特点
- 🤖 人工智能集成:与Claude Desktop、Cursor IDE和其他MCP客户端无缝协作
- 💡 综合API:支持大多数Firefly III v1 API端点
- ⚡ 灵活的模式:在合并工具或直接API访问之间进行选择
- 🔒 类型安全:对所有请求/响应进行完整的Pydantic模型验证
- 🎯 可配置的:仅启用所需的Firefly III实体
快速示例
一旦设置好,您就可以自然地与您的财务进行交互:
"Show me my account balances"
"Create a new expense for $25.50 at Coffee Shop from my Checking Account"
"What's my budget status for this month?"
"List all my transactions from last week"
"Create a new savings goal for a vacation with a target of $2000"
"Show me all bills that are due this month"
"Help me create a transaction rule that automatically categorizes Starbucks purchases as 'Coffee'"
"Create a new budget category for 'Home Improvement' with a $500 monthly limit"
需求
- Python 3.12+
- 正在运行的Firefly III实例
- Firefly III API代币(个人访问代币)
🚀 快速设置
本地安装
在本地克隆并设置项目:
# Clone the repository
git clone https://github.com/horsfallnathan/firefly-iii-mcp-server.git firefly-mcp
cd firefly-mcp
# Install with UV (recommended)
uv sync
# Or with pip
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -e .
配置
创建一个 .env 项目根目录中的文件:
# Required: Your Firefly III API URL and token
FIREFLY_API_URL=https://your-firefly-instance.com/api/v1
FIREFLY_API_TOKEN=your_token_here
# Optional: Enable all entities (default: just accounts). Requires `FIREFLY_DIRECT_MODE=true`
# Enabling all entities would lead to about 76 tools being registered and most clients suggest a maximum of 40 tools
FIREFLY_ENABLED_ENTITIES=all
# When false, the server will register consolidated tools for dynamic operation. When true, it will register individual tools for each operation
FIREFLY_DIRECT_MODE=false
FIREFLY_LOG_LEVEL=INFO
🔑 获取Firefly III API代币:
- 登录您的Firefly III实例
- 首选 选项 → 个人资料 → OAuth
- 点击 创建新令牌
- 给它一个描述性的名称(例如“MCP服务器”)
- 将生成的令牌复制到您的
.env文件
🔌 MCP客户端集成
光标IDE
添加到您的工作区或全局设置:
{
"mcp.servers": {
"firefly-mcp": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/firefly-mcp", "run", "firefly-mcp"],
"env": {
"FIREFLY_API_URL": "https://your-firefly-instance.com/api/v1",
"FIREFLY_API_TOKEN": "your_token_here",
"FIREFLY_ENABLED_ENTITIES": "all",
"FIREFLY_DIRECT_MODE": "false"
}
}
}
}
VSCode
创建一个 mcp.json 项目根目录或工作区中的文件:
{
"servers": {
"firefly-mcp": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/firefly-mcp", "run", "firefly-mcp"],
"env": {
"FIREFLY_API_URL": "https://your-firefly-instance.com/api/v1",
"FIREFLY_API_TOKEN": "your_token_here",
"FIREFLY_ENABLED_ENTITIES": "all",
"FIREFLY_DIRECT_MODE": "false"
}
}
}
}
操作模式
合并模式(默认)
提供三个用于动态操作的元工具:
firefly_execute(entity, operation, params)-执行任何Firefly III操作firefly_list_operations(entity?)-列出可用操作firefly_get_schema(entity, operation)-获取操作的参数架构
直接模式
集 FIREFLY_DIRECT_MODE=true 为每个操作注册单独的工具:
account_list(limit?, page?)-列出帐户account_get(id)-获取帐户详细信息transaction_create(transactions)-创建交易- 还有更多。..
🛠️ 开发与测试
使用MCP检查器
对于开发和调试,请使用 MCP检查员:
# Install and run MCP Inspector
npx @modelcontextprotocol/inspector uv run firefly-mcp
MCP检查器提供了一个web界面,您可以在其中:
- 🧪 测试所有可用的工具和操作
- 🔍 检查请求/响应模式
- 🐛 调试服务器连接和身份验证
- ✅ 验证您的Firefly III配置
运行测试
# Run all tests
make test-all
# Run with coverage
make coverage
# Run specific test types
make test-unit
make test-integration
地方发展
# Development with .env file
make dev
# Direct execution
uv run firefly-mcp
python -m firefly_mcp.main
📋 环境变量引用
| 变量 | 默认值 | 描述 |
|---|---|---|
FIREFLY_API_URL |
https://firefly.dev.nlocal/api/v1 |
您的Firefly III API基础URL |
FIREFLY_API_TOKEN |
(必填) | Firefly III的个人访问令牌 |
FIREFLY_DISABLE_SSL_VERIFY |
false |
禁用SSL验证以进行开发 |
FIREFLY_DIRECT_MODE |
false |
为每个操作启用单独的工具 |
FIREFLY_ENABLED_ENTITIES |
account |
要启用的以逗号分隔的实体列表 |
FIREFLY_LOG_LEVEL |
INFO |
日志记录级别(调试、信息、警告、错误) |
🎯 API兼容性
此MCP服务器与Firefly III API v1兼容。它已经过以下测试:
- ✅ 萤火虫III v6.x
🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加新功能的测试
- 运行测试套件
- 提交拉取请求
📄 许可证
本项目根据GNU Affero通用公共许可证v3.0(AGPL-3.0)获得许可。请参阅 许可证 文件以获取详细信息。