Commit Graph

122 Commits

Author SHA1 Message Date
gaojingyu
1bdeed33c2 fix: Update @mcp.resource to use function documentation as default descrip… (#489) 2025-05-15 11:14:50 +01:00
ihrpr
13f018264c Set 2025-03-26 as the latest protocol version (#719) 2025-05-15 09:29:54 +01:00
Jerome
a00b20a427 feat: add cursor pagination support to all client list methods (#718) 2025-05-15 09:04:04 +01:00
Daniel Avdar
b8f7b027c3 Update CI configuration to support multiple OS environments (#708)
Signed-off-by: DanielAvdar <66269169+DanielAvdar@users.noreply.github.com>
2025-05-14 13:43:59 +01:00
Akshey D
9e66f7ce89 feat: add message to ProgressNotification (#435)
Co-authored-by: ihrpr <inna.hrpr@gmail.com>
2025-05-13 18:40:15 +01:00
Lion Yang
c5782129bc Fix hanging on streams when stdio_client exiting (#559) 2025-05-13 18:36:33 +01:00
Mo
7b6a903eb9 Create ClientSessionGroup for managing multiple session connections. (#639) 2025-05-13 09:58:24 +01:00
Jeremiah Lowin
1cb740745d Properly infer prefix for SSE messages (#659) 2025-05-12 21:29:17 +01:00
Nate Barbettini
f745d69dcb fix: 204 is an acceptable response to DELETEing the session (#697) 2025-05-12 21:22:55 +01:00
ihrpr
c6fb822c86 Fix streamable http sampling (#693) 2025-05-12 18:31:35 +01:00
ihrpr
ed25167fa5 Introduce a function to create a standard AsyncClient with options (#655) 2025-05-08 20:53:21 +01:00
ihrpr
e4e119b324 Streamable HTTP - improve usability, fast mcp and auth (#641) 2025-05-08 20:43:25 +01:00
inceptmyth
280bab36f4 Fix: Use absolute path to uv executable in Claude Desktop config (#440) 2025-05-08 15:57:41 +01:00
yabea
a1307abded Fix the issue of get Authorization header fails during bearer auth (#637)
Co-authored-by: yangben <yangben@zhihu.com>
2025-05-07 17:42:02 +01:00
ihrpr
9d99aee014 Revert "Add message queue for SSE messages POST endpoint (#459)" (#649) 2025-05-07 16:35:20 +01:00
tim-watcha
e0d443c95e Add mount_path support for proper SSE endpoint routing with multiple FastMCP servers (#540)
Co-authored-by: ihrpr <inna.hrpr@gmail.com>
2025-05-07 11:14:25 +01:00
Akash D
3b1b213a96 Add message queue for SSE messages POST endpoint (#459) 2025-05-06 17:10:43 -07:00
ihrpr
58c5e7223c SSE FastMCP - do not go though auth when it's not needed (#619) 2025-05-02 17:56:02 +01:00
Akash D
83968b5b2f Handle SSE Disconnects Properly (#612) 2025-05-02 09:32:46 -07:00
ihrpr
5d8eaf77be Streamable Http - clean up server memory streams (#604) 2025-05-02 14:59:17 +01:00
ihrpr
74f5fcfa0d StreamableHttp - client refactoring and resumability support (#595) 2025-05-02 14:49:50 +01:00
ihrpr
cf8b66b82f use metadata from SessionMessage to propagate related_request_id (#591) 2025-05-02 14:35:17 +01:00
ihrpr
da0cf22355 Wrap JSONRPC messages with SessionMessage for metadata support (#590) 2025-05-02 14:29:00 +01:00
ihrpr
3978c6e1b9 StreamableHttp -- resumability support for servers (#587) 2025-05-02 14:10:40 +01:00
ihrpr
9dfc925090 StreamableHttp client transport (#573) 2025-05-02 13:59:02 +01:00
ihrpr
46523afe30 StreamableHttp - GET request standalone SSE (#561) 2025-05-02 13:52:27 +01:00
ihrpr
78f0b11a09 StreamableHttp - Server transport with state management (#553) 2025-05-02 11:58:54 +01:00
Peter Raboud
2210c1be18 Add support for serverside oauth (#255)
Co-authored-by: David Soria Parra <davidsp@anthropic.com>
Co-authored-by: Basil Hosmer <basil@anthropic.com>
Co-authored-by: ihrpr <inna@anthropic.com>
2025-05-01 19:42:59 +01:00
bhosmer-ant
82bd8bc1d9 Properly clean up response streams in BaseSession (#515) 2025-05-01 14:45:47 +01:00
bhosmer-ant
1a330ac672 Add ToolAnnotations support in FastMCP and lowlevel servers (#482) 2025-04-30 14:52:56 +01:00
Samuel Colvin
697b6e8e05 replace inefficient use of to_jsonable_python (#545) 2025-04-26 20:41:19 +02:00
ihrpr
b4c7db6a50 Format files with ruff (#562) 2025-04-23 05:06:51 +01:00
Christian Clauss
babb477dff Python lint: Ruff rules for comprehensions and performance (#512) 2025-04-15 16:58:33 +02:00
Jerome
c4beb3e8ef Support custom client info throughout client APIs (#474)
Co-authored-by: Claude <noreply@anthropic.com>
2025-04-10 14:52:01 +01:00
Junpei Kawamoto
da54ea003e Allow generic parameters to be passed onto Context on FastMCP tools
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2025-04-10 10:36:46 +01:00
Pol Avec
4e3c196941 Fixes incorrect casting into int for numbers in string format (#384) 2025-03-27 15:14:01 +00:00
evalstate
6d66ab8be0 Fix/base64 handling (Issue #342) (#343)
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
2025-03-27 09:18:02 +00:00
David Soria Parra
9a2bb6a7e7 refactor: Make types.py strictly typechecked. (#336) 2025-03-26 14:21:35 +00:00
David Soria Parra
df2d3a57c2 Fix #355: Fix type error with lifespan context (#368)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2025-03-26 14:18:41 +00:00
David Soria Parra
568cbd1a66 Fix #201: Move incoming message stream from BaseSession to ServerSession (#325)
Co-authored-by: Claude <noreply@anthropic.com>
2025-03-24 14:14:14 +00:00
Marcelo Trylesinski
ae77772ea8 Add strict mode to pyright (#315)
* Add strict mode to pyright

* Apply UP rule

* fix readme

* More correct

* Leave wrong Context for now

* Add strict mode to pyright

* Apply UP rule

* fix readme

* fix

* ignore
2025-03-20 09:13:08 +00:00
ihrpr
08f4e01b8f add callback for logging message notification (#314) 2025-03-19 09:40:08 +00:00
Samuel Colvin
3775916c5c lint docs examples (#286)
* lint docs examples

* format
2025-03-14 11:30:57 +00:00
Marcelo Trylesinski
7196604468 Revert "refactor: reorganize message handling for better type safety and clar…" (#282)
This reverts commit 9d0f2daddb.
2025-03-14 09:50:46 +00:00
David Soria Parra
9d0f2daddb refactor: reorganize message handling for better type safety and clarity (#239)
* refactor: improve typing with memory stream type aliases

Move memory stream type definitions to models.py and use them throughout
the codebase for better type safety and maintainability.

GitHub-Issue:#201

* refactor: move streams to ParsedMessage

* refactor: update test files to use ParsedMessage

Updates test files to work with the ParsedMessage stream type aliases
and fixes a line length issue in test_201_client_hangs_on_logging.py.

Github-Issue:#201

* refactor: rename ParsedMessage to MessageFrame for clarity

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: move MessageFrame class to types.py for better code organization

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>

* fix pyright

* refactor: update websocket client to use MessageFrame

Modified the websocket client to work with the new MessageFrame type,
preserving raw message text and properly extracting the root JSON-RPC
message when sending.

Github-Issue:#204

* fix: use NoneType instead of None for type parameters in MessageFrame

🤖 Generated with [Claude Code](https://claude.ai/code)

* refactor: rename root to message
2025-03-13 13:44:55 +00:00
Marcelo Trylesinski
94d326dbf1 Close unclosed resources in the whole project (#267)
* Close resources

* Close all resources

* Update pyproject.toml

* Close all resources

* Close all resources

* try now...

* try to ignore this

* try again

* try adding one more..

* try now

* try now

* revert ci changes
2025-03-13 10:59:45 +00:00
Henry Mao
fb7d0c8dac Pyright 2025-03-12 13:56:05 -07:00
Henry Mao
ba184a2667 Ruff 2025-03-12 13:51:35 -07:00
Henry Mao
fd826cc7a6 Fix Websocket Client and Add Test 2025-03-07 22:00:56 +08:00
David Soria Parra
b1942b31c4 Fix #177: Returning multiple tool results (#222)
* feat: allow lowlevel servers to return a list of resources

The resource/read message in MCP allows of multiple resources
to be returned. However, in the SDK we do not allow this. This
change is such that we allow returning multiple resource in
the lowlevel API if needed. However in FastMCP we stick to
one, since a FastMCP resource defines the mime_type in the decorator
and hence a resource cannot dynamically return different mime_typed resources.
It also is just the better default to only return one resource.
However in the lowlevel API we will allow this.

Strictly speaking this is not a BC break since the new return value
is additive, but if people subclassed server, it will break them.

* feat: lower the type requriements for call_tool to Iterable
2025-02-20 21:31:26 +00:00