费用追踪服务

一款基于模型上下文协议(MCP)的个人费用追踪与管理服务器,支持通过自然语言交互进行费用管理。

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

使用说明

费用跟踪MCP服务器

一个强大的模型上下文协议(MCP)服务器,用于跟踪和管理个人开支。该服务器与Claude Desktop集成,通过自然语言交互提供无缝的费用管理。

特性

🛠️ 工具

  • 添加费用:通过灵活的日期解析添加新费用(支持“今天”、“昨天”、“2025年11月27日”等)
  • list_费用:按类别、日期范围和自然语言日期查询筛选列出费用
  • 费用汇总:按类别获取费用汇总,包括总额和百分比
  • 更新_费用:修改现有费用记录
  • 删除_费用:按ID删除费用记录

📋 资源

  • expense://categories:从以下位置访问预定义的支出类别和子类别 categories.json

✨ 关键能力

  • 自然语言日期支持:使用“上周”、“上个月”、“今年”、“过去30天”等短语
  • SQLite数据库:轻便高效的本地存储
  • 品类管理:预定义的类别和子类别,以便更好地组织
  • 灵活过滤:按日期范围、类别或特定条件筛选费用
  • 丰富的总结:查看按类别细分和百分比的支出模式

安装

先决条件

  • Python 3.8或更高版本
  • 紫外线 包管理器(推荐)
  • 克劳德桌面版

步骤

  1. 克隆存储库

    git clone <your-repo-url>
    cd Expense-Tracker-MCP-Server
    
  2. 安装依赖项

    使用紫外线(推荐):

    uv pip install -r requirements.txt
    

    或者使用pip:

    pip install -r requirements.txt
    
  3. 安装到Claude桌面

    uv run fastmcp install claude-desktop main.py
    

    或者手动添加到您的Claude Desktop配置中(~/.config/Claude/claude_desktop_config.json 在Mac/Linux或 %APPDATA%\Claude\claude_desktop_config.json 在Windows上):

    {
      "mcpServers": {
        "Expense Tracker Server": {
          "command": "uv",
          "args": [
            "run",
            "--with",
            "fastmcp",
            "fastmcp",
            "run",
            "/absolute/path/to/Expense-Tracker-MCP-Server/main.py"
          ]
        }
      }
    }
    
  4. 重新启动克劳德桌面

    完全退出并重新启动Claude Desktop以加载MCP服务器。

用法

安装后,您可以使用自然语言在Claude Desktop中直接与Expense Tracker交互:

增加费用

"Add an expense of $45.50 for groceries yesterday"
"I spent $20 on lunch today in the Food category"
"Add expense: $100, Transport, Fuel, Nov 25, 2025, note: Monthly fuel"

上市费用

"Show me all expenses from last week"
"List my Food expenses from this month"
"Show expenses from last 30 days"

费用汇总

"Summarize my expenses for last month"
"Show category-wise breakdown for this year"
"Summarize Food expenses from last week"

更新费用

"Update expense ID 5, change amount to $55.50"
"Change expense 3's category to Transport"

删除费用

"Delete expense with ID 7"

数据库模式

服务器使用具有以下模式的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
);

分类

服务器包括预定义的类别 categories.json:

  • 食品(杂货、外出就餐、咖啡、小吃等)
  • 交通(燃料、公共交通、驾驶室、停车场等)
  • 住房(租金、维护、修理等)
  • 公用事业(电、水、互联网、移动等)
  • 健康(药品、医生、保险、健身等)
  • 教育(书籍、课程、在线订阅等)
  • 娱乐(电影、流媒体、游戏等)
  • 购物(服装、电子产品、配饰等)
  • 还有更多。..

您可以通过编辑自定义类别 categories.json.

发展

本地运行

uv run fastmcp dev main.py

项目结构

Expense-Tracker-MCP-Server/
├── main.py                 # Main MCP server code
├── categories.json         # Expense categories and subcategories
├── requirements.txt        # Python dependencies
├── pyproject.toml         # Project metadata
├── expenses.db            # SQLite database (auto-created)
└── README.md              # This file

需求

  • fastmcp>=2.0.0 -用于构建MCP服务器的FastMCP框架
  • python-dateutil>=2.8.0 -灵活的日期解析

故障排除

服务器未显示在Claude Desktop中

  1. 确保Claude Desktop已完全退出(而不仅仅是关闭)
  2. 检查配置文件是否具有正确的绝对路径
  3. 验证以下命令路径 uv 是正确的
  4. 重新启动克劳德桌面

数据库问题

这 expenses.db 文件在项目目录中自动创建。如果您遇到问题:

  • 删除 expenses.db 并重新启动服务器
  • 检查文件权限

日期解析错误

服务器支持各种日期格式。如果遇到解析错误:

  • 使用ISO格式:“YYYY-MM-DD”(例如,“2025-11-27”)
  • 使用常见格式:“2025年11月27日”、“2025年12月27日
  • 使用相对日期:“今天”、“昨天”、“上周”

贡献

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

许可证

MIT许可证-您可以将此项目用于个人或商业目的。

作者

由FastMCP和Claude创建

致谢