支出追踪服务

一个基于MCP协议的全面支出追踪系统,支持自然语言日期解析和灵活分类。

  • by bhakti259
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bhakti259/expense-tracker-remote-mcp-server

使用说明

费用跟踪器远程MCP服务器

一个全面的费用跟踪系统,作为具有SSE传输的模型上下文协议(MCP)服务器构建。使用自然语言数据解析和灵活的分类来跟踪、管理和分析您的支出。

特性

🔧 工具

  • 添加费用 -通过灵活的日期解析添加新的费用(支持“今天”、“昨天”、“11月27日”等)
  • list_费用 -按类别、日期范围和限额筛选列出费用
  • 更新_费用 -更新现有费用的任何字段
  • 删除_费用 -从数据库中删除支出
  • 费用汇总 -按类别获取费用汇总,包括总计和百分比

📋 资源

  • expense://categories -访问预定义的费用类别和子类别

🎯 关键能力

  • 自然语言日期解析(“今天”、“上周”、“过去30天”等)
  • 20个预定义的费用类别,包含详细的子类别
  • 用于持久存储的SQLite数据库
  • 按日期范围和类别灵活筛选
  • 包含明细的综合费用汇总

分类

服务器包括20个预定义类别:

  • 食品、交通、住房、公用事业、健康
  • 教育、家庭/儿童、娱乐、购物
  • 订阅、个人护理、礼品/捐赠
  • 财务/费用、商务、旅行、家庭
  • 宠物、税费、投资、杂项

每个类别都有特定的子类别用于详细跟踪(请参阅 categories.json).

安装

pip install -e .

或者使用紫外线:

uv pip install -e .

用法

运行远程服务器

python main.py

或者使用紫外线:

uv run python main.py

服务器将于启动 http://0.0.0.0:8000 并可通过SSE传输访问。

发展模式

使用MCP检查器测试服务器:

uv run fastmcp dev main.py

连接到服务器

配置您的MCP客户端以连接到:

  • 统一资源定位符: http://localhost:8000/sse
  • 运输:SSE(服务器发送事件)

示例用法

添加费用

add_expense(
    date="today",
    amount=45.50,
    category="food",
    subcategory="groceries",
    note="Weekly grocery shopping"
)

列出最近的支出

list_expenses(limit=10, date_range="last week")

获取摘要

summarize_expenses(date_range="this month")

更新支出

update_expense(expense_id=5, amount=50.00, note="Updated amount")

数据库

数据库(FastMCP Cloud注释)

在FastMCP Cloud上,应用程序在临时存储上运行。服务器配置为在FastMCP Cloud上部署时使用可写的临时路径:

  • FastMCP Cloud上使用的数据库路径: /tmp/expense_tracker.db

服务器将在启动时(或第一次调用工具时)使用包含的初始化逻辑自动初始化数据库。

费用存储在SQLite中,模式如下:

CREATE TABLE expenses (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    date TEXT NOT NULL,
    amount REAL NOT NULL,
    category TEXT NOT NULL,
    subcategory TEXT,
    note TEXT
)

依赖项

  • fastmcp>=2.13.1
  • aiosqlite>=0.20.0(异步SQLite数据库操作)
  • python dateutil>=2.8.2(灵活的日期解析)

技术细节

  • 用途 aiosqlite 用于异步数据库操作
  • 所有数据库操作都是非阻塞的
  • 用于持久本地存储的SQLite数据库
  • 自然语言数据解析 python-dateutil

许可证

麻省理工学院