远程费用追踪服务

一个基于FastMCP的远程HTTP服务器,通过网络提供模型上下文协议工具,用于管理个人费用,支持通过SQLite存储进行费用的添加、列表和按类别及日期范围汇总。

  • by Rahul4112002
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Rahul4112002/Expense-Tracker-MCP-Server-Remote

使用说明

远程费用跟踪MCP服务器

基于FastMCP的远程HTTP服务器,通过网络公开模型上下文协议工具,用于管理SQLite存储的个人开支。支持按类别和日期范围添加、列出和汇总费用,可通过端口8000上的HTTP传输远程访问。

特性

  • 远程访问:可通过网络访问基于HTTP的MCP服务器
  • 费用管理:添加、列出和跟踪带有类别和子类别的支出
  • SQLite存储:使用WAL模式的SQLite数据库进行持久存储
  • 品类管理:预定义的支出类别,支持自定义类别
  • 日期范围查询:列出并汇总特定日期范围内的费用
  • 异步操作:内置async/await以实现高效的数据库操作

安装

  1. 克隆存储库:
git clone <repository-url>
cd expense-tracker-remote-mcp-server
  1. 安装依赖项:
uv sync

用法

启动服务器:

uv run main.py

服务器将于启动 http://0.0.0.0:8000/mcp 并创建一个 expenses.db 系统临时目录中的文件。

MCP工具

1. add_expense

在数据库中添加新的支出条目。

参数:

  • date (string):费用日期(YYYY-MM-DD格式)
  • amount (浮动):支出金额
  • category (string):费用类别
  • subcategory (字符串,可选):费用的子类别
  • note (字符串,可选):附加注释

退货: 带有成功/错误消息和费用ID的状态对象

2. list_expenses

列出包含日期范围内的费用条目。

参数:

  • start_date (字符串):开始日期(YYYY-MM-DD格式)
  • end_date (字符串):结束日期(YYYY-MM-DD格式)

退货: 带有id、日期、金额、类别、子类别和注释的支出对象数组

3. summarize

在包含日期范围内按类别汇总费用。

参数:

  • start_date (字符串):开始日期(YYYY-MM-DD格式)
  • end_date (字符串):结束日期(YYYY-MM-DD格式)
  • category (字符串,可选):按特定类别筛选

退货: 包含category、total_amount和count的摘要对象数组

MCP资源

expense:///categories

以JSON格式返回可用的支出类别。

默认类别:

  • 餐饮
  • 运输
  • 购物
  • 娱乐
  • 账单和公用事业
  • 医疗保健
  • 旅行
  • 教育
  • 商业
  • 其他

数据库模式

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

配置

  • 主机: 0.0.0.0 (可从所有网络接口访问)
  • 端口: 8000
  • 数据库路径:系统临时目录(expenses.db)
  • 类别文件: categories.json 在项目目录中

使用的技术

  • FastMCP:模型上下文协议服务器框架
  • aiosqlite:异步SQLite数据库操作
  • SQLite:具有WAL模式的数据库引擎,用于并发访问

许可证

[在此处添加您的许可证]