see modelcontextprotocol/python-sdk#1600
Type mismatch for progressToken. The Python client sends progressToken as a number (e.g. 2), but spring-ai converts/returns it as a string ("2"). The mcp-python SDK maps progress callbacks using numeric keys, so when the server returns a string token the SDK fails to find the registered callback and progress_callback is never invoked.