Add in-memory transport (#25)

## 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
This commit is contained in:
Nick Merrill 2024-11-05 18:42:41 -05:00 • committed by GitHub
commit 60e9c7a0d7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "mcp-python"
version = "0.4.0.dev"
version = "0.5.0dev"
description = "Model Context Protocol implementation for Python"
readme = "README.md"
requires-python = ">=3.10"