A developer builds an MCP server that wraps a legacy SOAP API. The SOAP API has 200 operations. The developer considers exposing all 200 operations as individual MCP tools vs. implementing 15 composite tools that combine related SOAP calls into semantic operations. From a Claude agent usability perspective, which approach is superior and why?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Here's the deal — mCP tool selection quality degrades as the tool count increases, because Claude must reason about which of many similar-sounding tools best matches the user's intent. SOAP APIs often have fine-grained, implementation-specific operations (e.g., CreateCustomerRecord, AddCustomerAddress, SetCustomerType, CreateCustomerIndex) that map to a single semantic operation ('create a customer').
Full explanation below image
Full Explanation
MCP tool selection quality degrades as the tool count increases, because Claude must reason about which of many similar-sounding tools best matches the user's intent. SOAP APIs often have fine-grained, implementation-specific operations (e.g., CreateCustomerRecord, AddCustomerAddress, SetCustomerType, CreateCustomerIndex) that map to a single semantic operation ('create a customer'). Composite tools that encapsulate these into create_customer(name, address, type) align with how Claude reasons about tasks — in terms of business intent, not API internals. The composite tool handles the multi-step SOAP coordination internally. Option A (all 200) creates a tool selection problem where Claude must understand SOAP implementation details to choose correctly among nearly identical-sounding operations. Option C (200 with prefixes) reduces confusion through naming conventions but doesn't reduce cognitive load from 200 tool options. Option D (runtime restriction to 10) approximates composite tools through dynamic injection but adds orchestration complexity without the semantic clarity benefit.