# Quick Start: Deploy & Monetize in 20 Minutes
## Prerequisites
- ✅ GitHub repository (you have this)
- Railway account (sign up at https://railway.app - free)
- Stripe account (sign up at https://stripe.com - free)
---
## Step 1: Deploy to Railway (10 minutes)
### Option A: Via Railway Dashboard (Easiest)
1. **Go to Railway**: https://railway.app
2. **Sign up** with GitHub (free)
3. **New Project** → **Deploy from GitHub**
4. **Select repository**: `JakartaMigrationMCP`
5. **Railway auto-detects** Spring Boot ✅
6. **Add environment variable**:
- Key: `SPRING_PROFILES_ACTIVE`
- Value: `mcp-streamable-http`
7. **Deploy!**
**Result**: Your MCP server is live at:
```
https://jakarta-migration-mcp.railway.app/mcp/streamable-http
```
### Option B: Via Railway CLI
```bash
# Install Railway CLI
npm i -g @railway/cli
# Login
railway login
# Initialize (in your project directory)
railway init
# Deploy
railway up
# Set environment variable
railway variables set SPRING_PROFILES_ACTIVE=mcp-streamable-http
```
---
## Step 2: Update Glama.json (2 minutes)
Update your `glama.json`:
```json
{
"$schema": "https://glama.ai/mcp/schemas/server.json",
"maintainers": ["adrianmikula"],
"mcp": {
"url": "https://jakarta-migration-mcp.railway.app/mcp/streamable-http",
"transport": "streamable-http"
},
"description": "Jakarta EE migration analysis and automation tools",
"tags": ["java", "jakarta", "migration", "enterprise"]
}
```
Commit and push:
```bash
git add glama.json
git commit -m "Update glama.json with Railway URL"
git push
```
---
## Step 3: Create Stripe Payment Link (3 minutes)
1. **Go to Stripe Dashboard**: https://dashboard.stripe.com
2. **Products** → **Create product**
- Name: "Jakarta Migration MCP Premium"
- Description: "Full migration automation suite"
- Price: $29/month (recurring)
3. **Payment Links** → **Create payment link**
- Select your product
- Configure: "Send license key via email after payment"
4. **Copy payment link**: `https://buy.stripe.com/abc123`
---
## Step 4: Add Monetization Tools (5 minutes)
Add these tools to your MCP server:
```java
@McpTool(name = "getPremiumLicense",
description = "Get link to purchase premium license for full migration automation")
public String getPremiumLicense() {
return "Purchase Jakarta Migration MCP Premium ($29/month):\n" +
"https://buy.stripe.com/abc123\n\n" +
"Premium includes:\n" +
"- Full migration plan generation\n" +
"- Comprehensive impact analysis\n" +
"- Runtime verification\n" +
"- Priority support";
}
@McpTool(name = "activatePremium",
description = "Activate premium license with license key")
public String activatePremium(@McpToolParam(description = "License key from purchase email") String licenseKey) {
// TODO: Validate license key (check Stripe webhook or database)
if (isValidLicenseKey(licenseKey)) {
// Enable premium features
return "Premium activated! You now have access to all migration tools.";
} else {
return "Invalid license key. Please check your email for the correct key.";
}
}
```
---
## Step 5: List on Glama.ai (5 minutes)
1. **Go to Glama.ai**: https://glama.ai
2. **Submit your MCP server**:
- Repository URL: Your GitHub repo
- Glama will read your `glama.json` ✅
3. **Add marketplace info**:
- Title: "Jakarta Migration MCP"
- Description: "Enterprise Jakarta EE migration analysis and automation"
- Pricing: "Free tier + Premium $29/month"
- Tags: java, jakarta, migration, enterprise
**Result**: Your MCP server is discoverable in Glama.ai marketplace!
---
## Step 6: Test Your Deployment
### Test MCP Endpoint
```bash
curl -X POST https://jakarta-migration-mcp.railway.app/mcp/streamable-http \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}'
```
**Expected**: Should return all 6 Jakarta Migration tools + `check_env`
### Test in Cursor
Add to your Cursor MCP config:
```json
{
"mcpServers": {
"jakarta-migration": {
"type": "streamable-http",
"url": "https://jakarta-migration-mcp.railway.app/mcp/streamable-http"
}
}
}
```
---
## Pricing Strategy
### Free Tier (Always Available)
- ✅ `analyzeJakartaReadiness` - Basic analysis
- ✅ `detectBlockers` - Identify migration blockers
- ✅ `recommendVersions` - Version recommendations
### Premium Tier ($29/month)
- ✅ All free tools
- ✅ `createMigrationPlan` - Full migration planning
- ✅ `analyzeMigrationImpact` - Comprehensive impact analysis
- ✅ `verifyRuntime` - Runtime verification
- ✅ Priority support
### Enterprise Tier ($299/month)
- ✅ All premium features
- ✅ Custom migration strategies
- ✅ On-premise deployment
- ✅ SLA guarantee
- ✅ Dedicated support
---
## Cost Breakdown
### Monthly Costs
- **Railway**: $5-10/month (free tier covers moderate usage)
- **Stripe**: 2.9% + $0.30 per transaction (no monthly fee)
- **Glama.ai**: Free listing
### Break-Even
- **1-2 premium subscribers** ($29/month) = Break-even
- **10 premium subscribers** = ~$290/month revenue
- **1 enterprise subscriber** = $299/month revenue
---
## Next Steps
1. ✅ Deploy to Railway
2. ✅ List on Glama.ai
3. ⏭️ Promote in MCP communities:
- Cursor Discord
- Claude Desktop Discord
- Reddit (r/MCP, r/ClaudeAI)
- Twitter/X with #MCP hashtag
4. ⏭️ Add analytics to track usage
5. ⏭️ Collect user feedback
6. ⏭️ Iterate on pricing based on demand
---
## Troubleshooting
### Railway Deployment Issues
**Problem**: Build fails
**Solution**: Check Railway logs, ensure `SPRING_PROFILES_ACTIVE=mcp-streamable-http` is set
**Problem**: Port not accessible
**Solution**: Railway auto-assigns port, check `PORT` environment variable
### Glama Listing Issues
**Problem**: Listing not showing
**Solution**: Verify `glama.json` is in root directory and properly formatted
**Problem**: URL not working
**Solution**: Ensure Railway deployment is live and accessible
---
## Alternative: Render (If Railway Doesn't Work)
1. Go to https://render.com
2. New → Web Service
3. Connect GitHub repository
4. Build command: `./gradlew bootJar`
5. Start command: `java -jar build/libs/jakarta-migration-mcp-*.jar --spring.profiles.active=mcp-streamable-http`
6. Deploy!
**Result**: `https://jakarta-migration-mcp.onrender.com/mcp/streamable-http`
---
## Success Metrics
Track these to measure success:
- **Deployments**: Railway/Render uptime
- **Marketplace**: Glama.ai listing views
- **Usage**: MCP tool calls per day
- **Monetization**: Stripe payment conversions
- **Retention**: Monthly active users
---
## Resources
- [Railway Docs](https://docs.railway.app/)
- [Render Docs](https://render.com/docs)
- [Glama.ai](https://glama.ai)
- [Stripe Payment Links](https://stripe.com/docs/payment-links)
- [MCP Spec](https://modelcontextprotocol.io)