Plaid MCP服务器
模型上下文协议(MCP)服务器和HTTP API,用于整合Plaid银行服务。此服务器提供三个接口:
- 🌐 HTTP/REST API 具有连接银行账户的web界面
- 🤖 MCP服务器(stdio) 克劳德桌面(本地)
- 🌍 MCP服务器(SSE) 适用于ChatGPT和远程客户端
快速链接
快速开始
让您的Plaid MCP服务器在5分钟内使用ChatGPT运行。
先决条件
- Node.js(v18+)
- 朴实无华的API证书(获取免费沙盒凭据)
设置
# 1. Install dependencies
npm install
# 2. Create .env.local with your Plaid credentials
cat > .env.local << EOF
PLAID_CLIENT_ID=your_client_id_here
PLAID_SECRET=your_secret_here
PLAID_ENV=sandbox
# OAuth 2.1 (for ChatGPT) - auto-generate secure credentials
MCP_OAUTH_CLIENT_ID=$(openssl rand -hex 8)
MCP_OAUTH_CLIENT_SECRET=$(openssl rand -hex 16)
EOF
# 3. Build
npm run build
# 4. Start the server
npm run start:sse本地测试
npm run test预期产量: ✓ All tests passed! Your SSE server is ready for ChatGPT!
连接到ChatGPT
- 暴露与ngrok (在新航站楼中):
ngrok http 3001复制HTTPS URL(例如。, https://abc123.ngrok-free.dev)
- 获取OAuth凭据:
grep MCP_OAUTH .env.local- 添加到ChatGPT:
- 设置→ 连接器→ 添加连接器 - 网址: https://your-ngrok-url.ngrok-free.dev (无 /sse) - 身份验证: OAuth - 客户端ID和密码: 自 .env.local - 在浏览器中授权
看 CHATGPT-SETUP.md 详细说明。
特性
- 🏦 通过Plaid Link连接银行账户
- 💾 在本地安全地存储访问令牌
~/.plaid_tokens.json - 🌐 易于链接银行账户的Web界面
- 🤖 MCP服务器,用于与Claude和其他AI助手集成
- 📊 访问账户余额、交易和账户详细信息
- 📄 下载和访问银行对账单(PDF格式)
- ✨ 使用商家信息、徽标、类别和元数据丰富交易数据(无需银行连接)
运行服务器
对于ChatGPT(SSE服务器)
npm run start:sse # Runs on http://localhost:3001看 CHATGPT-SETUP.md 有关完整的设置说明。
适用于克劳德桌面(stdio)
npm run start:mcp配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"plaid": {
"command": "node",
"args": ["/absolute/path/to/server.js"],
"env": {
"PLAID_CLIENT_ID": "your_client_id_here",
"PLAID_SECRET": "your_secret_here",
"PLAID_ENV": "sandbox"
}
}
}
}注: 替换 /absolute/path/to/server.js 带有编译的实际路径 server.js 文件。更改后重新启动Claude Desktop。
Web界面(HTTP服务器)
npm run start:http # Runs on http://localhost:3000
open http://localhost:3000/index.html可用的MCP工具
运行MCP服务器时,可以使用以下工具:
身份验证和设置:
create_link_token-创建用于银行连接的Plaid Link令牌exchange_public_token-将公共令牌交换为访问令牌list_items-列出所有关联的银行账户
账户数据:
get_accounts-获取Plaid项目的帐户get_balances-获取当前余额get_transactions-获取日期范围内的交易(使用帐户筛选)get_recurring_transactions-获取经常性交易流(订阅、账单、定期收入)enrich_transactions-使用商家信息、类别、徽标和元数据丰富交易数据(无需银行连接)get_investment_holdings-查看投资账户和持股
银行对账单:
refresh_statements-刷新日期范围内的可用语句list_statements-列出所有可用的银行对账单download_statement-将特定语句下载为base64编码的PDF
示例用法:
- “列出我的关联银行账户”
- “显示我的账户余额”
- “获取上个月的交易记录”
- “我的定期订阅是什么?”
- “获取我的投资资产”
令牌存储
访问令牌安全地存储在 ~/.plaid_tokens.json 具有受限权限(600)。当您连接第一个银行账户时,该文件会自动创建。
脚本
npm run build-编译TypeScript文件npm run test-测试SSE服务器(以通过/失败的方式干净退出)npm run start:http-启动HTTP服务器(生产)npm run start:mcp-启动Claude Desktop的MCP服务器(生产)npm run start:sse-启动ChatGPT的SSE服务器(生产)npm run dev:http-启动HTTP服务器(开发模式)npm run dev:sse-启动SSE服务器(开发模式)
安全说明
⚠️ 重要安全注意事项:
- 永远不要承诺你的
.env文件到版本控制 - 确保您的Plaid凭据安全
- 这
~/.plaid_tokens.json文件包含敏感的访问令牌-确保其安全 - 使用
sandbox测试环境,仅供使用production准备好后 - 对于生产部署,考虑使用适当的机密管理解决方案
故障排除
端口已在使用中
如果端口3000或3001已在使用中,请更改 PORT 在你的 .env.local 文件:
PORT=8080缺少环境变量
如果您看到“PLAID_CLIENT_ID和PLAID_SERVET环境变量是必需的”,请确保 .env.local 文件存在并且包含有效凭据。
令牌交换失败
- 确保您使用的是正确的环境(沙盒/开发/生产)
- 验证您的Plaid凭据是否有效
- 检查公共令牌是否未过期(它们是一次性使用且寿命短)
有关更多故障排除帮助,请参阅 CHATGPT-SETUP.md, 认证.md,或 部署.md.
资源
许可证
国际学生委员会
