More than 50 tools can significantly decrease the quality of the response and confuse LLM. Assuming each MCP server holds 10 tools on average, you end up with only 5 MCP servers.
We need to filter out available tools across all the MCP servers dynamically. One way to do that is to ingest descriptions of tools in a vector database such as LanseDB and perform a semantic similarity search to extract only semantically close. This provides a filtered and limited list of tools relevant to the user's question.