429-throttle-mcp
429-throttle-mcp
English | 中文
Больше никаких отказов API 429 — MCP-прокси с ограничением скорости, который позволяет моделям автоматически контролировать темп вызовов в длительных задачах.
Что это
Многие бесплатные API больших моделей (Grok, Gemini, Dots и др.) допускают лишь около 30 вызовов в минуту. При выполнении длительных задач (поиск + создание презентаций, массовые вызовы инструментов) модель легко превышает лимит и получает отказ 429.
429-throttle-mcp решает эту проблему, предоставляя прозрачный слой ограничения скорости:
模型 → call_api 工具 → 限流器 → 实际 API 请求 → 返回结果 + 用量快照Модели не нужно знать о существовании ограничения скорости — ей достаточно просто вызывать call_api. Логика ограничения выполняется прозрачно внутри MCP: если лимит позволяет — запрос пропускается, если нет — модель получает информацию о том, сколько ждать перед повтором.
Related MCP server: tiny-mcp-gateway
Структура пакета
Monorepo, содержащий два независимых npm-пакета с общей логикой ограничения скорости:
429-throttle-mcp/
├── packages/
│ ├── rate-limiter.js # 核心限流逻辑(共享)
│ ├── 429-throttle-mcp/ # MCP Server 包
│ │ ├── package.json
│ │ ├── server.js
│ │ └── README.md
│ └── dsh-throttle/ # DSH Plugin 包
│ ├── package.json
│ ├── plugin.js
│ └── README.md
├── dsh-manifest.json
├── README.md
└── .env.exampleПакет | Установка | Назначение |
|
| MCP-сервер (для MCP-клиентов, таких как ZCode) |
|
| Плагин DeepSeek Harness |
Основные параметры
Параметр | Значение по умолчанию | Описание |
| 30 | Максимальное число вызовов в минуту (RPM) |
| 750000 | Максимальное число токенов в минуту (TPM), включая тело запроса и ответа |
Доступные инструменты
call_api
Отправляет HTTP-запрос через прокси с ограничением скорости. Все вызовы внешних API должны проходить через этот инструмент.
Параметр | Тип | Обязательный | Описание |
| string | ✅ | Полный URL целевого API |
| string | ❌ | HTTP-метод, по умолчанию GET |
| string | ❌ | Тело запроса, JSON-строка |
| string | ❌ | Пользовательские заголовки, JSON-строка |
Возвращает: ответ API + снимок использования _meta.rateLimit. При отказе из-за ограничения возвращает ошибку RATE_LIMIT_EXCEEDED с рекомендуемым временем ожидания retryAfterSeconds.
get_rate_limit_status
Запрашивает текущее состояние ограничения скорости. Возвращает использованные/оставшиеся вызовы и токены, а также рекомендации. Не включает счётчик очереди, чтобы не вызывать беспокойство у пользователя.
set_rate_limit
Динамическая настройка параметров ограничения (аналог регулировки ползунком, применяется в реальном времени без перезапуска).
Параметр | Тип | Описание |
| number | Максимальное число вызовов в минуту (RPM) |
| number | Максимальное число токенов в минуту (TPM) |
Установка
MCP-клиент (например, ZCode)
npm install 429-throttle-mcpДобавьте в конфигурацию MCP:
{
"mcpServers": {
"429-throttle-mcp": {
"command": "node",
"args": ["node_modules/429-throttle-mcp/server.js"],
"env": {
"MAX_CALLS": "30",
"MAX_TOKENS": "750000"
}
}
}
}DeepSeek Harness
npm install dsh-throttleДобавьте в конфигурацию DSH:
{
"plugins": {
"dsh-throttle": {
"maxCalls": 30,
"maxTokens": 750000
}
}
}Пример рабочего процесса
При выполнении моделью задачи поиска для брендовой презентации:
Вызов
get_rate_limit_status→ подтверждение достаточного лимитаВызов
call_api→ поиск по ключевым словам брендаПри отказе → ожидание
retryAfterSecondsи повторПовтор шагов 2–3 до сбора всей информации
Вызов
set_rate_limit→ ужесточение параметров ограничения для этапа генерации
Алгоритм ограничения скорости
Скользящее окно + ведро токенов (Sliding Window + Token Bucket): поддерживается скользящее окно 60 секунд, при каждом вызове записываются временная метка и потребление токенов. Старые записи за пределами окна автоматически удаляются. При превышении лимита вычисляется оставшееся время ожидания по самой ранней записи.
Безопасность при параллелизме: tryConsume() — синхронная функция, которая в однопоточном цикле событий Node.js естественным образом сериализуется, исключая состояния гонки.
Почему это, а не «вызывай медленнее» в промпте?
Способ | Эффект |
В промпте «вызывай раз в 2 секунды» | ❌ У модели нет секундомера, она не соблюдает, burst-запросы всё равно дают 429 |
Внешний скрипт с ограничением | ❌ Требуется дополнительный процесс, модель не осведомлена, сложно отлаживать ошибки |
MCP-прокси с ограничением (этот проект) | ✅ Прозрачно для модели, надёжный контроль, структурированные ошибки + рекомендации по ожиданию |
Ключевые слова для сценариев применения
429报错, anti 429, MCP限流, 大模型每分钟调用限制, 免费大模型速率限制, Agent批量调用触发429, MCP排队调用, RPM, TPM, rate limiter mcp, quota guard, mcp server, mcp proxy, throttle, llm api quota, cop, HTTP 429, Too Many Requests, rate limiting, token bucket, sliding window, API proxy, LLM rate limit, AI API throttle, concurrent rate limit, 30 calls per minute
Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Fleet-wide shared rate limiter for A2A + multi-MCP deployments. Most MCP servers rate-limit inde...
REST-to-MCP for UK hospitality. Safety proxy: circuit-breakers, rate limits, whitelists. Apache 2.0.
Cloudflare Workers MCP server: ai-rate-limit-tracker
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceA least-privilege enforcement proxy for MCP servers. It sits between MCP clients and upstream servers, enforcing tool policies, hiding denied tools, requiring human approval for risky actions, and providing a structured audit trail.MIT
- AlicenseNot gradedqualityCmaintenanceA zero-dependency MCP proxy/gateway server that aggregates multiple MCP servers, routes tools by prefix, load balances, and enforces authentication and rate limits.1MIT
- FlicenseNot gradedqualityBmaintenanceEnables autonomous agents to apply adaptive token bucket concurrency limits and backoff scheduling to avoid HTTP 429 errors. It provides deterministic rate-limiting permits and structured telemetry through MCP-compatible clients.8-
- FlicenseNot gradedqualityBmaintenanceEnables adaptive token bucket rate limiting and backoff scheduling to prevent HTTP 429 errors for autonomous agents and API clients. Provides a deterministic zero-dependency MCP/CLI engine for acquiring token permits and returning structured telemetry.7-