使用说明
📊 MCP服务器 - 个人开销管理器
一个用于管理并分析CSV文件中个人支出的MCP(模型上下文协议)服务器。
🚀 特点
- 增加费用 导出为带有分类的CSV文件
- 获取最近的费用 基于日期的过滤
- MCP 资源 以便直接访问所有费用
- 专业提示 能够生成自动分析摘要
- 按类别和支付方式进行分析
- 趋势检测与消费模式
📋 要求
pip install fastmcp mcp
🗂️ 项目结构
expenses-mcp-server/
├── server.py # Main MCP server
├── data/
│ └── expenses.csv # Expenses file (created automatically)
├── requirements.txt
└── README.md
🛠️ 安装与使用
1. 克隆或创建项目
mkdir expenses-mcp-server
cd expenses-mcp-server
2. 创建虚拟环境(推荐)
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
venv\Scripts\activate # Windows
3. 安装依赖项
pip install fastmcp mcp
4. 运行服务器
python server.py
🔧 可用功能
工具
1. agregar_gasto (添加费用)
向系统中添加一项新费用。
参数:
fecha日期格式为“YYYY-MM-DD”categoria费用类别(例如,“食品”、“交通”)cantidad费用金额(浮点数)metodo_pago使用的支付方式
示例:
agregar_gasto("2024-01-15", "Groceries", 150.75, "Debit Card")
2. obtener_gastos_recientes (获取最近的费用)
获取过去N天的费用。
参数:
dias查询的天数(默认:5)
示例:
obtener_gastos_recientes(7) # Last 7 days
资源
resource://gastos
直接访问所有已存储的费用。
专业提示
Resumen de Gastos Recientes (近期费用概要)
生成一个包含结构化数据的提示,以便AI能够创建完整的分析,其中包括:
- 📈 统计计算(总计、平均值)
- 🏷️ 类别分析
- 💳 支付方式分布
- 🔍 趋势识别
- 💡 个性化推荐
📊 CSV 结构
这个(或“它”) data/expenses.csv 文件具有以下结构:
fecha,categoria,cantidad,metodo_pago
2024-01-15,Groceries,150.75,Debit Card
2024-01-16,Transport,45.50,Cash
2024-01-17,Entertainment,89.99,Credit Card
🔌 MCP 客户端集成
Python 客户端示例
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def main():
server_params = StdioServerParameters(
command="python",
args=["server.py"]
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
# Initialize session
await session.initialize()
# Add expense
result = await session.call_tool(
"agregar_gasto",
{
"fecha": "2024-01-18",
"categoria": "Restaurant",
"cantidad": 85.50,
"metodo_pago": "Credit Card"
}
)
print(result)
# Get recent expenses
expenses = await session.call_tool(
"obtener_gastos_recientes",
{"dias": 5}
)
print(expenses)
if __name__ == "__main__":
asyncio.run(main())
🎯 使用场景
1. 日常开销追踪
# Add transport expense
agregar_gasto("2024-01-18", "Transport", 35.00, "Cash")
# Add food expense
agregar_gasto("2024-01-18", "Food", 120.00, "Debit Card")
2. 每周分析
# Get last week summary
obtener_gastos_recientes(7)
3. 月度报告
# Complete 30-day analysis
obtener_gastos_recientes(30)
📈 生成的示例分析
这个专门的提示生成的分析类似于:
📊 EXPENSE SUMMARY - LAST 5 DAYS
💰 TOTAL SPENT: $1,245.75
📅 DAILY AVERAGE: $249.15
🔢 TRANSACTIONS: 8 purchases
🏷️ CATEGORY DISTRIBUTION:
• Groceries: 45% ($560.25)
• Transport: 25% ($311.44)
• Entertainment: 20% ($249.15)
• Restaurant: 10% ($124.58)
💳 PAYMENT METHODS:
• Credit Card: 60%
• Debit Card: 30%
• Cash: 10%
📈 OBSERVATIONS:
• Highest spending on Wednesday ($420.50)
• "Groceries" category represents almost half of expenses
• Growing trend in credit card usage
💡 RECOMMENDATIONS:
• Consider bulk purchases to reduce grocery expenses
• Diversify payment methods for better control
• Set weekly limit for entertainment
🛠️ 故障排除
错误:“文件未找到”
- 确保
data/目录存在 - 服务器在首次记录费用时自动创建该文件
错误:“编码问题”
- 服务器使用UTF-8以确保特殊字符的兼容性
错误:“日期格式无效”
- 使用精确格式:
YYYY-MM-DD - 示例:
2024-01-18
📝 许可证
麻省理工学院许可证(MIT License)
📞 支持
对于问题和疑问,请在项目仓库中提交一个工单。
开始智能追踪您的支出吧! 🚀 火箭/快速前进/飞速发展(根据上下文可灵活翻译)