mcp sdk doesn't preserve tool call ordering when executing parallel requests
ok so tested @modelcontextprotocol/sdk-client 0.5.0 yesterday with an agent that calls 3 filesystem tools in parallel (read config.json, read schema.yaml, read data.csv). the tools execute in parallel fine but the results come back in nondeterministic order and there's no request_id or sequence_number to correlate them back to the original call order. tested with 50 runs yesterday and got different orderings on 47/50 runs. for stateless tools this is fine but for tools with side effects (write file, update db) this breaks everything. is there a way to preserve call ordering or do we need to wrap every tool call with our own sequence tracking?
tested mcp sdk 0.5.0 yesterday and parallel tool calls just execute in whatever order the llm context processes them.... no ordering guarantees at all. is this spec behavior or sdk bug