金融服务集成工具

一个基于Gradio的MCP服务器,连接Claude Desktop与Yodlee银行数据,提供语音摘要功能。

  • by ashishmerani
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ashishmerani/yodlee-mcp-server

使用说明


标题:Yodlee MCP服务器 表情符号🏦 颜色来源:蓝色 颜色To:靛蓝色 sdk:毕业 sdk版本:5.33.0 python版本:“3.11” app_file:app.py 固定:false 标签:

  • 主控程序
  • 建设mcp轨道企业
  • 构建mcp跟踪消费者
  • 打造mcp轨道创意
  • 模型上下文协议
  • 约德尔
  • 格拉迪奥

🏦 Yodlee MCP服务器

在Hugging Face上观看演示

基于Gradio的MCP(模型上下文协议)服务器,将Claude Desktop连接到Yodlee银行数据,并由ElevenLabs和OpenAI TTS提供文本到语音的音频摘要。

演示

概述

该应用程序是Claude Desktop和Yodlee财务数据API之间的桥梁。它公开了7个MCP工具,允许Claude:

  • 列出可用测试用户帐户并在它们之间切换
  • 检索链接的财务账户和余额
  • 使用过滤选项查询交易历史记录
  • 按类别生成支出摘要
  • 使用ElevenLabs或OpenAI文本转语音创建支出摘要的音频叙述

该应用程序包括一个用于交互式探索和测试的Gradio web UI,同时还用作Claude Desktop集成的MCP服务器。


MCP工具参考

通过Claude Desktop使用时,可以使用以下工具:

工具 说明
list_available_users() 列出所有测试用户帐户
get_current_user() 获取当前活动用户
switch_user(login_name) 切换到其他用户帐户
get_accounts(login_name?, account_type?) 获取链接的金融账户
get_transactions(login_name?, from_date?, to_date?, category_type?) 获取交易历史记录
get_spending_summary(login_name?, from_date?, to_date?) 按类别获取支出
generate_audio_summary(login_name?, from_date?, to_date?, custom_script?) 生成音频摘要

使用指南

Gradio Web用户界面

web界面提供5个选项卡:

📊 “帐户”选项卡

  • 查看所有链接的金融账户
  • 按账户类型筛选(银行、信用卡、投资、保险、贷款)
  • 查看账户余额和机构名称

💳 交易选项卡

  • 浏览交易历史记录
  • 按日期范围和类别类型筛选(费用、收入、转账)
  • 备注:沙盒数据为2013年1月1日至2014年12月31日

📈 支出摘要选项卡

  • 查看按类别分组的支出
  • 按总金额排序的类别(最高者优先)
  • 显示每个类别的交易计数

🎧 音频摘要选项卡

  • 与两个TTS提供商生成口头支出摘要:
    • ElevenLabs TTS:具有自然语调的高品质声音
    • OpenAI TTS:可靠、经济高效的选项,有6种语音选择
  • 在 演示模式:播放特定于提供商的预先生成的样本(不需要API密钥)
  • 在 实时模式:使用您的实际支出数据生成实时音频

🎬 演示视频选项卡

  • 观看应用程序的演示(请参阅 演示 以上)

切换用户

使用 活跃用户 标题中的下拉菜单用于在测试帐户之间切换。每个用户都有不同的链接帐户和交易历史。

沙盒日期限制

⚠️ 重要:Yodlee沙盒仅包含来自以下来源的历史测试数据 2013年1月1日至2014年12月31日.

  • 超出此范围的日期将自动调整
  • 当日期被夹紧时,UI会显示警告
  • 使用此范围内的日期可获得准确的结果

先决条件

系统要求

  • python:3.10或更高
  • 操作系统:macOS、Linux或Windows
  • 网络连接:API调用需要

所需帐户

  1. Yodlee开发者账户 (用于API访问)
  2. ElevenLabs帐户 (可选,用于实时音频生成)
  3. OpenAI帐户 (可选,替代TTS提供商)

安装说明

1.克隆存储库

git clone https://github.com/ashishmerani/yodlee-mcp-server.git
cd yodlee-mcp-server

2.创建虚拟环境

python -m venv venv
source venv/bin/activate  # On macOS/Linux
# or
.\venv\Scripts\activate   # On Windows

3.安装依赖项

pip install -r requirements.txt

这将安装:

  • gradio[mcp]>=6.0.0 -支持MCP的Web UI框架( [mcp] Claude Desktop集成需要额外费用)
  • requests>=2.31.0 -API调用的HTTP客户端
  • python-dotenv>=1.0.0 -环境变量管理
  • elevenlabs>=2.0.0 -ElevenLabs文本到速度API客户端
  • openai>=1.0.0 -OpenAI文本到速度API客户端

zsh用户注意事项(macOS默认shell): 如果直接安装带有额外功能的软件包,例如 pip install gradio[mcp],您必须引用包名称以防止shell解释方括号:

pip install "gradio[mcp]"

使用时不需要这样做 pip install -r requirements.txt 因为shell不解析文件内容。

4.配置环境变量

复制示例环境文件:

cp .env.example .env

然后编辑 .env 使用您的实际凭据(请参阅下面的配置部分)。


获取API密钥

Yodlee API凭据

  1. 访问Yodlee开发者门户

  2. 创建开发人员帐户

    • 点击“注册”或“开始”
    • 填写您的详细信息并验证您的电子邮件
  3. 访问沙盒环境

    • 登录后,导航到仪表板
    • 寻找“沙盒”或“开发”环境
  4. 生成API凭据

    • 导航至 API证书 或 应用程序 部分
    • 如果需要,创建新应用程序
    • 复制以下值:
      • 客户端ID → YODLEE_CLIENT_ID
      • 客户端密钥 → YODLEE_CLIENT_SECRET
  5. 获取测试用户登录名

    • 在沙盒中,导航到 测试用户 或 用户管理
    • Yodlee为预配置的测试用户提供示例财务数据
    • 复制登录名(例如。, sbMemuser1, sbMemuser2等等)
    • 这些进入 YODLEE_LOGIN_NAMES
  6. 注意基本URL

    • 沙盒基础URL为: https://sandbox.api.yodlee.com/ysl
    • 这已在中设置 .env.example

ElevenLabs API密钥(可选)

ElevenLabs API是 可选的。如果没有它,应用程序将使用预生成的音频样本在“演示模式”下运行。

  1. 创建ElevenLabs帐户

  2. 获取API密钥

  3. 选择语音ID

    • 浏览语音 https://elevenlabs.io/voice-library
    • 点击语音查看其详细信息
    • 从URL或语音详细信息中复制语音ID
    • 财务摘要的建议声音:
      • 克里斯 (iP95p4xoKVk53GoZ742B):天生健谈的美国男性
      • 埃里克 (cjVigY5qzO86Huf0OWal):流畅、专业的语调
      • 百合花 (pFZP5JQG7iQjIQuC4Bku):温暖的英国女性
  4. 免费等级限制

    • 10000个字符/月(~20-25个音频摘要)
    • 每个摘要大约使用400-800个字符

OpenAI API密钥(可选)

OpenAI TTS是一个 替代 ElevenLabs。您可以配置一个或两个提供程序。

  1. 创建OpenAI帐户

  2. 获取API密钥

  3. 选择声音

    • 可用语音: alloy, echo, fable, onyx, nova, shimmer
    • 建议用于财务摘要:
      • 缟玛瑙:深沉、权威的男声
      • 新星:温暖、富有表现力的女声
      • 合金:平衡、中性的音调
    • 设置您的选择→ OPENAI_TTS_VOICE

配置

环境变量

创建 .env 项目根目录中的文件,包含以下变量:

# Yodlee Sandbox API Credentials (Required)
YODLEE_CLIENT_ID=your_client_id_here
YODLEE_CLIENT_SECRET=your_client_secret_here
YODLEE_LOGIN_NAMES=user1,user2,user3
YODLEE_BASE_URL=https://sandbox.api.yodlee.com/ysl

# ElevenLabs Text-to-Speech (Optional - Provider 1)
ELEVENLABS_API_KEY=your_elevenlabs_api_key_here
ELEVENLABS_VOICE_ID=iP95p4xoKVk53GoZ742B

# OpenAI Text-to-Speech (Optional - Provider 2)
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_TTS_VOICE=onyx

变量描述

变量 必填 描述
YODLEE_CLIENT_ID 是 您的Yodlee API客户端ID
YODLEE_CLIENT_SECRET 是 您的Yodlee API密钥
YODLEE_LOGIN_NAMES 是 逗号分隔的测试用户登录名列表
YODLEE_BASE_URL 是 Yodlee API基本URL(使用沙箱URL进行测试)
ELEVENLABS_API_KEY 否 用于实时音频生成的ElevenLabs API密钥
ELEVENLABS_VOICE_ID 否* ElevenLabs TTS的语音ID(*如果使用ElevenLabs,则需要)
OPENAI_API_KEY 否 用于实时音频生成的OpenAI API密钥
OPENAI_TTS_VOICE 没有* OpenAI TTS的语音名称(*如果使用OpenAI,则为必填项)

演示模式与直播模式

每个TTS提供商独立运营。您可以配置一个、两个或两个都不配置:

提供程序 API密钥状态 按钮行为
十一实验室 未配置 播放预先生成的ElevenLabs示例
十一实验室 已配置 通过ElevenLabs API生成实时音频
开放人工智能 未配置 播放预先生成的OpenAI示例
开放人工智能 已配置 通过OpenAI API生成实时音频

运行应用程序

启动服务器

python app.py

您应该看到如下输出:

============================================================
Starting Yodlee MCP Server...
============================================================

This server exposes 7 MCP tools:
  1. list_available_users - List available Yodlee test users
  2. get_current_user - Get the current active user
  3. switch_user - Switch to a different test user
  4. get_accounts - Get linked financial accounts
  5. get_transactions - Get transaction history
  6. get_spending_summary - Get spending by category
  7. generate_audio_summary - Generate audio spending summary (ElevenLabs TTS)

Available test users: ...user1, ...user2, ...user3
Gradio UI: http://localhost:7860
MCP endpoint: Available when mcp_server=True
============================================================

访问应用程序

  • Web用户界面:打开 http://localhost:7860 在浏览器中
  • MCP端点:服务器自动为Claude Desktop公开MCP工具

Claude桌面集成

要将此MCP服务器与Claude Desktop一起使用,您需要配置Claude以连接到Gradio MCP端点。这允许克劳德直接从聊天界面访问7个Yodlee工具。

步骤1:安装mcp远程

这 mcp-remote 需要使用软件包将Claude Desktop与Gradio MCP服务器桥接:

npm install -g @modelcontextprotocol/mcp-remote

步骤2:找到Claude桌面配置文件

配置文件位于:

~/Library/Application Support/Claude/claude_desktop_config.json

如果文件不存在,请使用空JSON对象创建它 {}.

步骤3:查找所需路径

在编辑配置之前,找到以下路径 node 和 mcp-remote 在您的系统上:

which node
which mcp-remote

注意返回的路径——配置时需要它们。

步骤4:编辑配置文件

在文本编辑器中打开配置文件,添加(或合并)以下配置:

{
  "mcpServers": {
    "yodlee-mcp-gradio": {
      "command": "/path/to/node",
      "args": [
        "/path/to/mcp-remote",
        "http://127.0.0.1:7860/gradio_api/mcp/",
        "--transport",
        "http-only"
      ]
    }
  }
}

用实际路径替换占位符路径:

  • /path/to/node → 路径从 which node (例如。, /usr/local/bin/node)
  • /path/to/mcp-remote → 路径从 which mcp-remote (例如。, /usr/local/bin/mcp-remote)

macOS示例:

{
  "mcpServers": {
    "yodlee-mcp-gradio": {
      "command": "/usr/local/bin/node",
      "args": [
        "/usr/local/bin/mcp-remote",
        "http://127.0.0.1:7860/gradio_api/mcp/",
        "--transport",
        "http-only"
      ]
    }
  }
}

备注:如果您已经配置了其他MCP服务器,请添加 yodlee-mcp-gradio 进入您现有的 mcpServers 对象,而不是替换整个文件。

步骤5:启动Gradio服务器

⚠️ 重要:Gradio MCP服务器必须运行,Claude Desktop才能连接到它。

python app.py

使用Claude Desktop时,请保持此终端窗口打开。

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

保存配置文件后:

  1. 完全退出克劳德桌面 (不仅仅是关闭窗口): Cmd + Q 或右键单击停靠图标→ Quit

  2. 重新启动克劳德桌面

  3. 验证连接:在Claude Desktop中,您应该看到MCP工具图标(🔧) 指示可用工具。单击它查看7个Yodlee工具。

克劳德桌面集成故障排除

“服务器已断开连接”或连接错误:

  • 确保Gradio服务器正在运行(python app.py)
  • 检查URL http://127.0.0.1:7860/gradio_api/mcp/ 可以在浏览器中访问
  • 验证配置中的路径是否正确

工具未出现:

  • 完全重新启动Claude Desktop(退出并重新启动)
  • 检查配置文件是否存在JSON语法错误
  • 确保 mcp-remote 在全球范围内安装(npm list -g @modelcontextprotocol/mcp-remote)

“找不到命令”错误:

  • 使用绝对路径而不是命令名
  • 验证路径是否存在: ls /path/to/node

测试应用程序

验证设置

  1. 检查环境变量

    python yodlee_client.py
    

    这将运行一个自检,验证:

    • 使用Yodlee API进行身份验证
    • 正在获取帐户
    • 正在获取交易
    • 生成支出摘要
  2. 测试音频生成 (如果配置了ElevenLabs)

    python audio_generator.py
    

    这将测试ElevenLabs集成并保存测试音频文件。

运行单元测试

# Install pytest if not already installed
pip install pytest

# Run all tests
pytest tests/

# Run specific test file
pytest tests/yodlee_mcp/test_utils.py

预期测试行为

  • 测试使用模拟的API响应来避免真实的API调用
  • 所有测试均应通过,无需实际API证书
  • 通过以下方式设置模拟环境变量 tests/conftest.py

项目结构

sample-gradio/
├── app.py                              # Main entry point
├── yodlee_client.py                    # Yodlee API client
├── audio_generator.py                  # ElevenLabs TTS integration
├── requirements.txt                    # Python dependencies
├── .env.example                        # Example environment configuration
├── sample_audio_summary_elevenlabs.mp3 # Pre-generated ElevenLabs demo audio
├── sample_audio_summary_openai.mp3     # Pre-generated OpenAI demo audio
├── generate_openai_sample.py           # Utility to generate OpenAI sample
├── audio_outputs/                      # Generated audio files (gitignored)
├── yodlee_mcp/                         # Core package
│   ├── __init__.py
│   ├── config.py                       # Configuration and constants
│   ├── utils.py                        # Utility functions
│   ├── client_manager.py               # Client session management
│   ├── mcp_tools.py                    # MCP tool implementations
│   └── gradio_ui.py                    # Gradio interface (includes OpenAI TTS)
└── tests/                              # Unit tests
    ├── conftest.py
    └── yodlee_mcp/
        ├── test_config.py
        ├── test_utils.py
        ├── test_client_manager.py
        └── test_mcp_tools.py

故障排除

常见问题

“缺少必需的凭据”错误

  • 确保在中设置了所有必需的环境变量 .env
  • 检查一下 .env 文件位于项目根目录中
  • 验证变量名中没有拼写错误

“身份验证失败”错误

  • 验证您的 YODLEE_CLIENT_ID 和 YODLEE_CLIENT_SECRET 是正确的
  • 确保您的Yodlee开发者帐户处于活动状态
  • 检查登录名是否与有效的沙盒测试用户匹配

“未找到交易”或结果为空

  • 请记住,沙盒数据仅适用于2013-2014年
  • 将日期范围调整为 2013-01-01 到 2014-12-31

音频生成失败(ElevenLabs)

  • 没有 ELEVENLABS_API_KEY:应用程序在演示模式下工作(这是预期的)
  • 使用API密钥:检查密钥是否有效以及是否有可用的信用
  • 验证 ELEVENLABS_VOICE_ID 在使用ElevenLabs时设置

音频生成失败(OpenAI)

  • 没有 OPENAI_API_KEY:应用程序在演示模式下工作(这是预期的)
  • “权限不足”错误:您的API密钥需要 model.request 范围
  • 验证 OPENAI_TTS_VOICE 设置为有效的语音名称

“超出字符配额”错误

  • ElevenLabs免费版每月限制10000个字符
  • 等待每月重置或升级您的计划
  • 替代方案:使用OpenAI TTS,它具有按需付费定价

许可证

看 许可证 文件以获取详细信息。


由...驱动 API Yodlee, 格拉迪奥, 十一实验室,以及 开放人工智能