Tool-level rate limiting per role
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- redis, typescript
调研方向
Start in packages/backend/src/mcp-server/mcp-endpoint.controller.ts, where planToolSet builds the handler each tool is registered with, and find the existing role tool whitelist model to see where a per-role, per-tool limit would be stored. The issue leaves the storage shape and the Redis versus in-process counting design open, so agree that with maintainers first. Done means an over-limit call returns a readable MCP error with the limit and retry time, and the in-process path documents that it is not shared across replicas.
由索引模型根据 Issue 内容生成。
描述
An MCP role can already be restricted to a set of tools. It cannot yet be restricted in how often it calls them, which matters most for the two cases where a runaway agent is expensive: metered upstream APIs, and database connectors.
Scope
- Per-role, per-tool limit (calls per minute / per hour), stored alongside the existing role tool whitelist.
- Enforced in the MCP tool handler, before the upstream call.
- Over-limit returns a proper MCP error the agent can read ("rate limit for this tool: N/min, retry in Xs"), not a generic failure.
- Counted in Redis when
REDIS_URLis set, in-process otherwise, and the in-process path must be honest about not being shared across replicas.
Where to look
packages/backend/src/mcp-server/mcp-endpoint.controller.ts—planToolSetbuilds the handler each tool is registered with.- The role/tool-whitelist model for where the limit belongs.
- 主要语言
- TypeScript
- 星标
- 856
- 派生
- 82
- 平均合并
- 5 小时 45 分钟
- 30 天内合并 PR
- 158
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
HelpCode-ai/anythingmcp 的其他 Issue
-
Docs: document all SMTP_* and other undocumented env vars for self-hosting可能已有人在做 @notlakshitha 于 5 天前认领。 未关闭enhancement
难度 2/5 1-3 小时 新手友好度 82/100
HelpCode-ai/anythingmcp#1049 · 3 条评论 ·
维护者通常 1 天内回复
-
good first issue hacktoberfest
难度 2/5 半天 新手友好度 70/100
HelpCode-ai/anythingmcp#996 ·
维护者通常 1 天内回复
-
good first issue hacktoberfest
难度 2/5 半天 新手友好度 72/100
HelpCode-ai/anythingmcp#995 ·
维护者通常 1 天内回复
-
enhancement good first issue hacktoberfest help wanted
难度 2/5 1-3 小时 新手友好度 78/100
HelpCode-ai/anythingmcp#982 ·
维护者通常 1 天内回复
-
Upload the new social preview可能已有人在做 @helpcodeai 于 5 天前认领。 未关闭
HelpCode-ai/anythingmcp#1087 · 6 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
查看 HelpCode-ai/anythingmcp 的全部 Issue
相似的 Issue
-
Unsampled pageload span is profiled when profileLifecycle is 'trace' (browser UI profiling)可能已有人在做 @Jxxunnn 今天认领。 未关闭Browser Waiting for: Product Owner
难度 2/5 1-3 小时 新手友好度 82/100
getsentry/sentry-javascript#25497 · 1 条评论 ·
维护者通常 1 天内回复
-
e2e-failure ready-to-code
难度 2/5 1-3 小时 新手友好度 77/100
redhat-developer/rhdh-plugin-export-overlays#4438 · 1 条评论 ·
维护者通常 1 天内回复
-
resource: destroying a resource calls AbortController.abort() without a reason, creating an AbortError with a stack trace each time可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭area: core
难度 2/5 1-3 小时 新手友好度 75/100
angular/angular#71422 · 1 条评论 ·
维护者通常 1 天内回复
-
bug status: needs triage
难度 2/5 1-3 小时 新手友好度 72/100
facebook/docusaurus#12739 · 1 条评论 ·
维护者通常 1 天内回复
-
factory-active task-identify-harness-labels-done task-identify-issue-type-done
难度 1/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复