python-sdk icon indicating copy to clipboard operation
python-sdk copied to clipboard

normalize string ID to int in server messages for compatibility

Open wangxm345566462 opened this issue 8 months ago • 0 comments

Some non-standard SSE servers may return numeric IDs as strings, even when the original request used an integer. This change ensures that message.root.id is always an integer to maintain consistency and avoid type issues in downstream processing.

Normalize message.root.id to integer if it is a numeric string returned by non-standard SSE servers.

Motivation and Context

Some SSE servers return numeric IDs as strings, causing mismatches between request and response IDs. This leads to callbacks not being triggered and the client waiting indefinitely. The change improves compatibility and stability by normalizing the ID type.

How Has This Been Tested?

Tested with mock SSE server responses containing string IDs; verified that messages with string numeric IDs are correctly converted to int and processed without errors.

Breaking Changes

No breaking changes. This is a backward-compatible bug fix.

Types of changes

  • [x] Bug fix (non-breaking change which fixes an issue)
  • [ ] New feature (non-breaking change which adds functionality)
  • [ ] Breaking change (fix or feature that would cause existing functionality to change)
  • [ ] Documentation update

Checklist

  • [x] I have read the MCP Documentation
  • [x] My code follows the repository's style guidelines
  • [x] New and existing tests pass locally
  • [x] I have added appropriate error handling
  • [ ] I have added or updated documentation as needed

Additional context

This fix addresses compatibility issues with SSE servers that do not strictly follow numeric ID typing conventions. It ensures the client logic for callback matching remains reliable.

wangxm345566462 avatar May 30 '25 08:05 wangxm345566462