Commit Graph

13 Commits

Author SHA1 Message Date
Justin Spahr-Summers
a891ad4689 Update tool calls to use structured results 2024-11-06 12:33:50 +00:00
Justin Spahr-Summers
185a186215 Rename request_create_message for consistency 2024-11-06 12:25:09 +00:00
Justin Spahr-Summers
4ac03d40f9 Update convenience methods on ClientSession and ServerSession 2024-11-06 12:24:53 +00:00
Nick Merrill
60e9c7a0d7 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
2024-11-05 15:42:41 -08:00
David Soria Parra
fa3e145dac Pass arguments as a dictionary instead of spreading them into kwargs 2024-10-21 15:48:33 +01:00
Justin Spahr-Summers
9eb239b3fb Remove resourceTemplates from list_resources 2024-10-21 14:55:27 +01:00
Justin Spahr-Summers
eb1024c654 Update protocol version handling 2024-10-21 14:50:44 +01:00
David Soria Parra
631c58960f Add support for list_tools 2024-10-11 17:00:15 +01:00
David Soria Parra
fd68df6687 Format with ruff 2024-10-11 16:14:11 +01:00
David Soria Parra
cc342a05ad Allow passing initialization options to a session
We need a way for servers to pass initialization options to the session.
This is the beginning of this.
2024-10-11 16:06:54 +01:00
David Soria Parra
04ad96e6cd Typing fixes
Strict pyright mode results in a lot of issues regarding non fully
determined types, due to Generics. These are some issues I came across
today. We are still far from being clean on pyright.
2024-10-11 12:09:30 +01:00
Justin Spahr-Summers
4040945cdf Exclude Nones 2024-10-02 21:58:33 +01:00
David Soria Parra
4cbf815430 Initial import 2024-09-24 22:04:19 +01:00