Commit Graph

10 Commits

Author SHA1 Message Date
David Soria Parra
5497da0afd feat: add structured capability types
Replace generic capability dictionaries with structured types for prompts,
resources, tools, and roots. This improves type safety and makes capability
features like listChanged and subscribe more explicit in the protocol.
2024-11-07 14:49:40 +00:00
Justin Spahr-Summers
405fb3e18c CallToolResult.isError should be optional 2024-11-07 13:38:01 +00:00
Justin Spahr-Summers
c7d8f11e0c Formatting 2024-11-06 12:35:32 +00:00
Justin Spahr-Summers
1634343931 Update types for spec changes 2024-11-06 12:24:46 +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
Justin Spahr-Summers
ffff3d9450 ruff --fix 2024-10-21 14:54:47 +01:00
Justin Spahr-Summers
2d55eabb2f Update types for protocol version 2024-10-07 2024-10-21 14:47:44 +01:00
David Soria Parra
fd68df6687 Format with ruff 2024-10-11 16:14:11 +01:00
David Soria Parra
ac6064b016 Make request and notification method generic
The request and notification method were defined as str but later
overwritten in subclasses with literals. This causes a
reportIncompatibleVariableOverride issue. We need to make method
generic.
2024-10-11 12:09:30 +01:00
David Soria Parra
4cbf815430 Initial import 2024-09-24 22:04:19 +01:00