As long as you are not doing any filtering of predictors, you should be able to pass the vector as an engine argument:
library(parsnip)
boost_tree() %>%
set_mode("regression") %>%
set_engine("xgboost", monotone_constraints = c(1,-1,1,-1,1,-1,0,0,0,-1,1)) %>%
translate()
#> Boosted Tree Model Specification (regression)
#>
#> Engine-Specific Arguments:
#> monotone_constraints = c(1, -1, 1, -1, 1, -1, 0, 0, 0, -1, 1)
#>
#> Computational engine: xgboost
#>
#> Model fit template:
#> parsnip::xgb_train(x = missing_arg(), y = missing_arg(), monotone_constraints = c(1,
#> -1, 1, -1, 1, -1, 0, 0, 0, -1, 1), nthread = 1, verbose = 0)
Created on 2022-01-03 by the reprex package (v2.0.0)