penguin-bank-cloud

dudgeon/penguin-bank-cloud

3.2

If you are the rightful owner of penguin-bank-cloud and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Penguin Bank MCP Server is a production-ready server for AI-assisted banking interactions, utilizing Supabase and Netlify Edge Functions for real data persistence.

Tools
  1. hello_penguin

    Welcome message

  2. get_balance

    Get account balance

  3. get_recent_transactions

    List recent transactions

  4. show_bill

    Display bill details

  5. process_payment

    Pay bills with validation

Penguin Bank MCP Server

A production-ready Model Context Protocol (MCP) server demonstrating AI-assisted banking interactions with real data persistence using Supabase and Netlify Edge Functions.

๐Ÿง Features

  • Real Banking Operations: Account balances, transactions, and bill payments
  • Persistent Data: All data stored in Supabase PostgreSQL database
  • MCP Protocol: Full compatibility with Claude Desktop and other MCP clients
  • Interactive Payments: Bill payment workflow with validation
  • Edge Functions: Fast, globally distributed on Netlify Edge Runtime (Deno)

๐Ÿš€ Quick Start

Prerequisites

  • Supabase account
  • Netlify account (for deployment)

Local Development

  1. Clone and install dependencies:

    git clone <repository-url>
    cd penguin-bank-cloud
    npm install
    
  2. Configure environment:

    cp .env.example .env
    # Edit .env with your Supabase credentials
    
  3. Start development server:

    npm run dev
    
  4. Configure Claude Desktop: Add to your Claude Desktop MCP settings:

    {
      "mcpServers": {
        "penguin-bank": {
          "url": "http://localhost:8888/mcp",
          "transport": "http"
        }
      }
    }
    

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 โ”‚         โ”‚                 โ”‚         โ”‚                 โ”‚
โ”‚  Claude Desktop โ”‚โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค Netlify Edge    โ”‚โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค   Supabase      โ”‚
โ”‚  (MCP Client)   โ”‚  HTTP   โ”‚ Function (Deno) โ”‚  SQL    โ”‚   Database      โ”‚
โ”‚                 โ”‚         โ”‚                 โ”‚         โ”‚                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Key Components:

  • Edge Function: Single mcp.ts file handling MCP protocol
  • Deno Runtime: No build process, direct TypeScript execution
  • Supabase: Cloud-first database with comprehensive banking schema

๐Ÿ› ๏ธ Available Tools

  1. hello_penguin - Welcome message
  2. get_balance - Get account balance
  3. get_recent_transactions - List recent transactions
  4. show_bill - Display bill details
  5. process_payment - Pay bills with validation

๐Ÿ“Š Database Schema

  • users - User accounts with profile data
  • accounts - Bank accounts (checking/savings) with balances
  • transactions - Complete transaction history with categories
  • bills - Payable bills with due dates and autopay
  • payment_history - Payment records with confirmations

๐Ÿ”ง Development Commands

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

๐Ÿš€ Deployment

Automatic deployment via GitHub Actions:

  1. Push to main โ†’ Triggers production deployment
  2. Pull requests โ†’ Create preview deployments
  3. Database migrations โ†’ Run automatically on main branch
  4. Zero build process โ†’ Edge functions deploy directly

Required GitHub Secrets

  • SUPABASE_ACCESS_TOKEN
  • SUPABASE_DB_PASSWORD
  • SUPABASE_PROJECT_ID
  • NETLIFY_AUTH_TOKEN
  • NETLIFY_SITE_ID

Build Status: Deploy

๐Ÿงช Testing

Test the MCP server locally:

curl -X POST http://localhost:8888/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

๐Ÿ“š Documentation

๐Ÿ”’ Security

  • Demo uses fixed user ID for simplicity
  • Production deployment needs proper authentication
  • RLS policies enabled but bypassed for demo
  • Service role key used (rotate regularly)

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make changes and test with npm run dev
  4. Submit a pull request

๐Ÿ“„ License

MIT License - see LICENSE file for details