package mcp import ( "context" "github.com/google/uuid" "github.com/yan1h/agent-coding-workflow/internal/infra/errs" ) func CheckToolFromCtx(ctx context.Context, toolName string) error { sess, ok := FromContext(ctx) if !ok { return errs.New(errs.CodeInternal, "mcp: AuthSession missing") } if !sess.Scope.AllowsTool(toolName) { return errs.New(errs.CodeMcpTokenScopeViolation, "tool '"+toolName+"' is not in token scope") } return nil } func CheckProjectFromCtx(ctx context.Context, projectID uuid.UUID) error { sess, ok := FromContext(ctx) if !ok { return errs.New(errs.CodeInternal, "mcp: AuthSession missing") } if !sess.Scope.AllowsProject(projectID) { return errs.New(errs.CodeMcpTokenScopeViolation, "project is not in token scope") } return nil }