429-throttle-mcp
429-throttle-mcp
English | 中文
Keine API-429-Ablehnungen mehr — ein MCP-Proxy mit Ratenbegrenzung, der Modellen in langen Aufgaben automatisch das Aufruftempo steuert.
Was ist das
Viele kostenlose LLM-APIs (Grok, Gemini, Dots usw.) erlauben nur etwa 30 Aufrufe pro Minute. Bei langen Aufgaben (Suche + PPT-Erstellung, Batch-Tool-Aufrufe) überschreiten Modelle schnell das Limit und werden mit 429 abgelehnt.
429-throttle-mcp bietet an diesem Schmerzpunkt eine transparente Ratenbegrenzungsschicht:
模型 → call_api 工具 → 限流器 → 实际 API 请求 → 返回结果 + 用量快照Das Modell muss nichts von der Ratenbegrenzung wissen — es ruft einfach normal call_api auf. Die Begrenzungslogik wird transparent innerhalb des MCP ausgeführt: Ist das Kontingent ausreichend, wird durchgelassen; wenn nicht, wird dem Modell mitgeteilt, wie lange es warten soll, bevor es es erneut versucht.
Related MCP server: tiny-mcp-gateway
Paketstruktur
Monorepo mit zwei unabhängigen npm-Paketen, die sich die zentrale Begrenzungslogik teilen:
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.examplePaketname | Installation | Verwendung |
|
| MCP-Server (ZCode und andere MCP-Clients) |
|
| DeepSeek-Harness-Plugin |
Kernparameter
Parameter | Standardwert | Beschreibung |
| 30 | Maximale Aufrufe pro Minute (RPM) |
| 750000 | Maximale Token pro Minute (TPM), einschließlich Anfrage- und Antworttext |
Verfügbare Tools
call_api
Sendet HTTP-Anfragen über den Begrenzungs-Proxy. Alle externen API-Aufrufe müssen über dieses Tool laufen.
Parameter | Typ | Erforderlich | Beschreibung |
| string | ✅ | Vollständige URL der Ziel-API |
| string | ❌ | HTTP-Methode, Standard GET |
| string | ❌ | Anfragekörper, JSON-String |
| string | ❌ | Benutzerdefinierte Header, JSON-String |
Rückgabe: API-Antwort + _meta.rateLimit-Verbrauchsmomentaufnahme. Bei Ablehnung durch die Begrenzung wird ein RATE_LIMIT_EXCEEDED-Fehler zurückgegeben, der die empfohlene Wartezeit retryAfterSeconds enthält.
get_rate_limit_status
Fragt den aktuellen Verbrauch der Ratenbegrenzung ab. Gibt verbrauchte/verbleibende Aufrufe und Token sowie Empfehlungen zurück. Enthält keinen Warteschlangenzähler, um Nutzer nicht zu verunsichern.
set_rate_limit
Passt die Begrenzungsparameter dynamisch an (entspricht einer Schieberegler-Anpassung, wirkt sofort ohne Neustart).
Parameter | Typ | Beschreibung |
| number | Maximale Aufrufe pro Minute (RPM) |
| number | Maximale Token pro Minute (TPM) |
Installation
MCP-Clients (z. B. ZCode)
npm install 429-throttle-mcpIn der MCP-Konfiguration hinzufügen:
{
"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-throttleIn der DSH-Konfiguration hinzufügen:
{
"plugins": {
"dsh-throttle": {
"maxCalls": 30,
"maxTokens": 750000
}
}
}Beispiel-Workflow
Wenn das Modell eine Marken-PPT-Suchaufgabe ausführt:
get_rate_limit_statusaufrufen → Kontingent ausreichend bestätigencall_apiaufrufen → Marken-Keywords suchenBei Ablehnung → nach
retryAfterSecondserneut versuchenSchritte 2–3 wiederholen, bis alle Informationen gesammelt sind
set_rate_limitaufrufen → Begrenzungsparameter für die Generierungsphase enger stellen
Ratenbegrenzungsalgorithmus
Sliding Window + Token Bucket: Ein 60-Sekunden-Sliding-Window wird gepflegt; bei jedem Aufruf werden Zeitstempel und Token-Verbrauch protokolliert. Alte Einträge außerhalb des Fensters werden automatisch bereinigt. Bei Überschreitung des Limits wird die verbleibende Wartezeit des ältesten Eintrags berechnet.
Nebenläufigkeitssicherheit: tryConsume() ist eine synchrone Funktion und wird im Single-Threaded-Event-Loop von Node.js natürlich serialisiert — es können keine Race Conditions auftreten.
Warum das hier statt „ruf langsamer an" im Prompt?
Ansatz | Ergebnis |
Im Prompt „alle 2 Sekunden aufrufen" | ❌ Das Modell hat keine Stoppuhr, hält sich nicht daran, Bursts führen trotzdem zu 429 |
Externes Skript zur Begrenzung | ❌ Benötigt zusätzlichen Prozess, Modell nimmt es nicht wahr, Fehler schwer zu debuggen |
MCP-Begrenzungs-Proxy (dieses Projekt) | ✅ Für das Modell unsichtbar, transparente Kontrolle, strukturierte Fehler + Warteempfehlung |
Application scenario Keyword
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
Lizenz
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-