跳到主要内容

限流与预算

MCP 工具调用与模型请求共用同一个调用方 API Key 边界。你在调用方 API Key 上配置的限流和预算,也会作用于该 Key 发起的 tools/call 请求,不需要为 MCP 单独配置一套规则。本页说明哪些控制项会生效、AISIX 如何在 MCP 路径上执行这些控制,以及如何验证行为。

完整的限流字段和计数器存储选项请参见限流。托管部署中的预算配置请参见预算

网关会治理哪些请求

网关只会对 tools/call 请求执行限流和预算检查。MCP 握手(initialize)和工具发现(tools/list)不会被限流,因此即使调用方已触发限流,也仍然可以连接并列出其 Key 允许访问的工具,只是要等窗口重置后才能继续调用工具。

当某个 tools/call 因限流或预算被拒绝时,网关会在联系上游 MCP Server 之前返回错误,并且仍会把这次被拒绝的调用记录为用量事件

哪些限流会生效

调用方 API Key 的 rate_limit 对象可以包含请求速率、Token 速率和并发限制。在 MCP 路径上:

限制是否作用于 MCP 工具调用说明
rpsrpmrphrpd每个 tools/call 会在对应窗口中计为一次请求。
concurrency每个进行中的工具调用会占用一个并发许可,直到调用返回。
tpmtpd不消耗Token 速率窗口统计模型 Token。MCP 工具调用没有 Token 成本,因此不会消耗 Token 窗口;但如果该 Key 的模型流量已经耗尽 Token 窗口,同一个 Key 的 MCP 工具调用仍会被阻断。

因此,如果要直接限制 MCP 调用量,应使用请求速率限制(rpsrpmrphrpd)或 concurrency。只配置 Token 限制并不能限制 MCP 工具调用数量;不过,当同一调用方 Key 的模型流量已经把 Token 窗口耗尽时,该 Key 的 MCP 工具调用会在窗口重置前收到 HTTP 429

配置工具调用限流

在调用方 API Key 上配置限流即可。更新操作会替换整个资源,因此请同时带上现有 Key 哈希、模型访问权限和工具访问权限。下面示例将某个调用方限制为每分钟 1 次 MCP 工具调用:

export AISIX_ADMIN_KEY="YOUR_ADMIN_KEY"

curl -sS -X PUT "http://127.0.0.1:3001/admin/v1/apikeys/YOUR_API_KEY_ID" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
-d '{
"key_hash": "'"${AISIX_API_KEY_HASH}"'",
"allowed_models": [],
"allowed_tools": ["github__*"],
"rate_limit": {
"rpm": 1
}
}'

验证

使用该调用方 API Key 连接 MCP 客户端,并在同一分钟内调用两次允许访问的工具。

预期结果: 客户端可以正常连接并列出允许访问的工具。第一次 tools/call 成功;同一分钟内的第二次 tools/call 会在 AISIX 联系上游 MCP Server 之前被 HTTP 429 拒绝。即使调用方被限流,握手和 tools/list 仍然可用。

在托管部署中应用预算

预算由 AISIX Cloud 托管部署执行。当覆盖某个调用方 API Key 的预算已耗尽时,网关会在联系上游 MCP Server 之前,以 budget_exceeded 错误拒绝该 Key 的 tools/call 请求。这个检查与模型路径使用相同的预算机制。

MCP 工具调用没有 Token 成本,因此本身不会增加基于 Token 的花费。但如果该调用方的模型流量已经耗尽预算,同一个调用方 API Key 的 MCP 工具调用也会被阻断,因为二者共用同一个 Key 和预算边界。预算目标、拒绝响应和缓存行为请参见预算

自托管部署

预算执行依赖 AISIX Cloud 控制面。自托管网关中,请使用调用方 API Key 的限流来治理 MCP 工具调用量。

在 AISIX Cloud 中管理限流和预算

在 AISIX Cloud 中,这些控制项通过 Dashboard 的调用方 API Key 表单配置,而不是通过 Admin API:

  1. 打开暴露 MCP Server 的环境,进入 API keys
  2. 创建或编辑 MCP 客户端使用的调用方 API Key。在该 Key 的创建或编辑表单中配置工具访问权限,并在 Key 卡片上的相关区域设置限流和预算。
  3. Rate limits 区域设置每秒、每分钟、每小时或每天的请求限制,以及并发限制。这些限制同时作用于该 Key 的 MCP 工具调用和模型请求。Token 限制统计模型 Token,MCP 工具调用不会增加 Token 计数。
  4. 在同一个 Key 上添加预算,或在 Budgets 页面配置组织级、环境级预算。一旦该 Key 的预算耗尽,网关也会阻断其 MCP 工具调用。

工具访问权限、限流和预算都挂在同一个调用方 API Key 上,因此可以在一个位置完成该 Key 的 MCP 治理配置。更多信息请参见 AISIX Cloud

下一步

  • 安全护栏:检查 MCP 工具参数和工具结果。
  • 可观测性:查看工具调用产生的用量事件和指标,包括被拒绝的调用。
  • 限流:查看完整的限流字段和计数器存储选项。
  • 预算:在托管部署中配置预算。