费用追踪服务器

一个为Claude Desktop设计的综合性费用追踪MCP服务器,提供8种专业工具,支持多种数据库和高级分析功能。

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

使用说明

费用跟踪MCP服务器

基于简化设计原则和模块化架构的Claude Desktop综合费用跟踪MCP服务器,配备8个专业级工具。

🚀 特性

  • 8核心工具:从基本查询到人工智能驱动的见解
  • 模块化架构:通过可插拔数据库支持实现关注点的清晰分离
  • 数据库不可知:支持SQLite(已实现)、PostgreSQL、MongoDB和MySQL(计划中)
  • 层次分类:使用Markdown树视图组织支出/收入类别
  • 高级分析:类别细分、时间趋势、预算差异分析
  • 灵活的出口:JSON、CSV和Markdown报告格式
  • 批量操作:通过验证高效地创建批量交易
  • 配置管理:环境变量支持和验证

🛠️ 工具

  1. 获取计数数据 -检索帐户配置和类别
  2. 查询交易 -带分页的高级事务过滤
  3. 分析_支出 -类别细分、趋势和预算差异
  4. get_summary -期间总计、预算状态、快速统计数据
  5. 获取记录细节 -详细记录信息及相关数据
  6. get_insights_data -用于人工智能分析和洞察的全面数据
  7. batch_create_transactions -批量交易创建
  8. 导出数据 -多种格式的灵活数据导出

🏗️ 建筑

服务器遵循模块化架构,关注点清晰分离:

expense-tracker-mcp/
├── server.js                 # Main server entry point
├── src/
│   ├── config.js             # Configuration management
│   ├── database/
│   │   ├── interface.js      # Database abstraction interface
│   │   ├── factory.js        # Database factory pattern
│   │   ├── sqlite-adapter.js # SQLite implementation
│   │   └── sqlite-methods.js # Extended SQLite methods
│   ├── tools/
│   │   ├── definitions.js    # MCP tool schemas
│   │   └── handlers.js       # Tool implementation handlers
│   └── utils/
│       └── helpers.js        # Utility functions
└── package.json

数据库抽象

服务器使用数据库抽象层,允许在不同的数据库后端之间轻松切换:

  • 数据库:生产就绪实施(默认)
  • PostgreSQL:计划中的企业级支持
  • MongoDB:计划-基于文档的存储
  • MySQL:计划中的关系数据库替代方案

配置

所有配置选项都支持环境变量:

# Database configuration
DB_TYPE=sqlite              # Database type (sqlite, postgres, mongodb)
DB_PATH=./expense_tracker.db # SQLite database path
DB_HOST=localhost           # Database host (for postgres/mysql)
DB_PORT=5432               # Database port
DB_NAME=expense_tracker    # Database name
DB_USER=postgres           # Database user
DB_PASSWORD=               # Database password

# Server configuration
SERVER_NAME=expense-tracker
SERVER_VERSION=1.0.0
DEBUG=false

# Application configuration
DEFAULT_CURRENCY=USD
MAX_TRANSACTION_BATCH=100
MAX_QUERY_LIMIT=100
SEED_DATA=true

📋 先决条件

  • Node.js 18+
  • Claude桌面应用程序

🔧 安装

  1. 克隆此存储库:
git clone https://github.com/bzheng29/expense-tracker-mcp.git
cd expense-tracker-mcp
  1. 安装依赖项:
npm install
  1. 通过编辑配置Claude Desktop claude_desktop_config.json:
{
  "mcpServers": {
    "expense-tracker": {
      "command": "node",
      "args": ["<path-to-project>/server.js"],
      "env": {}
    }
  }
}
  1. 重新启动Claude Desktop以加载MCP服务器。

🏃 运行服务器

npm start

📊 数据库模式

服务器将SQLite与这些表一起使用:

  • 用户 -具有货币设置的帐户配置文件
  • 分类 -分级支出/收入类别
  • 账本 -账户类型(支票、储蓄、信贷、现金)
  • 预算 -月度/每周/年度预算跟踪
  • 交易 -带有标签的完整交易历史记录
  • ai_景点 -存储的建议和警报

📈 样品数据

服务器包括用于测试的示例数据:

  • 等级结构中的14个类别(食品→ 杂货店/餐馆等)
  • 4个具有实际余额的分类账账户
  • 4个每月有限额的活动预算
  • 当月8笔交易样本
  • 3个用于支出警报和建议的人工智能见解

💡 使用示例

月度预算审查

// Get current budget status
get_summary({
  summary_type: 'budget_status',
  period: 'this_month',
  include_details: true
})

// Analyze spending by category
analyze_spending({
  analysis_type: 'category_breakdown',
  period: { start: '2024-01-01', end: '2024-01-31' }
})

// Get rich data for AI insights
get_insights_data({
  data_scope: 'spending_patterns',
  period: {
    current: { start: '2024-01-01', end: '2024-01-31' },
    comparison: { start: '2023-12-01', end: '2023-12-31' }
  },
  include_components: {
    statistics: true,
    historical_averages: true
  }
})

事务管理

// Find all dining expenses over $50 this year
query_transactions({
  type: 'expense',
  filters: {
    categories: ['dining', 'restaurants'],
    min_amount: 50,
    date_start: '2024-01-01'
  },
  sort: { field: 'amount', order: 'desc' }
})

// Create multiple transactions
batch_create_transactions({
  transactions: [
    {
      type: 'expense',
      amount: 45.99,
      category: 'groceries',
      description: 'Weekly shopping'
    }
  ]
})

数据导出

// Generate year-end report
export_data({
  export_type: 'summary_report',
  format: 'markdown',
  filters: {
    date_start: '2024-01-01',
    date_end: '2024-12-31'
  }
})

🔒 主要特点

  • 分页:每页最多100个项目用于表演
  • 灵活过滤:按日期、类别、金额、文本搜索
  • 类别树:显示为Markdown层次结构
  • 预算差异:状态过高/过低的分析
  • 时间趋势:按天/周/月分组分析
  • 多种导出格式:JSON、CSV、Markdown报告
  • 批量操作:经过全面验证
  • AI洞察:有元数据和上下文建议

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件

🔗 链接

🐛 问题

如果您遇到任何问题,请检查:

  1. Node.js版本兼容性
  2. Claude桌面配置
  3. 数据库权限

如需支持,请在此存储库中打开一个问题。