MCP server exposing complete RevenueCat v2 REST API for IDE integration with AI agents
npm install revenuecat-mcpA Model Context Protocol (MCP) server that exposes the complete RevenueCat v2 REST API for seamless integration with AI agents and IDEs like Cursor and VS Code.
- Complete API Coverage: All 25 CRUD operations across 5 RevenueCat resources
- IDE Integration: Native MCP support for Cursor, VS Code, and other compatible IDEs
- Type Safety: Full TypeScript implementation with comprehensive validation
- Production Ready: Retry logic, error handling, and structured logging
- Lightweight: Single executable under 5MB
| Resource | Create | Read | Update | Delete | List |
|----------|--------|------|--------|--------|------|
| Offerings | ✅ | ✅ | ✅ | ✅ | ✅ |
| Products | ✅ | ✅ | ✅ | ✅ | ✅ |
| Entitlements | ✅ | ✅ | ✅ | ✅ | ✅ |
| Packages | ✅ | ✅ | ✅ | ✅ | ✅ |
| Price Experiments | ✅ | ✅ | ✅ | ✅ | ✅ |
bash
npm install -g revenuecat-mcp
`$3
`bash
git clone https://github.com/iamhenry/revenuecat-mcp.git
cd revenuecat-mcp
npm install
npm run build
npm install -g .
`Configuration
$3
Create a .env file in your project or set environment variables:`env
REVENUECAT_SECRET_KEY=sk_your_secret_key_here
RC_API_URL=https://api.revenuecat.com/v2 # Optional
LOG_LEVEL=info # Optional
`$3
1. Log in to your RevenueCat Dashboard
2. Navigate to your project settings
3. Generate a secret key with appropriate permissions
4. Note your project ID from the URL or project settingsIDE Integration
$3
`bash
Add the MCP server to Cursor
claude mcp add revenuecat revenuecat-mcpTest the integration
claude mcp test revenuecat
`$3
Add to your MCP configuration file:
`json
{
"servers": {
"revenuecat": {
"command": "revenuecat-mcp"
}
}
}
`Usage Examples
$3
`bash
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "ListProducts", "arguments": {"project_id": "your_project_id"}}}' | revenuecat-mcp
`$3
`bash
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "CreateOffering", "arguments": {"project_id": "your_project_id", "name": "Premium Offering", "description": "Our premium subscription offering"}}}' | revenuecat-mcp
`$3
`bash
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "GetProduct", "arguments": {"project_id": "your_project_id", "id": "prod_123456"}}}' | revenuecat-mcp
`Available MCP Tools
$3
- CreateOffering - Create a new offering
- GetOffering - Retrieve offering details
- UpdateOffering - Update offering properties
- DeleteOffering - Delete an offering
- ListOfferings - List all offerings with pagination$3
- CreateProduct - Create a new product
- GetProduct - Retrieve product details
- UpdateProduct - Update product properties
- DeleteProduct - Delete a product
- ListProducts - List all products with pagination$3
- CreateEntitlement - Create a new entitlement
- GetEntitlement - Retrieve entitlement details
- UpdateEntitlement - Update entitlement properties
- DeleteEntitlement - Delete an entitlement
- ListEntitlements - List all entitlements with pagination$3
- CreatePackage - Create a new package
- GetPackage - Retrieve package details
- UpdatePackage - Update package properties
- DeletePackage - Delete a package
- ListPackages - List all packages with pagination$3
- CreatePriceExperiment - Create a new price experiment
- GetPriceExperiment - Retrieve price experiment details
- UpdatePriceExperiment - Update price experiment properties
- DeletePriceExperiment - Delete a price experiment
- ListPriceExperiments - List all price experiments with paginationError Handling
The server maps RevenueCat HTTP errors to appropriate MCP error codes:
-
400 Bad Request → VALIDATION_ERROR
- 401 Unauthorized → UNAUTHENTICATED
- 403 Forbidden → FORBIDDEN
- 404 Not Found → NOT_FOUND
- 429 Too Many Requests → RATE_LIMITED
- 500+ Server Errors → INTERNALDevelopment
$3
- Node.js ≥18
- npm or yarn
- RevenueCat account with API access$3
`bash
Clone the repository
git clone https://github.com/iamhenry/revenuecat-mcp.git
cd revenuecat-mcpInstall dependencies
npm installSet up environment
cp .env.example .env
Edit .env with your credentials
Build the project
npm run buildTest locally
npm run dev
`$3
`
src/
├── index.ts # MCP server entry point
├── core/
│ ├── config.ts # Environment configuration
│ ├── entities/ # TypeScript interfaces
│ ├── use-cases/ # Business logic
│ └── validation/ # Input validation
├── infrastructure/
│ ├── revenuecat-client.ts # HTTP client
│ └── logger.ts # Structured logging
└── presentation/
└── mcp-server.ts # MCP protocol handler
`Security
- NO secrets are logged (automatic redaction)
- Environment variables are validated at startup
- Input validation for all API calls
- Secure error handling without data leakage
Contributing
1. Fork the repository
2. Create a feature branch:
git checkout -b feature-name
3. Make your changes and add tests
4. Commit: git commit -am 'Add feature'
5. Push: git push origin feature-name`MIT License - see LICENSE file for details.
- 📚 RevenueCat Documentation
- 🐛 Issue Tracker
- 💬 Discussions