Yes, this can be done by adding your tool as a special tool for harvesting the crop, or what ever you're harvesting.
Have a look at the vanilla file blocktypes/plant/tallgrass.json to see how this is done in vanilla:
dropsByType: {
"tallgrass-eaten-*": [],
"*": [
{ type: "item", code: "drygrass", quantity: { avg: 1 }, tool: "knife" },
{ type: "item", code: "drygrass", quantity: { avg: 1 }, tool: "scythe" }
],
},
Here, the knife and scythe are both defined as valid tools that can be used for harvesting grass. This is why you don't get any grass drop by just punching the grass, but have to use a tool.
This means you'll need to patch every type of crop that you wish to adjust the drop when using your tool.
Note that the tool property, is not the actual key for the item, but a hardcoded list of tool types defined in the API here: EnumTools.cs
So, to get your tool to work, you need to assign it to one of these. Take a look at any of the files in "itemtypes/tool/" to see how it's used.