cursor-pro-limits-mcp
v1.0.1
Published
MCP server for monitoring Cursor Pro usage limits and API quotas
Maintainers
Readme
Cursor Pro Limits MCP Server
A Model Context Protocol (MCP) server for monitoring Cursor Pro usage limits and API quotas. This server helps you track your daily usage across different AI services and stay within your Cursor Pro limits.
Features
- 📊 Real-time Usage Monitoring: Track Sonnet 4.5, Gemini, and GPT-5 request usage
- 🚨 Alert System: Get warnings when approaching limits
- 📈 Usage Statistics: Detailed breakdown of current usage vs. limits
- 🔧 Easy Integration: Works with any MCP-compatible client
- 🎯 TypeScript: Fully typed with strict TypeScript configuration
Cursor Pro Limits (Monthly)
Based on Cursor Pro subscription limits:
Pro Tier
- Sonnet 4.5: 225 requests/month
- Gemini: 550 requests/month
- GPT-5: 500 requests/month
- Total: 1,275 requests/month
Pro+ Tier
- Sonnet 4.5: 675 requests/month
- Gemini: 1,650 requests/month
- GPT-5: 1,500 requests/month
- Total: 3,825 requests/month
Ultra Tier
- Sonnet 4.5: 4,500 requests/month
- Gemini: 11,000 requests/month
- GPT-5: 10,000 requests/month
- Total: 25,500 requests/month
Installation
npm install cursor-pro-limits-mcpUsage
As an MCP Server
- Configure your MCP client to use this server:
{
"mcpServers": {
"cursor-pro-limits": {
"command": "npx",
"args": ["cursor-pro-limits-mcp"]
}
}
}- Available Tools:
get_usage_stats
Get comprehensive usage statistics for all services.
// Returns current usage, limits, percentages, and remaining requestsget_service_usage
Get detailed usage for a specific service.
Parameters:
service:"sonnet45" | "gemini" | "gpt5" | "total"
check_alerts
Check for services approaching or exceeding limits.
update_usage
Update usage statistics (for testing or manual updates).
Parameters:
sonnet45Requests(optional): Number of Sonnet 4.5 requestsgeminiRequests(optional): Number of Gemini requestsgpt5Requests(optional): Number of GPT-5 requeststotalRequests(optional): Total number of requests
set_subscription_tier
Set the subscription tier (pro, pro-plus, ultra).
Parameters:
tier: Subscription tier ("pro", "pro-plus", or "ultra")
get_subscription_info
Get current subscription tier and limits information.
Programmatic Usage
import { CursorLimitsMonitor } from 'cursor-pro-limits-mcp';
// Create monitor for Pro tier (default)
const monitor = new CursorLimitsMonitor('pro');
// Get current usage stats
const stats = monitor.getUsageStats();
console.log(`Sonnet 4.5: ${stats.limits.sonnet45Requests}/${stats.quotas.maxSonnet45Requests}`);
// Check for alerts
const alerts = monitor.checkAlerts();
if (alerts.length > 0) {
console.log('Warning: Approaching limits!');
}
// Update usage (e.g., from API response)
monitor.updateLimits({
sonnet45Requests: 150,
geminiRequests: 300,
gpt5Requests: 200,
totalRequests: 650
});
// Switch to Pro+ tier for higher limits
monitor.updateTier('pro-plus');
console.log(`Switched to ${monitor.getCurrentTier()} tier`);Development
Prerequisites
- Node.js 18.0.0 or higher
- npm or yarn
Setup
# Clone the repository
git clone <repository-url>
cd cursor-pro-limits-mcp
# Install dependencies
npm install
# Build the project
npm run buildAvailable Scripts
# Build TypeScript
npm run build
# Watch mode for development
npm run dev
# Start the server
npm start
# Lint code
npm run lint
# Fix linting issues
npm run lint:fix
# Format code
npm run format
# Check formatting
npm run format:check
# Clean build directory
npm run cleanCode Quality
This project uses:
- TypeScript with strict configuration
- ESLint for code linting
- Prettier for code formatting
- No
anytypes - fully typed codebase
API Reference
Types
interface CursorProLimits {
sonnet45Requests: number;
geminiRequests: number;
gpt5Requests: number;
totalRequests: number;
lastUpdated: Date;
}
interface UsageStats {
limits: CursorProLimits;
quotas: CursorProQuotas;
usagePercentages: {
sonnet45: number;
gemini: number;
gpt5: number;
total: number;
};
remaining: {
sonnet45: number;
gemini: number;
gpt5: number;
total: number;
};
}Methods
CursorLimitsMonitor
getUsageStats(): Get comprehensive usage statisticsgetServiceUsage(service): Get usage for specific servicecheckAlerts(): Check for services approaching limitsupdateLimits(limits): Update usage statisticsonUpdate(callback): Subscribe to usage updates
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests and linting:
npm run lint && npm run format:check - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
License
MIT License - see LICENSE file for details.
Support
For issues and questions:
- Open an issue on GitHub
- Check the documentation
- Review the TypeScript types for API reference
