Firefly III MCP服务器(Go)
一个轻量级的模型上下文协议(MCP)服务器 萤火虫III用Go写的。此服务器允许AI助手与您的Firefly III实例交互,以管理帐户、交易和类别。
特性
- 创建帐户 -创建银行账户、支出账户、收入账户等。
- 创建交易 -记录提款、存款和转账
- 创建类别 -按类别组织您的交易
- 列出资源 -查看现有帐户、类别和交易
先决条件
- 转到1.22或更高版本
- 跑步 萤火虫III 例子
- Firefly III个人访问令牌(PAT)
安装
来源
git clone https://github.com/codemi/firefly-iii-mcp-go.git
cd firefly-iii-mcp-go
make build下载二进制文件
从以下网址下载适用于您平台的预构建二进制文件 发布 页面。
获取个人访问令牌
- 登录您的Firefly III实例
- 导航到 选项>配置文件>OAuth
- 在“个人访问令牌”下,单击 创建新令牌
- 为其命名(例如,“MCP服务器”)
- 立即复制生成的令牌(您将不会再看到它)
用法
命令行
# Using .env file (recommended)
cp .env.example .env
# Edit .env with your values
./bin/firefly-mcp
# Using command-line flags
./bin/firefly-mcp --baseUrl https://firefly.example.com --pat YOUR_TOKEN
# Using environment variables
export FIREFLY_III_BASE_URL="https://firefly.example.com"
export FIREFLY_III_PAT="YOUR_TOKEN"
./bin/firefly-mcp服务器模式
服务器支持两种模式:
标准模式(默认)
适用于通过标准输入/输出进行通信的CLI工具,如Claude Desktop。
./bin/firefly-mcp --mode stdioSSE模式
带有web应用程序服务器发送事件的HTTP服务器。
./bin/firefly-mcp --mode sse --port 3000终点:
GET /sse-建立SSE连接POST /message-向服务器发送消息
配置
配置按以下优先级顺序加载:
- 命令行标志(最高优先级)
- 环境变量
.env文件(最低优先级)
可用选项:
| 标志 | 环境变量 | 默认值 | 描述 |
|---|---|---|---|
--baseUrl | FIREFLY_III_BASE_URL | - | 萤火虫III实例URL |
--pat | FIREFLY_III_PAT | - | 个人访问令牌 |
--mode | FIREFLY_III_MODE | stdio | 服务器模式: stdio 或 sse |
--port | FIREFLY_III_PORT | 3000 | SSE模式端口 |
使用克劳德桌面
添加到您的Claude Desktop配置(~/.config/claude/claude_desktop_config.json 在Linux或 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"firefly-iii": {
"command": "/path/to/firefly-mcp",
"args": [
"--baseUrl", "https://firefly.example.com",
"--pat", "YOUR_TOKEN"
]
}
}
}或者使用环境变量:
{
"mcpServers": {
"firefly-iii": {
"command": "/path/to/firefly-mcp",
"env": {
"FIREFLY_III_BASE_URL": "https://firefly.example.com",
"FIREFLY_III_PAT": "YOUR_TOKEN"
}
}
}
}可用工具
store_account
在Firefly III中创建新帐户。
所需参数:
name-账户名称(例如“我的支票账户”)type-账户类型:asset,expense,revenue,cash,liability
可选参数:
iban-伊班bic-BIC/SWIFT代码account_number-账号opening_balance-期初余额(例如“1000.00”)opening_balance_date-YYYY-MM-DD格式的日期currency_code-货币(例如“欧元”、“美元”)account_role-资产账户的角色notes-附加说明
store_transaction
在Firefly III中创建新交易。
所需参数:
type-交易类型:withdrawal,deposit,transferdescription-交易描述amount-金额(例如“25.50”)date-YYYY-MM-DD格式的日期
可选参数:
source_name-源账户名称(提款/转账时需要)destination_name-目的地账户名称(存款/转账所需)category_name-交易的类别currency_code-货币代码notes-附加说明tags-以逗号分隔的标签列表apply_rules-是否应用规则(默认值:true)
store_category
在Firefly III中创建一个新类别。
所需参数:
name-类别名称(例如“杂货”)
可选参数:
notes-附加说明
list_accounts
列出所有帐户,可选择按类型筛选。
可选参数:
type-按类型筛选:all,asset,expense,revenue,cash,liability
list_categories
列出所有类别。
list_transactions
列出日期范围内的交易。
可选参数:
start-YYYY-MM-DD格式的开始日期end-YYYY-MM-DD格式的结束日期type-按类型筛选:all,withdrawal,deposit,transfer
发展
构建
make build为所有平台构建
make build-all运行测试
make test清洁
make clean许可证
MIT许可证-请参阅 许可证 了解详情。
致谢
灵感来自 萤火虫iii mcp TypeScript实现。
