费用分摊管理服务

一个用于管理社交活动及费用分摊的API服务,支持创建活动、记录支出、计算分摊金额及生成支付摘要。

  • by abutbul
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 abutbul/gatherings-mcp-python

使用说明

收集MCP服务器

用于管理聚会和费用分担的模型上下文协议服务器。

依赖管理

此项目使用 uv 用于Python依赖管理,而不是 pip。由于需要依赖 模型上下文协议Python SDK.

确保你有 uv 安装或通过pip安装:

pip install uv

要安装项目依赖项,请执行以下操作:

uv pip install -r requirements.txt

概述

Gatherings MCP服务器提供了一个API,允许人工智能助手通过机器对话协议与Gatherings应用程序进行交互。这使得人工智能系统能够帮助用户管理社交活动、郊游或任何由参与者分担费用的聚会的共同费用。

特性

  • 创建和管理多个成员的聚会
  • 为特定成员增加费用
  • 计算公平报销
  • 记录付款和报销情况
  • 生成详细的付款摘要
  • 在聚会中添加/删除成员
  • 根据需要重命名成员

安装

先决条件

  • Python 3.8+
  • SQL炼金术
  • MCP-SDK

设置

  1. 克隆此存储库:

    git clone https://your-repository.git
    cd accel
    
  2. 安装所需的依赖项:

    pip install -r requirements.txt
    
  3. 设置环境变量(可选):

    # Custom database location
    export GATHERINGS_DB_PATH=path/to/database.db
    
    # Custom script location
    export GATHERINGS_SCRIPT=path/to/gatherings.py
    

用法

启动MCP服务器:

python gatherings_mcp_server.py

服务器在stdio上运行,这使其与MCP协议客户端兼容。

api参考

MCP服务器公开了以下工具:

create_gathering(gathering_id: str, members: int)

使用指定数量的成员创建新聚会。

add_expense(gathering_id: str, member_name: str, amount: float)

为聚会中的成员添加费用。

calculate_reimbursements(gathering_id: str)

计算一次聚会谁欠谁什么。

record_payment(gathering_id: str, member_name: str, amount: float)

记录会员的付款(正值)或对会员的报销(负值)。

rename_member(gathering_id: str, old_name: str, new_name: str)

重命名聚会中的成员。

show_gathering(gathering_id: str)

显示聚会的详细信息,包括费用和付款状态。

list_gatherings()

列出数据库中的所有聚会。

close_gathering(gathering_id: str)

将聚会标记为已结束。

delete_gathering(gathering_id: str, force: bool = False)

删除集合和所有相关数据。集 force=True 删除已关闭的聚会。

add_member(gathering_id: str, member_name: str)

向现有聚会添加新成员。

remove_member(gathering_id: str, member_name: str)

从聚会中删除成员(仅当他们没有费用时)。

示例流程

  1. 与5位朋友共进晚餐:

    create_gathering("2023-10-15-dinner", 5)
    
  2. 在人们支付东西时增加费用:

    add_expense("2023-10-15-dinner", "Alice", 120.50)
    add_expense("2023-10-15-dinner", "Bob", 35.00)
    
  3. 计算报销金额:

    calculate_reimbursements("2023-10-15-dinner")
    
  4. 在人们结算时记录付款:

    record_payment("2023-10-15-dinner", "Charlie", 31.10)
    
  5. 所有付款结算后关闭聚会:

    close_gathering("2023-10-15-dinner")
    

建筑

Gatherings MCP服务器由三个主要组件组成:

  1. MCP服务器接口 (gatherings_mcp_server.py):提供人工智能工具可以与之交互的MCP协议接口。

  2. 服务层 (services.py):包含用于管理聚会、费用和付款的业务逻辑。

  3. 数据层 (models.py):使用SQLAlchemy ORM定义数据库模式并处理数据持久性。

数据模型

  • 聚集:代表一个需要分摊费用的社交活动
  • 成员:聚会的参与者
  • 支出:会员为聚会花费的钱
  • 支付:会员为结清余额而支付的款项

贡献

欢迎投稿!请随时提交拉取请求。