远程费用跟踪MCP服务器
基于FastMCP的远程HTTP服务器,通过网络公开模型上下文协议工具,用于管理SQLite存储的个人开支。支持按类别和日期范围添加、列出和汇总费用,可通过端口8000上的HTTP传输远程访问。
特性
- 远程访问:可通过网络访问基于HTTP的MCP服务器
- 费用管理:添加、列出和跟踪带有类别和子类别的支出
- SQLite存储:使用WAL模式的SQLite数据库进行持久存储
- 品类管理:预定义的支出类别,支持自定义类别
- 日期范围查询:列出并汇总特定日期范围内的费用
- 异步操作:内置async/await以实现高效的数据库操作
安装
- 克隆存储库:
git clone
cd expense-tracker-remote-mcp-server- 安装依赖项:
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模式的数据库引擎,用于并发访问
许可证
\[在此处添加您的许可证\]
