UPI交易分析工具

一款通过自然语言查询Paytm UPI交易记录的本地隐私优先分析工具,支持数据导入、搜索和统计功能。

  • by farhanrhine
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 farhanrhine/paytm-local-mcp-server

使用说明

💳 Paytm UPI报表分析器

使用Claude AI的自然语言查询您的Paytm UPI交易-100%本地,隐私优先。

🎯 这是什么?

一个简单的MCP(模型上下文协议)服务器,允许您通过用简单的英语向Claude提问来分析您的Paytm UPI交易历史。您的所有财务数据都保留在您的机器上,无需上传云!

问以下问题:

  • “这个月我花了多少钱?”
  • “显示我的前10名商家”
  • “搜索Swiggy交易”
  • “我每月的支出明细是多少?”

🔄 运作原理

┌─────────────────────────────────────────────────────────────────────────────┐
│                              WORKFLOW                                        │
└─────────────────────────────────────────────────────────────────────────────┘

  ┌──────────────┐      ┌──────────────┐      ┌──────────────┐
  │   PAYTM APP  │      │    EXCEL     │      │     JSON     │
  │              │ ───► │   Statement  │ ───► │    File      │
  │  📱 Export   │      │   📊 .xlsx   │      │   📄 .json   │
  └──────────────┘      └──────────────┘      └──────────────┘
                                                     │
                        ┌────────────────────────────┘
                        ▼
  ┌──────────────────────────────────────────────────────────────────────────┐
  │                         MCP SERVER (paytm.py)                             │
  │  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐       │
  │  │  📥 Import Tool │    │  🔍 Query Tools │    │  📊 SQLite DB   │       │
  │  │                 │───►│                 │◄──►│                 │       │
  │  │ JSON → Database │    │ Search, Summary │    │ paytm.db        │       │
  │  └─────────────────┘    │ Top Merchants   │    └─────────────────┘       │
  │                         │ Monthly View    │                               │
  │                         └─────────────────┘                               │
  └──────────────────────────────────────────────────────────────────────────┘
                        │
                        ▼
  ┌──────────────────────────────────────────────────────────────────────────┐
  │                         CLAUDE DESKTOP                                    │
  │                                                                           │
  │   You: "How much did I spend on Swiggy?"                                 │
  │                                                                           │
  │   Claude: "You spent ₹8,500 on Swiggy across 42 transactions.            │
  │            Your average order was ₹202."                                 │
  │                                                                           │
  └──────────────────────────────────────────────────────────────────────────┘

🧩 MCP角色(主机、客户端、服务器、LLM)

在本地运行此项目时:

  • MCP服务器: paytm.py (FastMCP)在MCP上暴露工具。
  • 客户: clients.py 连接到服务器并调用工具。
  • LLM:Groq模型(例如。, qwen/qwen3-32b)由客户使用。
  • 主机:驱动对话的应用程序。如果你跑 clients.py,您的终端应用程序是主机。如果您使用Claude Desktop或Copilot Chat,它们将成为主机。

🔗 LangChain+LangGraph角色

在本项目中:

  • LangChain:构建代理并将LLM连接到MCP工具。
  • LangGraph:以图形形式运行代理(模型步骤→ 工具步骤→ 模型步骤),包括状态和流。

零件如何连接

  1. 您在主机中键入消息(终端运行 clients.py).
  2. LangChain create_agent 接收消息并决定是否调用工具。
  3. LangGraph执行代理循环和工具调用。
  4. 工具由MCP服务器执行 paytm.py.
  5. 最终响应将返回给主机并打印出来。

📁 项目结构

paytm-mcp-server/
├── paytm.py              # 🔧 MCP Server - main file
├── clients.py            # 🤖 LangGraph + Groq chat client
├── convert_to_json.py    # 🔄 Excel to JSON converter
├── paytm.json            # 📄 Your transaction data (generated)
├── paytm.db              # 🗄️ SQLite database (generated)
├── pyproject.toml        # 📦 Dependencies
└── README.md             # 📖 This file

🚀 快速开始

先决条件


步骤0:安装UV和FastMCP

# Install UV (Python package manager)
pip install uv

# Initialize project (if starting fresh)
uv init .

# Add FastMCP dependency
uv add fastmcp

# Verify installation
uv run fastmcp version or fastmcp version

步骤1:导出您的Paytm对账单

  1. 打开 Paytm应用程序
  2. 首选 平衡与历史 → 单击右上角的三个点(⋮)
  3. 轻按 下载UPI声明
  4. 选择日期范围(建议最近6个月)
  5. 下载为 Excel(.xlsx)
  6. 保存到此文件夹

步骤2:将Excel转换为JSON

# Install the openpyxl library which is required to read Excel files.
uv add openpyxl
# Edit convert_to_json.py with your file name
uv run convert_to_json.py

输出: paytm.json 与您的所有交易

步骤3:运行并安装MCP服务器

# Test the server locally (optional)
uv run fastmcp run paytm.py

# Optional: install in Claude Desktop
uv run fastmcp install claude-desktop paytm.py

步骤3.1:运行聊天客户端(langchain&LangGraph+Groq)

# Ensure GROQ_API_KEY is set in your environment or .env
uv run clients.py

步骤4:重新启动克劳德桌面

完全关闭并重新打开Claude Desktop。

第五步:开始查询!

在Claude Desktop中,键入:

Import my Paytm data or add as resource from claude desktop + button something name appears like add from PaytmTracker

然后问任何问题:

Show my spending summary
Who are my top 5 merchants?
Search for Amazon
Show November spending

Claude桌面工作示例


🛠️ 可用工具

工具 说明 查询示例
import_paytm_data 将JSON加载到数据库 “导入我的Paytm数据”
get_paytm_summary 总支出/已收/净额 “显示我的摘要”
search_paytm 按关键字搜索 “搜索Swiggy”
get_paytm_by_date 日期交易 “我在2025-11-15花了多少钱?”
get_top_merchants 按金额排名的顶级消费者 “十大商家”
get_monthly_summary 按月细分 “每月支出”

🧪 MCP检查器(Web UI)

您可以通过MCP检查器检查工具。

选项A:SSE(推荐)

  1. 启动服务器:
uv run fastmcp run paytm.py
  1. 启动检查器:
npx @modelcontextprotocol/inspector
  1. 在检查器UI中:
  • 运输类型: SSE
  • 服务器URL: http://127.0.0.1:8000/sse

选项B:STDIO(通过紫外线)

在以下情况下使用此功能 fastmcp 不在你的路径上。

  • 运输类型: STDIO
  • 命令: uv
  • 论据: run fastmcp run paytm.py --no-banner

📊 数据格式

您的Paytm Excel有以下列:

列 示例 数据库中
日期 2025年11月28日 2025-11-28
时间:18:34:46
交易详情 支付给Swiggy 交易详情
金额 -245.00 -245.0(浮动)
合众社参考号 53xxxxxx UPI_Ref_No
标签 #🛒 杂货 标签

🔒 隐私

✅ 100%本地 -所有数据都保留在您的计算机上
✅ 无云 -任何地方都没有上传任何内容
✅ 没有API密钥 -使用免费的克劳德桌面
✅ 你控制 -随时删除


🗺️ 路线图

v1.0(当前)-版本

  • [x] 导入Paytm Excel报表
  • [x] 搜索交易记录
  • [x] 汇总统计
  • [x] 顶级商家
  • [x] 月度明细
  • [x] 本地聊天客户端(LangChain+LangGraph+Groq)

v1.1(计划中)-MCP应用程序功能

  • []MCP应用程序打包(服务器+客户端的单主机应用程序)
  • []服务器端提示工具行为一致
  • []MCP工具访问的身份验证
  • []每个用户的配置文件和权限
  • []内置工具使用日志/审计跟踪

v1.2(计划中)-高级代理功能

  • []动态工具过滤(按上下文限制工具)
  • []流媒体用户界面(实时工具调用状态的网络聊天)
  • []计划报告(每周/每月摘要)
  • []导出报告(CSV、PDF)

🔧 故障排除

“Claude中未显示MCP服务器”

# Fully close Claude Desktop
taskkill /IM "Claude.exe" /F

# Reinstall
fastmcp install claude-desktop paytm.py

# Reopen Claude

“导入失败”

  • 检查 paytm.json 存在
  • 验证JSON格式是否正确
  • 检查列名是否匹配

“未找到交易记录”

  • 首先运行“导入我的Paytm数据”
  • 检查 paytm.db 被创建

📄 许可证

MIT许可证-自由使用!


🙏 致谢


Farhan制造