Commit Graph

46 Commits

Author SHA1 Message Date
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
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
1a60e1b7c7 Merge pull request #23 from modelcontextprotocol/davidsp/upgrade
Upgrade packages and bump version
2024-10-21 16:14:59 +01:00
David Soria Parra
cf1dfb751e Upgrade packages 2024-10-21 16:12:42 +01:00
David Soria Parra
1e8cf6ba58 bump version 2024-10-21 16:12:42 +01:00
David Soria Parra
423f89561c Merge pull request #22 from modelcontextprotocol/davidsp/release
A short overview of how to do a release
2024-10-21 15:57:17 +01:00
David Soria Parra
6a4bbee5ab Merge pull request #21 from modelcontextprotocol/davidsp/call-tool
Pass arguments as a dictionary instead of spreading them into kwargs
2024-10-21 15:54:44 +01:00
David Soria Parra
a1818e4c5f A short overview of how to do a release 2024-10-21 15:54:17 +01: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
6cdd97bf1b Merge pull request #19 from modelcontextprotocol/justin/upgrade-spec
Upgrade to protocol version 2024-10-07
2024-10-21 15:33:30 +01:00
David Soria Parra
59199d7312 Merge pull request #20 from modelcontextprotocol/davidsp/bump-version
bump version
2024-10-21 15:31:00 +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
14c2ce16fe bump version 2024-10-14 17:48:55 +01:00
David Soria Parra
5c70e16475 Merge pull request #18 from modelcontextprotocol/davidsp/list_tools
Add support for tools/list
2024-10-14 13:19:11 +01:00
David Soria Parra
db5ca59415 Merge pull request #17 from modelcontextprotocol/davidsp/workflows
Github workflows for ruff and pyright
2024-10-14 13:18:10 +01:00
David Soria Parra
631c58960f Add support for list_tools 2024-10-11 17:00:15 +01:00
David Soria Parra
211b5f069a github: add workflows to check formatting and typecheck 2024-10-11 16:17:04 +01:00
David Soria Parra
fd68df6687 Format with ruff 2024-10-11 16:14:11 +01:00
David Soria Parra
9475815241 Merge pull request #16 from modelcontextprotocol/davidsp/init-options
Introduce Initialization options that are passed to ServerSession
2024-10-11 16:10:31 +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
047b5d82ed Merge pull request #15 from modelcontextprotocol/davidsp/type-fixes
Type Fixes
2024-10-11 14:06:10 +01:00
David Soria Parra
0ccff909fc Merge pull request #13 from modelcontextprotocol/davidsp/pyproject
Improve our pyproject configuration
2024-10-11 14:06:00 +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
David Soria Parra
34937b72f2 pyproject: Remove strict typing for now
We currently have 21 non strict typing issues and 112 strict typing
issues. Most of the strict ones come from generic handling.

This is the initial step to tackle the non strict errors by
ignoring strict errors and adding github actions to check for type
errors. Once this is place we move back to using strict types.
2024-10-11 12:09:30 +01:00
David Soria Parra
a05e66b4ab pyproject: Update ruff config to new layout 2024-10-11 12:09:29 +01:00
David Soria Parra
8299cd0055 python-version: Pin our python version
Tools like rye and uv use .python version to correctly lock the
venv to a certain python version. We are pinning ours to 3.11.
2024-10-11 12:09:17 +01:00
David Soria Parra
b95794b5a5 pyproject: Add venv to pyproject
pyright and Zed use the venv setting in pyright to correctly determine
the virtual env to use.
2024-10-11 10:53:51 +01:00
David Soria Parra
9f5dffa159 Merge pull request #11 from modelcontextprotocol/davidsp/bump
bump version for next release
2024-10-11 09:54:12 +01:00
David Soria Parra
c610b6d76d bump version for next release 2024-10-11 01:20:46 +01:00
Justin Spahr-Summers
8f4359e4d2 Bump version 2024-10-03 10:48:01 +00:00
Justin Spahr-Summers
33b5a12629 Merge pull request #8 from modelcontextprotocol/justin/omit-nulls
Exclude `None`s when serializing models
2024-10-03 11:04:42 +01:00
Justin Spahr-Summers
ee4a4ada2e Merge pull request #7 from modelcontextprotocol/justin/ci
Configure CI
2024-10-03 11:04:29 +01:00
Justin Spahr-Summers
4040945cdf Exclude Nones 2024-10-02 21:58:33 +01:00
Justin Spahr-Summers
7b55252c87 Install trio on CI 2024-10-02 21:57:04 +01:00
Justin Spahr-Summers
fed5304b09 Remove Python 3.12 syntax 2024-10-02 21:55:53 +01:00
Justin Spahr-Summers
a684ef1ccc Require Python 3.10 2024-10-02 21:54:55 +01:00
Justin Spahr-Summers
2f5574917a Install pytest on CI 2024-10-02 21:52:43 +01:00
Justin Spahr-Summers
7f6c664d64 Configure CI 2024-10-02 21:50:54 +01:00
Kenneth Lien
f9baa82a1e Merge pull request #6 from modelcontextprotocol/ken/headers
Add header support for sse_client
2024-09-30 14:36:10 -07: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