Rate Limiting & Reliability
Overview
Section titled “Overview”JiraMCP includes a built-in rate limiter that protects against Jira API rate limits and ensures reliable operations through exponential backoff, request queuing, and operation verification.
Rate Limiting
Section titled “Rate Limiting”Configuration Defaults
Section titled “Configuration Defaults”| Parameter | Default | Description |
|---|---|---|
maxConcurrent | 1 | Maximum concurrent requests |
maxRetries | 4 | Maximum retry attempts for failed requests |
initialDelayMs | 1,000 | Initial backoff delay |
maxDelayMs | 30,000 | Maximum backoff delay |
jitterMin | 0.7 | Minimum jitter multiplier |
jitterMax | 1.3 | Maximum jitter multiplier |
requestDelayMs | 100 | Delay between sequential requests |
Exponential Backoff Formula
Section titled “Exponential Backoff Formula”delay = min(initialDelay * 2^attempt, maxDelay) * random(jitterMin, jitterMax)The jitter prevents thundering herd problems when multiple requests hit rate limits simultaneously.
Retryable Errors
Section titled “Retryable Errors”The rate limiter automatically retries on:
- HTTP 429 — Too Many Requests (uses
Retry-Afterheader if present) - HTTP 5xx — Server errors (502, 503, 504)
- Network errors — Connection timeouts, DNS failures
Rate Limit Header Monitoring
Section titled “Rate Limit Header Monitoring”JiraMCP reads Jira’s rate limit headers on every response:
X-RateLimit-Remaining— Requests remaining in current windowRetry-After— Seconds to wait before retrying (on 429 responses)
Operation Verification
Section titled “Operation Verification”For mutation operations (create, update, transition), JiraMCP automatically verifies the operation succeeded by reading back the resource after writing.
Verification Flow
Section titled “Verification Flow”- Execute mutation (e.g., create issue)
- Wait
delayBeforeVerify(default: 500ms) - Read back the resource
- Compare expected vs actual state
- If mismatch and
retryOnMismatchis enabled, retry up tomaxVerifyRetriestimes
Verified Operations
Section titled “Verified Operations”verifyIssueCreated— Confirms issue exists with expected fieldsverifyIssueUpdated— Confirms fields were updated correctlyverifySprintState— Confirms sprint state transition (active/closed)verifyIssuesInSprint— Confirms issues were moved to the target sprint
Structured Logging
Section titled “Structured Logging”All rate limiting and verification events are logged with:
- Correlation IDs for request tracing
- Request/response metrics
- Retry attempt details
- Verification results
Set JIRA_LOG_LEVEL=DEBUG to see detailed rate limiting behavior.