Your client and your servers may speak different MCP versions.
Rayrun translates between them. Your endpoint URL stays the same.
MCP revisions are not always backward compatible. The 2026-07-28 revision replaced the handshake and removed sessions. It does not work with older clients or servers in either direction.
today
same era → ok
different era → fails
through ray.run
every combination → ok
The spec’s own compatibility table, and the same table with ray.run in the middle. The two combinations that fail are the ones where the client and the server are from different eras.
You cannot fix either end.
You cannot patch a client you do not ship. You cannot patch a server you do not run.
Updating your own dependencies does not settle it either. Different SDKs ship different protocol defaults.
One endpoint, two independent sides.
Rayrun answers each client in the version that client uses. It talks to each server in the version that server supports.
Check any gateway the same way:
Connect a client from each protocol era.
Compare the tool counts each client sees.
A partial catalogue reported as complete is a failure.