## Goal
Support running an MCP server in the same process as the client, while preserving MCP abstractions.
## Details
1. **(core change)** Adds a new `memory` transport module that enables in-process client-server communication.
This includes:
- `create_client_server_memory_streams()` to create bidirectional memory streams
- `create_connected_server_and_client_session()` to establish an in-process client-server connection
3. (minor) Enhances error handling and timeout support:
- Adds configurable read timeouts to sessions via `read_timeout_seconds` parameter
- Improves exception handling in the server with a new `raise_exceptions` flag to control whether errors are returned to clients or raised directly
- Ensures proper cleanup of request context tokens in error cases
4. (minor) Makes server improvements:
- Adds built-in ping handler support
We currently have 21 non strict typing issues and 112 strict typing
issues. Most of the strict ones come from generic handling.
This is the initial step to tackle the non strict errors by
ignoring strict errors and adding github actions to check for type
errors. Once this is place we move back to using strict types.