13 Commits

Author SHA1 Message Date
David Soria Parra ec8c85edea run ruff 2024-11-11 20:42:46 +00:00
David Soria Parra f5d82bd229 Remove helper types
The helper types in mcp.server.types got really confusioning during
implementation as they overlapped with mcp.types. I now believe it
is better if we stay more low level to the spec types.

To do this, we now only use mcp.types everywhere. We renamed mcp.server.types
to mcp.server.models and removed it to the absolute minimum.
2024-11-11 20:05:51 +00:00
David Soria Parra ed87ae9f06 rename mcp_python to mcp 2024-11-11 12:40:32 +00:00
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 c7d8f11e0c Formatting 2024-11-06 12:35:32 +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 eb1024c654 Update protocol version handling 2024-10-21 14:50:44 +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
Justin Spahr-Summers 4040945cdf Exclude Nones 2024-10-02 21:58:33 +01:00
Justin Spahr-Summers fed5304b09 Remove Python 3.12 syntax 2024-10-02 21:55:53 +01:00
David Soria Parra 4cbf815430 Initial import 2024-09-24 22:04:19 +01:00