SaaS Brain MCP
Ask questions about your SaaS business in plain English using Claude AI.
"Who is about to churn?" • "What's my revenue this week?" • "Who are my best customers?"
No dashboards. No SQL. Just ask.
What it does
SaaS Brain is an MCP (Model Context Protocol) server that connects Claude AI to your Stripe and Supabase data. Ask natural language questions and get intelligent business insights instantly.
Available tools
| Tool | What it answers |
|---|---|
getRevenue | Total revenue for any date range |
getTopCustomers | Highest spending customers |
getActiveSubscriptions | All active subscribers + plan info |
getInactiveUsers | Users who haven't logged in for N days |
getUserActivity | Last login + activity for a specific user |
getChurnRiskUsers | Paying users who have gone inactive |
getHighValueUsers | Customers above a spend threshold |
getHighValueAtRiskUsers | High spenders who are now inactive |
Example questions you can ask Claude
- "What's my revenue from January to March?"
- "Show me my top 5 customers by spend"
- "Which users are at risk of churning?"
- "Who pays the most but hasn't logged in recently?"
- "Give me a full health report of my SaaS"
Tech stack
- Java 17 + Spring Boot
- Stripe API
- Supabase REST API
- Docker
- MCP Protocol (JSON-RPC 2.0)
Prerequisites
- Java 17+
- Maven
- A Stripe account (free, test mode works)
- A Supabase project (free tier works)
- A Claude.ai account (free tier works)
Setup
1. Clone the repo
git clone https://github.com/Mohd16kaif/saas-brain-mcp.git
cd saas-brain-mcp
2. Add your API keys
Create src/main/resources/application.properties:
server.port=8080
spring.application.name=saas-brain-mcp
stripe.api.key=sk_test_YOUR_STRIPE_KEY
supabase.url=https://YOUR_PROJECT.supabase.co
supabase.key=YOUR_SERVICE_ROLE_KEY
Get your keys from:
- Stripe: dashboard.stripe.com → Developers → API Keys
- Supabase: app.supabase.com → Settings → API → service_role key
3. Run locally
mvn spring-boot:run
Test it:
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
Deploy to Render (free, 24/7)
1. Fork this repo on GitHub
2. Create a new Web Service on Render
- Go to render.com → New → Web Service
- Connect your forked repo
- Language: Docker
- Branch:
main - Instance Type: Free
3. Add environment variables in Render
| Key | Value |
|---|---|
STRIPE_API_KEY | your Stripe key |
SUPABASE_URL | your Supabase project URL |
SUPABASE_KEY | your Supabase service_role key |
4. Deploy
Render builds and deploys automatically. Your server will be live at:
https://your-service-name.onrender.com
Connect to Claude.ai
- Go to claude.ai → Settings → Connectors
- Click Add custom connector
- Name:
saas-brain - URL:
https://your-render-url.onrender.com/mcp - Save and enable in chat
Then just ask Claude anything about your business.
Connect to Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"saas-brain": {
"type": "http",
"url": "https://your-render-url.onrender.com/mcp"
}
}
}
File location:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Important notes
- Use Supabase's
service_rolekey (not theanonkey) needed to queryauth.users - Churn detection works by matching emails between Stripe and Supabase make sure users sign up with the same email in both
- Free Render instances sleep after 15 minutes of inactivity first request may take 30 seconds to wake up
Cost
$0 Stripe test mode is free, Supabase free tier is permanent, Render free tier is sufficient for personal use.
License
MIT free to use, modify, and deploy.
Built by
Mohd. Kaif Shaikh GitHub