Something which I got wrong in understanding tool calls :
So tools can be used for 2 things, in listing output schema, and in making external requests to a function/service.
In case of just output schema, the call will happen in one turn, and won’t go on any further.
Let’s say you upload image of nutritional information, and want to get information about each ingredients, so just input that image, and have a tool that list ingredients in specific terms, and in addition to image, add a message, get me the nutritional information.
And the response just after making the tool call, will be the contents of the image, outputted in required format.
But let’s say in case of calculator, it will make the tool call, and then another call to actually calculate, now this extra function needs to be called from somewhere, so it’s either inside the tool function, or once the tool call has been executed, get the required parameters and complete it.
In this case, can make another tool call that append result of tool call to messages, and make another tool call to LLM in understanding what it all means.
So in case of MCP, it will mostly be external requests, and the logic of how things will be passed can be implemented here, and the infrastructure, that once call is received, append the message so LLM can parse it all together and concoct it.