个人财务管理服务器

Firefly III MCP Server是一个模型上下文协议服务器,通过Claude Desktop、Cursor IDE和其他MCP兼容的AI助手提供对Firefly III个人财务管理的程序化访问。

  • by horsfallnathan
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 horsfallnathan/firefly-iii-mcp-server

使用说明

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代币:

  1. 登录您的Firefly III实例
  2. 首选 选项 → 个人资料 → OAuth
  3. 点击 创建新令牌
  4. 给它一个描述性的名称(例如“MCP服务器”)
  5. 将生成的令牌复制到您的 .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

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加新功能的测试
  5. 运行测试套件
  6. 提交拉取请求

📄 许可证

本项目根据GNU Affero通用公共许可证v3.0(AGPL-3.0)获得许可。请参阅 许可证 文件以获取详细信息。