项目简介

本项目是一个 MCP (Model Context Protocol) 服务器,它允许大型语言模型 (LLM) 通过标准化的 MCP 协议与 Ledger CLI 这一强大的命令行复式记账工具进行交互。借助此服务器,LLM 可以查询和分析您的财务数据,辅助您进行财务报告、预算分析和会计任务。

主要功能点

  • 财务数据访问: 通过 Ledger CLI 提供的各种命令,LLM 可以访问和查询您的财务数据,例如账户余额、交易记录、账户列表、收付款人、商品 (货币) 等。
  • 灵活的数据过滤和分析: 支持通过日期范围、账户/交易模式等条件过滤财务数据,并进行统计、预算分析等。
  • 自定义命令执行: 允许 LLM 执行原始的 Ledger CLI 命令,以满足更高级或定制化的财务数据分析需求。
  • 标准化接口: 采用 MCP 协议,为 LLM 提供统一、规范的接口,方便集成和使用。

安装步骤

  1. 安装 Ledger CLI: 确保您的系统已安装 Ledger CLI,并已将其添加到系统 PATH 环境变量中,以便服务器可以调用 'ledger' 命令。
  2. 安装 MCP 服务器依赖: 推荐使用 'uv' 包管理器安装依赖。在仓库根目录下运行命令:
    uv sync

服务器配置

MCP 服务器需要配置 Ledger 文件路径才能正常工作。您可以通过以下两种方式配置:

  • 环境变量 'LEDGER_FILE': 设置名为 'LEDGER_FILE' 的环境变量,其值为您的 Ledger 文件路径。
  • 命令行参数: 在启动服务器时,通过命令行参数指定 Ledger 文件路径。

以下是配置 Claude Desktop MCP 客户端连接到此服务器的 'claude_desktop_config.json' 示例配置:

"mcpServers": {
  "ledger": {
    "command": "uv",
    "args": [
      "run",
      "--env-file",
      "/path/to/your/.env",  // (可选) 环境变量配置文件路径,如果使用环境变量 LEDGER_FILE 配置 Ledger 文件路径,则需要配置此项
      "--with",
      "mcp[cli]",
      "mcp",
      "run",
      "<仓库路径>/main.py"  //  main.py 文件在您本地仓库的绝对路径
    ]
  }
}

配置参数说明:

  • '"ledger"': 服务器名称,您可以自定义,在 Claude Desktop 中用于标识此服务器。
  • '"command": "uv"': 启动服务器的命令,这里使用 'uv run' 来运行 Python 脚本。
  • '"args"': 传递给 'uv run' 命令的参数列表。
    • '"run"': 'uv run' 命令本身。
    • '"--env-file", "/path/to/your/.env"': (可选) 指定环境变量配置文件路径。如果您的 Ledger 文件路径是通过 'LEDGER_FILE' 环境变量配置的,则需要通过此参数指定包含 'LEDGER_FILE' 环境变量定义的文件路径。请将 '/path/to/your/.env' 替换为您实际的环境变量配置文件路径。 如果直接使用命令行参数配置 Ledger 文件路径,则不需要此项。
    • '"--with", "mcp[cli]"': 指定运行环境包含 'mcp[cli]',确保 MCP 服务器及其依赖项可用。
    • '"mcp", "run"': 调用 'mcp run' 命令来启动 MCP 服务器。
    • '"<仓库路径>/main.py"': 指定服务器主程序 'main.py' 文件的路径。请将 '<仓库路径>' 替换为此仓库在您本地文件系统中的绝对路径。

注意: 请根据您的实际情况修改 '<仓库路径>/main.py' 和 '/path/to/your/.env' (如果需要) 为正确的路径。

基本使用方法

配置完成后,您可以在支持 MCP 协议的 LLM 客户端 (例如 Claude Desktop) 中,通过自然语言指令指示 LLM 使用此服务器查询和分析您的财务数据。

例如,您可以向 LLM 提出以下问题:

  • "显示我上个月的支出"
  • "我的所有账户当前余额是多少?"
  • "列出所有与亚马逊的交易"
  • "2023 年我在食品杂货上花了多少钱?"
  • "显示我第一季度的预算执行情况"

LLM 将通过此 MCP 服务器调用 Ledger CLI 命令来获取信息并返回给您。

信息

分类

商业系统