AWS Developer Advocate James Ward: MCP Servers Should Be the Third Voice in Conversations, Driving Tool Iteration with Guidance and Session Tracing
James Ward of AWS believes that when MCP servers return data, they should carry next-step guidance and stitch together complete call paths via session IDs, enabling teams to observe agent behavior, identify tool defects, and validate improvements through evaluations.
At the AGNTCon + MCPCon conference, James Ward, a senior developer advocate at AWS, put forward a core argument regarding MCP server design: the protocol's best use is not for servers to act as databases, but to serve as a third voice in the conversation. He envisions a scenario where, when you have multiple MCP servers, they each play the role of a fourth or fifth participant in the dialogue, rather than merely being queried data sources.
The specific mechanism Ward proposes is this: tool responses should not only return data but also carry guidance—telling the agent what it just did, what it might want to do next, and where to find more information. This means MCP servers transform from passive query interfaces into active participants; their output itself becomes the input for the agent's next step in reasoning.
Observability is the other half of this proposition. Ward points out that while web developers can trace a single page click all the way down to the database, MCP has no default trace ID mechanism. AWS's solution is quite straightforward: add a session ID parameter to tools and require agents to pass it with every call, thereby stitching scattered calls into a complete path. A second parameter can carry the user's original prompt or a summary of their goal. Teams can then compare what the user wanted with the path the agent actually took, build evaluations around this path, adjust tool descriptions or parameters, and measure whether task completion rates improve.
A concrete example illustrates the value of this approach. In a profile piece published by the Agentic AI Foundation, Ward described a scenario where an agent fetched customer records one by one because the server only provided a single-record query tool. It was by observing the complete call path that the team spotted this pattern and subsequently built a batch tool to fix it. Without end-to-end visibility, such inefficient calls could remain hidden beneath the surface of seemingly normal operations for a long time.