saas-brain-mcp
by Mohd16kaif
README.md
# 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
```bash
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`:
```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
```bash
mvn spring-boot:run
```
Test it:
```bash
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
1. Go to claude.ai → Settings → Connectors
2. Click **Add custom connector**
3. Name: `saas-brain`
4. URL: `https://your-render-url.onrender.com/mcp`
5. 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`:
```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_role` key (not the `anon` key) needed to query `auth.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](https://github.com/Mohd16kaif)
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues