DeepSeek Harness rate-limiting plugin that prevents API 429 errors during long-running tasks, with task retrospectives.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:iqingyoung/429-throttle-mcp#path:/packages/dsh-throttle
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
English | 中文
DeepSeek Harness rate-limiting plugin — a transparent API proxy for the Harness ecosystem, reusing 429-throttle-mcp core logic.
What is it
Many free LLM APIs (Grok, Gemini, Dots, etc.) only allow ~30 calls per minute. During long-running tasks, agents easily exceed the quota and get rejected with HTTP 429.
dsh-throttle provides a transparent rate-limiting layer purpose-built for the DeepSeek Harness ecosystem:
Agent → call_api tool → rate limiter → actual API request → result + usage snapshot
It shares the same rate-limiter.js core as 429-throttle-mcp, differing only in the communication protocol — MCP stdio JSON-RPC vs. DSH Plugin API.
Core Parameters
| Parameter | Default | Description |
|---|---|---|
maxCalls |
30 | Max calls per minute (RPM) |
maxTokens |
750000 | Max tokens per minute (TPM), including request and response bodies |
Config source: DSH config or dsh-manifest.json.
Exposed Tools
call_api
Send an HTTP request through the rate-limiting proxy.
| Parameter | Type | Required | Description |
|---|---|---|---|
url |
string | ✅ | Full URL of the target API |
method |
string | ❌ | HTTP method, defaults to GET |
body |
string | ❌ | Request body, JSON string |
headers |
string | ❌ | Custom headers, JSON string |
If rate-limited, returns a RATE_LIMIT_EXCEEDED error with retryAfterSeconds suggesting how long to wait.
get_rate_limit_status
Query current rate-limit usage. Returns used/remaining calls and tokens.
set_rate_limit
Dynamically adjust rate-limit parameters (takes effect immediately, no restart needed).
| Parameter | Type | Description |
|---|---|---|
callsPerMinute |
number | Max calls per minute (RPM) |
tokensPerMinute |
number | Max tokens per minute (TPM) |
Installation
npm install dsh-throttle
Add to your DSH config:
{
"plugins": {
"dsh-throttle": {
"maxCalls": 30,
"maxTokens": 750000
}
}
}
Load the plugin:
dsh plugin load dsh-throttle
Relationship with 429-throttle-mcp
429-throttle-mcp |
dsh-throttle |
|
|---|---|---|
| Type | MCP Server | DSH Plugin |
| Protocol | MCP stdio JSON-RPC | DSH Plugin API |
| Install | npm i 429-throttle-mcp |
npm i dsh-throttle |
| Core code | rate-limiter.js (shared) |
rate-limiter.js (shared) |
| GitHub | main repo | same repo |
SEO Keywords
429 error, anti 429, DSH rate limit, DeepSeek Harness plugin, LLM per-minute call limit, free LLM rate limiting, agent batch calls triggering 429, RPM, TPM, rate limiter, quota guard, MCP proxy, throttle, LLM API quota, cop, HTTP 429, Too Many Requests, rate limiting, token bucket, sliding window
License
MIT
Links
More in this category
Tencent/WeKnora#dsh-weknora★ 33572
Four read-only tools over a WeKnora knowledge base: list knowledge bases, hybrid passage search, reassemble one document's chunks in order, and WeKnora's own cited RAG or ReAct-agent answer with a resumable session id.
superdesigndev/treg★ 5130
Tool catalog for agents: search ~2,600 external endpoints (SEO and SERP, backlinks, social, people and company enrichment, ad libraries, scraping) by the task you want done, read each one's parameters and per-call price, then call it with the credential injected server-side. Ships the skill plus an MCP row that stays disabled until TREG_TOKEN is set.
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1136
Tencent CloudBase backend for DeepSeek Harness — scaffold and deploy full-stack apps from chat, render query results as table cards with paging, sorting and CSV export, preview a deployment on its domain, and call the CloudBase MCP toolset (`mcp__cloudbase__*`) with device-code login.
gitroomhq/postiz-agent#dsh-postiz★ 514
Connects DeepSeek Harness to Postiz over MCP: list connected social media channels, fetch per-platform posting rules, and schedule, draft, or publish posts to X, LinkedIn, Instagram, Facebook, Threads, TikTok, YouTube, Reddit, Bluesky, Mastodon, Discord, Slack, Telegram and more; adds a postiz workflow skill.
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 508
Local IMAP invoice download, OCR, archive, and Excel reimbursement summaries for DeepSeek Harness.
anysearch-team/anysearch-dsh★ 459
AnySearch-powered real-time web and vertical search provider for DeepSeek Harness.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.