dudgeon/penguin-bank-cloud
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 dayong@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.
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
-
Clone and install dependencies:
git clone <repository-url> cd penguin-bank-cloud npm install -
Configure environment:
cp .env.example .env # Edit .env with your Supabase credentials -
Start development server:
npm run dev -
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.tsfile handling MCP protocol - Deno Runtime: No build process, direct TypeScript execution
- Supabase: Cloud-first database with comprehensive banking schema
🛠️ Available Tools
- hello_penguin - Welcome message
- get_balance - Get account balance
- get_recent_transactions - List recent transactions
- show_bill - Display bill details
- 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:
- Push to main → Triggers production deployment
- Pull requests → Create preview deployments
- Database migrations → Run automatically on main branch
- Zero build process → Edge functions deploy directly
Required GitHub Secrets
SUPABASE_ACCESS_TOKENSUPABASE_DB_PASSWORDSUPABASE_PROJECT_IDNETLIFY_AUTH_TOKENNETLIFY_SITE_ID
Build Status:
🧪 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
- Fork the repository
- Create a feature branch
- Make changes and test with
npm run dev - Submit a pull request
📄 License
MIT License - see LICENSE file for details