mcpField
E
expense-mcp

expense-mcp

本地服务
github.com/justfsl50金融数据134 周前更新

关于 expense-mcp

expense-mcp 是个人收支追踪 MCP 服务,面向希望通过 MCP 客户端管理支出、预算和储蓄目标的用户。它提供周期汇总、消费洞察及本地 stdio 和远程 HTTP 传输。

主要功能

  1. 01记录分类支出与收入
  2. 02按日、周、月、年汇总
  3. 03分类预算及用量提醒
  4. 04创建并追踪储蓄目标
  5. 05分析消费类别与趋势
  6. 06支持 stdio 和 HTTP 传输

适用场景

  1. 01记录日常消费和收入
  2. 02检查本周或上月支出
  3. 03监控分类预算使用情况
  4. 04跟踪储蓄目标进度

MCP 相关

该 MCP 服务向兼容客户端提供收支记录、搜索、汇总、预算和目标等工具,以及摘要资源和月度复盘等提示词。支持本地 stdio 与远程 HTTP 连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"justfsl50-expense": {
"command": "uvx",
"args": [
"expense-mcp"
],
"env": {
"DATABASE_URL": "<DATABASE_URL>",
"CURRENCY": "<CURRENCY>",
"DEFAULT_USER": "<DEFAULT_USER>"
}
}
}
}
启动命令uvx expense-mcp
需要配置的环境变量
DATABASE_URLSQLite or PostgreSQL database URL
CURRENCYCurrency symbol (default: ₹)
DEFAULT_USERUser ID for multi-user setups

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiexpense-mcp1.0.1

工具

10

收录的工具列表 · 更新于 2 周前

参数类型必填说明
paramsany是

详细介绍

💰 expense-mcp

MCP 服务形式的个人开支追踪器——兼容 Claude Desktop、Cursor、nanobot、Windsurf 和任何兼容 MCP 的客户端。

Python MCP SDK License


功能

  • 📝 追踪开支和收入,并为其添加类别和描述
  • 📊 开支汇总——今日、本周、本月、本年
  • 💳 预算管理——按类别设置限额,在达到 80%/100% 时收到提醒
  • 🎯 储蓄目标——创建目标,并通过可视化进度条追踪进度
  • 📈 开支洞察——主要类别、日均开支、开支最多的日期
  • 🗑️ 安全删除——通过基于 Pydantic 的征询请求确认
  • 🔄 双传输模式——stdio(本地)+ streamable HTTP(远程)

安装

# with uv (recommended)
uv pip install git+https://github.com/justfsl50/expense-mcp.git

# with pip
pip install git+https://github.com/justfsl50/expense-mcp.git

# from source
git clone https://github.com/justfsl50/expense-mcp.git
cd expense-mcp
pip install -e .

快速开始

Claude Desktop

添加到 %APPDATA%\Claude\claude_desktop_config.json(Windows)或 ~/Library/Application Support/Claude/claude_desktop_config.json(Mac):

{
  "mcpServers": {
    "expense-mcp": {
      "command": "uv",
      "args": ["run", "expense-mcp"],
      "env": {
        "DATABASE_URL": "sqlite:///expenses.db",
        "CURRENCY": "₹",
        "DEFAULT_USER": "me"
      }
    }
  }
}
Cursor / Windsurf

配置相同——粘贴到相应应用的 MCP 设置中。

nanobot
{
  "mcp": {
    "servers": [{
      "name": "expense-mcp",
      "command": "uv run expense-mcp"
    }]
  }
}
HTTP 模式(远程 / 多客户端)
python server.py http
# Server runs at http://127.0.0.1:8000/mcp

环境变量

变量默认值说明
DATABASE_URLsqlite:///expenses.dbSQLite 或 PostgreSQL URL
CURRENCY₹货币符号
DEFAULT_USERdefault多用户设置中的用户 ID

PostgreSQL 示例:

DATABASE_URL=postgresql://user:pass@localhost:5432/expenses

工具

工具说明只读
expense_add保存开支或收入❌
expense_search按文本、日期、类别、金额筛选✅
expense_summary今日 / 本周 / 本月 / 本年总额✅
expense_delete通过 Pydantic 确认提示删除❌
expense_insights开支模式和主要类别✅
budget_set设置每月类别预算❌
budget_list查看预算及使用率 %✅
goal_create创建储蓄目标❌
goal_update为目标增加资金❌
goal_list查看目标及进度条✅

资源

URI说明
expense://summary/month本月汇总
expense://budgets/current本月预算
expense://goals/all所有储蓄目标

提示词

提示词标题说明
monthly_review月度回顾开始全面的月度开支回顾
budget_setup预算设置根据历史记录自动推荐预算
savings_plan储蓄计划为储蓄目标制定计划

使用示例

在任何 MCP 客户端中自然地进行对话:

"spent 500 on groceries"
"show food expenses this week"
"how much did I spend last month?"
"set food budget to 5000"
"am I within budget?"
"save 1000 toward my iPhone goal"
"give me spending insights"
"delete expense #12"

架构

  • MCP SDK v1.26.0,使用 FastMCP + json_response=True
  • 类型化生命周期——通过 AppContext 数据类管理数据库引擎
  • SQLAlchemy 2.0——DeclarativeBase、sessionmaker
  • Pydantic v2——输入验证、征询请求模式
  • 工具注解——readOnlyHint、destructiveHint、idempotentHint
  • 上下文日志记录——在工具中使用 ctx.info()、ctx.warning()
数据库架构
expenses  — id, user_id, amount, category, description, type, date, source, created_at
budgets   — id, user_id, category, amount, month
goals     — id, user_id, name, target, saved, deadline

许可证

MIT——可免费使用、修改和分发。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。