使用说明
标题:Yodlee MCP服务器 表情符号🏦 颜色来源:蓝色 颜色To:靛蓝色 sdk:毕业 sdk版本:5.33.0 python版本:“3.11” app_file:app.py 固定:false 标签:
- 主控程序
- 建设mcp轨道企业
- 构建mcp跟踪消费者
- 打造mcp轨道创意
- 模型上下文协议
- 约德尔
- 格拉迪奥
🏦 Yodlee MCP服务器
基于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调用需要
所需帐户
- Yodlee开发者账户 (用于API访问)
- ElevenLabs帐户 (可选,用于实时音频生成)
- 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凭据
-
访问Yodlee开发者门户
-
创建开发人员帐户
- 点击“注册”或“开始”
- 填写您的详细信息并验证您的电子邮件
-
访问沙盒环境
- 登录后,导航到仪表板
- 寻找“沙盒”或“开发”环境
-
生成API凭据
- 导航至 API证书 或 应用程序 部分
- 如果需要,创建新应用程序
- 复制以下值:
- 客户端ID →
YODLEE_CLIENT_ID - 客户端密钥 →
YODLEE_CLIENT_SECRET
- 客户端ID →
-
获取测试用户登录名
- 在沙盒中,导航到 测试用户 或 用户管理
- Yodlee为预配置的测试用户提供示例财务数据
- 复制登录名(例如。,
sbMemuser1,sbMemuser2等等) - 这些进入
YODLEE_LOGIN_NAMES
-
注意基本URL
- 沙盒基础URL为:
https://sandbox.api.yodlee.com/ysl - 这已在中设置
.env.example
- 沙盒基础URL为:
ElevenLabs API密钥(可选)
ElevenLabs API是 可选的。如果没有它,应用程序将使用预生成的音频样本在“演示模式”下运行。
-
创建ElevenLabs帐户
- 首选 https://elevenlabs.io
- 点击“注册”并创建免费帐户
-
获取API密钥
- 导航至 https://elevenlabs.io/app/settings/api-keys
- 点击“创建新密钥”
- 复制API密钥→
ELEVENLABS_API_KEY
-
选择语音ID
- 浏览语音 https://elevenlabs.io/voice-library
- 点击语音查看其详细信息
- 从URL或语音详细信息中复制语音ID
- 财务摘要的建议声音:
- 克里斯 (
iP95p4xoKVk53GoZ742B):天生健谈的美国男性 - 埃里克 (
cjVigY5qzO86Huf0OWal):流畅、专业的语调 - 百合花 (
pFZP5JQG7iQjIQuC4Bku):温暖的英国女性
- 克里斯 (
-
免费等级限制
- 10000个字符/月(~20-25个音频摘要)
- 每个摘要大约使用400-800个字符
OpenAI API密钥(可选)
OpenAI TTS是一个 替代 ElevenLabs。您可以配置一个或两个提供程序。
-
创建OpenAI帐户
- 首选 https://platform.openai.com
- 注册或登录您的帐户
-
获取API密钥
- 导航至 https://platform.openai.com/api-keys
- 点击“创建新密钥”
- 重要:确保钥匙有
model.requestTTS访问范围 - 复制API密钥→
OPENAI_API_KEY
-
选择声音
- 可用语音:
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:重新启动克劳德桌面
保存配置文件后:
-
完全退出克劳德桌面 (不仅仅是关闭窗口):
Cmd + Q或右键单击停靠图标→ Quit -
重新启动克劳德桌面
-
验证连接:在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
测试应用程序
验证设置
-
检查环境变量
python yodlee_client.py这将运行一个自检,验证:
- 使用Yodlee API进行身份验证
- 正在获取帐户
- 正在获取交易
- 生成支出摘要
-
测试音频生成 (如果配置了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 API密钥 并更新权限
- 验证
OPENAI_TTS_VOICE设置为有效的语音名称
“超出字符配额”错误
- ElevenLabs免费版每月限制10000个字符
- 等待每月重置或升级您的计划
- 替代方案:使用OpenAI TTS,它具有按需付费定价
许可证
看 许可证 文件以获取详细信息。
由...驱动 API Yodlee, 格拉迪奥, 十一实验室,以及 开放人工智能
