Commit graph python-sdk/mcp_python
Author SHA1 Message Date
David Soria Parra
935fe5d1a0
Make call_tool() return value covariant
`list` is invariant, hence handlers can't just return `list[str]`.
We need to use Sequence here.
2024-11-10 21:47:26 +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
405fb3e18c
CallToolResult.isError should be optional 2024-11-07 13:38:01 +00:00
Justin Spahr-Summers
5587c0276c
Merge pull request #28 from modelcontextprotocol/justin/spec-updates
Update to spec version 2024-11-05
2024-11-07 11:45:36 +00:00
Justin Spahr-Summers
c7d8f11e0c
Formatting 2024-11-06 12:35:32 +00:00
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
Justin Spahr-Summers
1634343931
Update types for spec changes 2024-11-06 12:24:46 +00:00
Justin Spahr-Summers
df901f698d
Manually fix ruff issue 2024-11-06 11:08:22 +00:00
Justin Spahr-Summers
5508697b13
Inherit environment variables deemed safe by default 2024-11-06 11:05:20 +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
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
Justin Spahr-Summers
2d55eabb2f
Update types for protocol version 2024-10-07 2024-10-21 14:47: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
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
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
Kenneth Lien
4f0abd197c
Add header support for sse_client 2024-09-30 12:46:18 -07:00
David Soria Parra
4cbf815430
Initial import 2024-09-24 22:04:19 +01:00