Skip to main content
Glama
JaxonDigital

Optimizely DXP MCP Server

by JaxonDigital

get_rate_limit_status

Check current Optimizely DXP API rate limits to monitor remaining requests, reset times, and usage percentages before executing batch operations.

Instructions

⏳ View current API rate limit status. REAL-TIME: <1s. Shows requests remaining (per minute and hourly), reset times, and current usage percentage. Optimizely API limits: 30/min, 500/hour per project. Use before batch operations to avoid hitting limits. Optional: project. Returns rate limit metrics and reset timestamps.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectNameNo
projectIdNo

Implementation Reference

  • Tool availability configuration defining get_rate_limit_status as available across all hosting types in the Monitoring category with description 'Get rate limit status'.
    'get_rate_limit_status': {
        hostingTypes: ['dxp-paas', 'dxp-saas', 'self-hosted', 'unknown'],
        category: 'Monitoring',
        description: 'Get rate limit status'
    },
  • Lists 'get_rate_limit_status' in noCacheOperations set, ensuring real-time results without caching.
        'get_monitoring_stats',
        'get_rate_limit_status',
        ...(Array.isArray(options.noCacheOperations)
            ? options.noCacheOperations
            : options.noCacheOperations || [])
    ]),
  • Implements getStatus(projectId) method returning comprehensive RateLimitStatus object with current usage, limits, throttling, backoff, and failure counts. This is the core execution logic for the get_rate_limit_status tool.
    getStatus(projectId: string): RateLimitStatus {
        const now = Date.now();
        const limits = this.projectLimits.get(projectId);
        const throttle = this.throttleState.get(projectId);
    
        if (!limits) {
            return {
                projectId,
                requestsLastMinute: 0,
                requestsLastHour: 0,
                isThrottled: false,
                consecutiveFailures: 0,
                backoffUntil: null,
                lastRequest: 0
            };
        }
    
        const oneMinuteAgo = now - (60 * 1000);
        const oneHourAgo = now - (60 * 60 * 1000);
    
        return {
            projectId,
            requestsLastMinute: limits.requests.filter(r => r.timestamp > oneMinuteAgo).length,
            requestsLastHour: limits.requests.filter(r => r.timestamp > oneHourAgo).length,
            maxRequestsPerMinute: this.options.maxRequestsPerMinute,
            maxRequestsPerHour: this.options.maxRequestsPerHour,
            isThrottled: throttle ? throttle.retryAfter > now : false,
            throttleRetryAfter: throttle?.retryAfter,
            consecutiveFailures: limits.consecutiveFailures,
            backoffUntil: limits.backoffUntil > now ? limits.backoffUntil : null,
            lastRequest: limits.lastRequest
        };
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JaxonDigital/optimizely-dxp-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server