54 Commits

Author SHA1 Message Date
Lorenzo d648a31359 fix: improve misleading warning for progress callback exceptions (#775) 2025-09-30 14:39:52 +01:00
Sreenath Somarajapuram 07ae8c0d4e types: Setting default value for method: Literal (#1292) 2025-08-26 16:22:56 +01:00
David Soria Parra 0926613714 Update dependencies and fix type issues (#1268)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2025-08-14 10:40:47 +01:00
Marcelo Trylesinski c7671e470c Add pyright strict mode on the whole project (#1254) 2025-08-11 18:56:37 +01:00
joesavage-silabs ef4e167c1a Remove strict validation on response_modes_supported member of OAuthMetadata (#1243)
Main branch checks / checks (push) Failing after 1s
2025-08-07 18:39:35 +01:00
Marcelo Trylesinski 959d4e39ae Unpack settings in FastMCP (#1198)
Main branch checks / checks (push) Failing after 0s
2025-07-26 10:37:48 +02:00
Marcelo Trylesinski 7570ba30cf Make sure RequestId is not coerced as int (#1178) 2025-07-21 10:57:47 +01:00
Luca Chang 99c4f3c906 Support falling back to OIDC metadata for auth (#1061)
Main branch checks / checks (push) Failing after 1s
2025-07-17 20:06:38 +01:00
Inna Harper 813da6a579 fix flaky fix-test_streamablehttp_client_resumption test (#1166) 2025-07-17 18:35:40 +01:00
Felix Weinberger 3abefeeeaf fweinberger/align shutdown with spec (#1091)
Co-authored-by: davenpi <davenport.ianc@gmail.com>
2025-07-09 10:14:30 -04:00
AishwaryaKalloli bd84329a08 Doc update + validation in SseServerTransport + existing test fixes: addresses Issue: #827 (#900) 2025-07-09 08:19:06 +01:00
Inna Harper 679b22970e RFC 8707 Resource Indicators Implementation (#991) 2025-06-23 17:10:20 +01:00
David Dworken 86bb54cb28 Add support for DNS rebinding protections (#861) 2025-06-17 20:13:00 +01:00
David Dworken 7b420656de Fix uncaught exception in MCP server (#967) 2025-06-16 17:04:51 -07:00
Felix Weinberger df15e9566d feat: implement MCP-Protocol-Version header requirement for HTTP transport (#898) 2025-06-12 18:01:53 +01:00
Marcelo Trylesinski 543961968c Use 120 characters instead of 88 (#856) 2025-06-11 11:45:50 +02:00
xiaoming wang 2cbc435c6c normalize string ID to int in server messages for compatibility (#851)
Co-authored-by: 晓明 王 <wxm@v1i.cc>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2025-06-08 07:15:21 +00:00
ihrpr 05b7156ea8 Support for http request injection propagation in StreamableHttp (#833)
Main branch checks / checks (push) Failing after 0s
Check uv.lock / check-lock (push) Has been cancelled
2025-05-29 15:21:06 +01:00
ihrpr 70014a2bbb Support for http request injection propagation to tools (#816) 2025-05-28 15:59:14 +01:00
Marshall Roch 7901552eba send errors to pending requests if server closes (#333)
Co-authored-by: ihrpr <inna@anthropic.com>
2025-05-27 22:55:27 +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
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)
Main branch checks / checks (push) Failing after 1s
Check uv.lock / check-lock (push) Has been cancelled
2025-05-12 18:31:35 +01:00
ihrpr ed25167fa5 Introduce a function to create a standard AsyncClient with options (#655)
Main branch checks / checks (push) Failing after 0s
Check uv.lock / check-lock (push) Has been cancelled
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
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 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
David Soria Parra 9a2bb6a7e7 refactor: Make types.py strictly typechecked. (#336) 2025-03-26 14:21:35 +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
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 f10665db4c tests: cleanup 2025-02-05 11:02:51 +00:00
David Soria Parra c58adfe3f5 Merge pull request #167 from modelcontextprotocol/davidsp/88-v2
feat: add request cancellation and cleanup
2025-02-04 20:23:05 +00:00
David Soria Parra 27bfde95a4 fix: fix tests 2025-02-04 20:16:30 +00:00
David Soria Parra 827e494df4 feat: add request cancellation and in-flight request tracking
This commit adds support for request cancellation and tracking of
in-flight requests in the MCP protocol implementation. The key
architectural changes are:

1. Request Lifecycle Management:
   - Added _in_flight dictionary to BaseSession to track active requests
   - Requests are tracked from receipt until completion/cancellation
   - Added proper cleanup via on_complete callback

2. Cancellation Support:
   - Added CancelledNotification handling in _receive_loop
   - Implemented cancel() method in RequestResponder
   - Uses anyio.CancelScope for robust cancellation
   - Sends error response on cancellation

3. Request Context:
   - Added request_ctx ContextVar for request context
   - Ensures proper cleanup after request handling
   - Maintains request state throughout lifecycle

4. Error Handling:
   - Improved error propagation for cancelled requests
   - Added proper cleanup of cancelled requests
   - Maintains consistency of in-flight tracking

This change enables clients to cancel long-running requests and
servers to properly clean up resources when requests are cancelled.

Github-Issue:#88
2025-02-03 20:50:05 +00:00
David Soria Parra 2dc5fbfa3d fix: add test for #176 2025-01-28 11:19:13 +00:00
Nick Merrill d01d49ea6e add timeout test 2025-01-14 12:10:41 -05:00
Nick Merrill e798d20cbb ruff 2025-01-14 11:56:44 -05:00
Nick Merrill aa7869a62f add type hints 2025-01-14 11:54:09 -05:00
Nick Merrill 3fa26a5a97 remove unused imports 2025-01-14 11:49:04 -05:00
Nick Merrill 07e721f63f formatting 2025-01-14 11:47:41 -05:00
Nick Merrill 7b35ab844a run server in separate process 2025-01-14 11:44:03 -05:00
Nick Merrill 8d90a3afa3 attempt at server in process 2025-01-14 11:15:05 -05:00
Nick Merrill 7ab1fc71aa attempt to get server to shut down 2025-01-14 11:01:43 -05:00
Nick Merrill 8f81a85abe all tests passing with custom port, but not passing all together 2025-01-14 10:45:55 -05:00