mcp server rate limiting - do you expose it to the agent or just fail silently
we added rate limiting to our mcp servers (250 calls/min per tool) and now trying to decide if we should tell the agent when it hits the limit or just return an error and let it figure it out. if we expose it the agent might learn to batch calls, but it might also just retry immediately which burns tokens. if we hide it the agent gets confused why the same call works sometimes and fails other times. what are people doing here? do you include rate limit info in the error response or keep it opaque?
ok so we expose rate limits to the agent with a structured error message that includes retry_after seconds. agent learns to back off and it cut our failed call volume by like 55%. failing silently just trains the agent to spam retries imo
expose it. agent needs to learn rate limits exist
we've been doing this for six months now and exposing rate limits is definitely the right call. the key thing we learned is you need to make the error message actionable - don't just say "rate limited", say "rate limited: 45 requests in 60s, limit is 40/min, retry after 18 seconds". agent learns the pattern and our retry storms dropped from ~300/day to maybe 12/day. also worth adding a exponential backoff hint in the error response if the agent keeps hitting the limit. some frameworks respect it, some don't, but when it works it's great.