支出追踪服务

一个本地MCP(模型上下文协议)服务器,允许通过自然对话记录支出、设置预算并汇总财务状况。

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

使用说明

MCP费用跟踪器

本地MCP(模型上下文协议)服务器,允许您直接通过Claude跟踪费用和预算。记录支出,制定每月预算,总结你的财务状况——所有这些都是通过自然对话完成的。


目录


先决条件

在开始之前,请确保已安装以下内容:

  • Python 3.12+ — 点击此处下载
  • 紫外线 (推荐使用包管理器)--安装时使用:
    pip install uv
    # or on macOS/Linux:
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  • 克劳德桌面 — 点击此处下载

安装

1.克隆存储库

git clone https://github.com/Theallkeeeymist/expense-tracker-mcp.git
cd expense-tracker-mcp

2.安装依赖项

uv sync

这将创建一个虚拟环境,并从安装所有必需的软件包 uv.lock.

3.验证设置

uv run python main_local.py

如果没有出现错误,则服务器已准备好连接到Claude Desktop。


连接到克劳德桌面

MCP服务器是通过Claude Desktop在启动时读取的JSON配置文件进行配置的。

1.查找您的Claude Desktop配置文件

操作系统 位置
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
窗户 %APPDATA%\Claude\claude_desktop_config.json

2.打开(或创建)配置文件并添加服务器条目

{
  "mcpServers": {
    "expense-tracker-server": {
      "command": "/absolute/path/to/uv.exe",
      "args": [
        "run",
        "--project",
        "/absolute/path/to/expense-tracker-mcp",
        "fastmcp",
        "run",
        "/absolute/path/to/expense-tracker-mcp/main_local.py:mcp"
      ]
    }
  }
}

替换 /absolute/path/to/uv.exe 与您的完整路径 uv 可执行。

Windows上的示例:

{
  "mcpServers": {
    "expense-tracker-server": {
      "command": "C:\\Users\\YourName\\AppData\\Local\\Programs\\Python\\Python312\\Scripts\\uv.exe",
      "args": [
        "run",
        "--project",
        "C:\\Users\\YourName\\PycharmProjects\\expense-tracker-mcp",
        "fastmcp",
        "run",
        "C:\\Users\\YourName\\PycharmProjects\\expense-tracker-mcp\\main_local.py:mcp"
      ]
    }
  }
}

macOS/Linux上的示例:

{
  "mcpServers": {
    "expense-tracker-server": {
      "command": "/Users/yourname/.local/bin/uv",
      "args": [
        "run",
        "--project",
        "/Users/yourname/projects/expense-tracker-mcp",
        "fastmcp",
        "run",
        "/Users/yourname/projects/expense-tracker-mcp/main_local.py:mcp"
      ]
    }
  }
}

3.重新启动克劳德桌面

退出并重新启动Claude Desktop。您应该看到费用跟踪工具出现在工具面板中(🔧 图标)。


可用工具

连接后,Claude可以代表您使用以下工具:

add_expenses

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

参数 类型 必填 说明
date string 是 日期 YYYY-MM-DD 格式
amount 浮动 是 费用金额
category string YES 主类别(例如。 food)
subcategory string 否 子类别(例如。 groceries)
note string 否 可选注释或描述

list_expenses

列出日期范围内的所有费用。

参数 类型 必填 说明
start_date string 是 开始日期 YYYY-MM-DD
end_date string 是 结束日期 YYYY-MM-DD

summarize

获取一个日期范围内的按类别分类的支出摘要。

参数 类型 必填 说明
start_date string 是 开始日期 YYYY-MM-DD
end_date string 是 结束日期 YYYY-MM-DD
category string 否 将摘要筛选到特定类别

set_budget

为某个类别设置每月支出限额。

参数 类型 必填 说明
category string 是 类别名称
monthly_limit 浮动 是 预算限额
month string 是 月份 YYYY-MM 格式

budget_left

检查每个类别剩余的预算,并附上警告指标。

参数 类型 必填 说明
month string 是 月份 YYYY-MM 格式
category string 否 筛选到特定类别

返回状态: OK, WARNING: Low on budget,或 BUDGET EXHAUSTED.


saved_in_budget

查看您在给定月份每个类别的预算下节省了多少。

参数 类型 必填 说明
month string 是 月份 YYYY-MM 格式
category string 否 筛选到特定类别

fetch_budget

检索当前设置的一个月的预算。

参数 类型 必填 说明
month string 是 月份 YYYY-MM 格式
category string 否 筛选到特定类别

update_expense

更正现有费用的金额或类别。

参数 类型 必填 说明
id int 是 要更新的费用ID
amount 浮动 否 新金额
category string 否 新类别

delete_expense

删除错误输入的费用。

参数 类型 必填 说明
id int 是 要删除的费用ID

delete_budget

删除预算条目。

参数 类型 必填 说明
category string 是 要删除的类别预算

类别

跟踪器配备了一个全面的分类系统,该系统在 categories.json顶级类别包括:

类别 子类别示例
food 杂货、外出就餐、送餐
transport 燃料、铁路、公共交通
housing 租金、维修服务、家具
utilities 电力、互联网宽带、手机
health 药物、医生咨询、健康
education 书籍、课程、在线订阅
entertainment 电影_活动、流媒体_订阅、郊游
shopping 服装、电子产品、家居装饰
investments 共同基金、股票、加密货币
travel 航班、酒店、签证护照
taxes 所得税、消费税、税费
misc 未分类,其他

看 categories.json 查看完整列表。


示例提示

连接后,试着对克劳德说:

"Add an expense of ₹450 for groceries today"

"Show me all my expenses from March 1st to March 26th"

"Set a budget of ₹5000 for food for March 2026"

"How much of my food budget is left for this month?"

"Summarize my spending for March 2026"

"I made a mistake on expense ID 3, change the amount to ₹200"

"How much did I save under budget in February?"

"Delete expense number 7"

项目结构

expense-tracker-mcp/
├── main_local.py        # MCP server for local use (connect this to Claude Desktop)
├── main.py              # HTTP server variant (for hosted/production deployment)
├── categories.json      # Full category and subcategory definitions
├── pyproject.toml       # Project metadata and dependencies
├── uv.lock              # Locked dependency versions
├── .python-version      # Pinned Python version (3.12)
├── .gitignore
└── README.md

运行时创建的数据文件(gitignored):

  • expenses_db --存储所有费用记录的SQLite数据库
  • budget.db --存储预算配置的SQLite数据库

备注

  • main_local.py 是用于本地Claude Desktop集成的文件。它通过标准使用同步SQLite sqlite3 模块。
  • main.py 是一个单独的基于HTTP的服务器,用于云/生产部署 不需要 供当地使用。
  • 两个数据库(expenses_db 和 budget.db)在第一次运行时自动创建,无需设置。
  • 所有货币金额均以浮动形式存储;使用你喜欢的任何货币,只要保持一致。