企鹅银行MCP服务器
一个生产就绪的模型上下文协议(MCP)服务器,演示了使用Supabase和Netlify边缘功能的人工智能辅助银行交互与真实数据持久性。
🐧 特性
- 实体银行业务:账户余额、交易和账单支付
- 持久性数据:存储在Supabase PostgreSQL数据库中的所有数据
- MCP协议:与Claude Desktop和其他MCP客户端完全兼容
- 交互式支付:具有验证功能的账单支付工作流
- 边缘功能:在Netlify Edge Runtime(Deno)上快速、全球分布
🚀 快速开始
先决条件
- Supabase账户
- Netlify帐户(用于部署)
地方发展
- 克隆并安装依赖项:
git clone
cd penguin-bank-cloud
npm install- 配置环境:
cp .env.example .env
# Edit .env with your Supabase credentials- 启动开发服务器:
npm run dev- 配置Claude桌面:
添加到您的Claude Desktop MCP设置中:
{
"mcpServers": {
"penguin-bank": {
"url": "http://localhost:8888/mcp",
"transport": "http"
}
}
}🏗️ 建筑
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ │ │ │ │ │
│ Claude Desktop │◄────────┤ Netlify Edge │◄────────┤ Supabase │
│ (MCP Client) │ HTTP │ Function (Deno) │ SQL │ Database │
│ │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘关键部件:
- 边缘功能:单人
mcp.ts文件处理MCP协议 - Deno运行时:无构建过程,直接执行TypeScript
- Supabase:具有全面银行架构的云优先数据库
🛠️ 可用工具
- 你好 -欢迎留言
- get_balance -获取账户余额
- get_recent_transactions -列出最近的交易
- show_bill -显示账单详细信息
- 流程_付款 -通过验证支付账单
📊 数据库模式
- 用户 -具有个人资料数据的用户帐户
- 账户 -有余额的银行账户(支票/储蓄)
- 交易 -完整的交易历史记录,包括类别
- 账单 -带到期日和自动转账的应付票据
- 付款历史 -带有确认的付款记录
🔧 开发命令
npm run dev # Start local development server
npm run db:migrate # Push database migrations to cloud
npm run db:reset # Reset cloud database with seed data
npm run db:link # Link to Supabase project🚀 部署
通过GitHub Actions自动部署:
- 推到main → 触发生产部署
- 拉取请求 → 创建预览部署
- 数据库迁移 → 在主分支上自动运行
- 零构建过程 → 边缘功能直接部署
必需的GitHub机密
SUPABASE_ACCESS_TOKENSUPABASE_DB_PASSWORDSUPABASE_PROJECT_IDNETLIFY_AUTH_TOKENNETLIFY_SITE_ID
构建状态:
🧪 测试
在本地测试MCP服务器:
curl -X POST http://localhost:8888/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'📚 文档
🔒 安全
- 为了简单起见,演示使用固定的用户ID
- 生产部署需要适当的身份验证
- RLS策略已启用,但演示时被绕过
- 使用服务角色密钥(定期轮换)
🤝 贡献
- 分叉存储库
- 创建要素分支
- 使用进行更改和测试
npm run dev - 提交拉取请求
📄 许可证
MIT许可证-有关详细信息,请参阅许可证文件
