银行交互MCP服务器

一个生产就绪的模型上下文协议(MCP)服务器,通过Supabase和Netlify Edge Functions实现AI辅助的银行交互与真实数据持久化。

  • by dudgeon
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 dudgeon/penguin-bank-cloud

使用说明

企鹅银行MCP服务器

一个生产就绪的模型上下文协议(MCP)服务器,演示了使用Supabase和Netlify边缘功能的人工智能辅助银行交互与真实数据持久性。

🐧 特性

  • 实体银行业务:账户余额、交易和账单支付
  • 持久性数据:存储在Supabase PostgreSQL数据库中的所有数据
  • MCP协议:与Claude Desktop和其他MCP客户端完全兼容
  • 交互式支付:具有验证功能的账单支付工作流
  • 边缘功能:在Netlify Edge Runtime(Deno)上快速、全球分布

🚀 快速开始

先决条件

  • Supabase账户
  • Netlify帐户(用于部署)

地方发展

  1. 克隆并安装依赖项:

    git clone <repository-url>
    cd penguin-bank-cloud
    npm install
    
  2. 配置环境:

    cp .env.example .env
    # Edit .env with your Supabase credentials
    
  3. 启动开发服务器:

    npm run dev
    
  4. 配置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:具有全面银行架构的云优先数据库

🛠️ 可用工具

  1. 你好 -欢迎留言
  2. get_balance -获取账户余额
  3. get_recent_transactions -列出最近的交易
  4. show_bill -显示账单详细信息
  5. 流程_付款 -通过验证支付账单

📊 数据库模式

  • 用户 -具有个人资料数据的用户帐户
  • 账户 -有余额的银行账户(支票/储蓄)
  • 交易 -完整的交易历史记录,包括类别
  • 账单 -带到期日和自动转账的应付票据
  • 付款历史 -带有确认的付款记录

🔧 开发命令

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自动部署:

  1. 推到main → 触发生产部署
  2. 拉取请求 → 创建预览部署
  3. 数据库迁移 → 在主分支上自动运行
  4. 零构建过程 → 边缘功能直接部署

必需的GitHub机密

  • SUPABASE_ACCESS_TOKEN
  • SUPABASE_DB_PASSWORD
  • SUPABASE_PROJECT_ID
  • NETLIFY_AUTH_TOKEN
  • NETLIFY_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策略已启用,但演示时被绕过
  • 使用服务角色密钥(定期轮换)

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 使用进行更改和测试 npm run dev
  4. 提交拉取请求

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件