The presence of excess nutrients in water resources can be harmful to human health and aquatic ecosystems. To develop an affordable water treatment method, the agricultural waste material coconut husk was converted into a low-cost adsorbent by thermal conversion to biochar, pelletized without (CH), and with chitosan (CHC), or eggshell powder (CHEG) modifications. The physical and chemical properties of all adsorbents were characterized using Brunauer-Emmett-Teller (BET) surface analysis, Fourier transform infrared spectroscopy, scanning electron microscopy, pHzpc, iodine number and elemental analysis. The adsorption of ammonium (NH4+), nitrate (NO3−), and phosphate (PO43−) in single and mixed solute solutions was investigated for initial concentrations of 10 mg L− 1. Langmuir, Freundlich, Sips, Dubinin-Radushkevich (D-R) and BET isotherm models were used to investigate the adsorption mechanisms. The maximum adsorption capacity of NH4+ on CH, CHC, and CHEG from mixed solute solution was 5.0, 4.7 and 5.9 mg g− 1, respectively, while the adsorption capacity of mixed:single solute solution was 0.95, 0.93, and 1.04, respectively. CH, CHC, and CHEG had greater ability to remove the cation NH4+ than anions NO3− and PO43− from aqueous solution. The highest maximum adsorption capacity for anions NO3− and PO43− was found on CHEG (1.7 mg g− 1) and CH (6.7 mg g− 1), respectively. NH4+ and NO3− were bound by chemisorption as indicated by D-R isotherm E values (> 8 kJ mol− 1), and enthalpy ∆H values (> 80 kJ mol− 1). In contrast, PO43− adsorption was mainly by physical interaction, including pore-filling, and electrostatic attraction. Pseudo first order and pseudo second order models provided good fits of the sorption kinetics data (R2 > 0.9). The initial concentrations of NH4+, NO3−, and PO43− in surface water sampled from a canal in Bangkok were 10.4, 1.2, and 3.9 mg L− 1, respectively, which indicated eutrophication. At a dose of 20 g L− 1, CHC achieved the best nutrient removal from this surface water, by 24% for NH4+, 25% for NO3−, and 66% for PO43− after 48 h contact, respectively.