财务数据查询服务

Beanquery MCP是一个实验性的财务数据查询服务器,通过Model Context Protocol(MCP)与Beancount账本文件交互,支持使用Beancount查询语言(BQL)进行财务数据查询和分析。

  • by vanto
  • Python
  • 本地部署
  • 53 星标
  • 更新于
在 GitHub 查看 vanto/beanquery-mcp

使用说明

查询MCP

Beancount MCP服务器是 模型上下文协议(MCP) 设计用于与 Beancount 分类账文件。利用 Beancount查询语言(BQL) 和那个 beanquery 该服务器支持对以Beancount格式存储的财务数据进行无缝查询和分析。通过集成MCP,该服务器促进了AI助手和Beancount账簿之间的标准化通信,增强了财务数据的可访问性和实用性。

注意:此服务器是实验性的,可能会发生重大变化。建议在开发环境中使用它,并为进一步的改进提供反馈。

生成的样本分类账可以在以下位置找到 sample.bean

可用资源和工具

  • 工具:
    • set_ledger_file:设置用于查询的Beancount分类账文件(如果未通过环境变量设置)。
    • run_query:对加载的Beancount文件运行BQL查询。
  • 资源:
    • beanquery://tables:获取BQL可以访问的表列表。
    • beanquery://accounts:获取加载的Beancount文件中的帐户列表。

使用Claude.ai的示例

有关扩展MCP交互的屏幕截图,请参阅 这里.

⚠️ 隐私警告

该工具通过模型上下文协议(MCP)与语言模型提供者(LLM)进行交互,因此可能会将您的Beancount分类账的部分内容(包括潜在的机密或私人财务信息)传输给第三方服务。

请谨慎使用此工具,特别是在以下情况下:

  • 您的分类账包含敏感数据(例如,客户姓名、工资明细、健康相关费用)。
  • 您正在使用云托管或非自托管的LLM后端。

建议:

  • 屏蔽或编辑测试账簿中的敏感数据。
  • 尽可能使用自托管LLM。
  • 审查通过MCP发送的数据,以确保符合您的隐私和安全要求。

[!小心] 您有责任保护您的财务数据。不要分享你不愿意公开的账簿。

设置

先决条件

  • Python 3.10或更高版本
  • 紫外线 用于管理Python项目(推荐)

用法

运行服务器

  1. 发展模式: 使用MCP检查器测试和调试服务器:

    mcp dev server.py
    
  2. Claude桌面集成: 将服务器安装到Claude Desktop中:

    mcp install server.py
    
    • 快速开始:

      uv run mcp install server.py -v BEANCOUNT_LEDGER=$(pwd)/sample.bean --with beancount --with beanquery
      
    • 自定义名称:

      uv run mcp install server.py --name "Beanquery MCP Server" --with beancount --with beanquery
      
    • 环境变量:

      uv run mcp install server.py -v BEANCOUNT_LEDGER=/path/to/your/ledger.bean --with beancount --with beanquery
      uv run mcp install server.py -f .env --with beancount --with beanquery
      

测试

使用以下命令运行测试套件 pytest:

pytest server_test.py

贡献

  1. 分叉存储库。
  2. 创建要素分支:
    git checkout -b feature-name
    
  3. 提交您的更改:
    git commit -m "Add feature description"
    
  4. 推到您的分支:
    git push origin feature-name
    
  5. 打开一个pull请求。

许可证

该项目根据MIT许可证获得许可。请参阅 LICENSE 文件以获取详细信息。