Files
1Panel/core/utils/mcp/ingress.go
蘭 d7355f3ccc feat(mcp): add 1Panel MCP and enhance MCP credential management (#14189)
* feat(mcp): add 1Panel MCP and enhance MCP credential management

* feat(i18n): implement MCP document localization and remove legacy code
2026-10-26 13:59:49 +08:00

32 lines
568 B
Go

package mcp
import (
"sync"
"time"
)
var ingress struct {
sync.Mutex
start int64
requests int
}
func AdmitIngress(now time.Time) error {
ingress.Lock()
defer ingress.Unlock()
if now.Unix() >= ingress.start+60 {
ingress.start = now.Unix()
ingress.requests = 0
}
if ingress.requests >= 1200 {
err := Fail("MCP_RATE_LIMITED", 429, "MCP entrance request limit exceeded")
err.RetryAfterSeconds = int(ingress.start + 60 - now.Unix())
if err.RetryAfterSeconds < 1 {
err.RetryAfterSeconds = 1
}
return err
}
ingress.requests++
return nil
}