Stephen Halter
8eb4023c20
Add stateless doc, prefer stateless mode and disable legacy SSE by default ( #1468 )
2026-03-27 13:56:16 -07:00
Copilot
1108117d6f
Simplify and update package README.md files for stable release ( #1388 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
Co-authored-by: jeffhandley <1031940+jeffhandley@users.noreply.github.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
2026-02-26 08:59:28 -08:00
Copilot
84cd6917bb
Mark RunSessionHandler experimental (MCPEXP002) ( #1383 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: halter73 <54385+halter73@users.noreply.github.com>
Co-authored-by: jeffhandley <1031940+jeffhandley@users.noreply.github.com>
2026-02-24 15:02:34 -08:00
Mackinnon Buck
669c36b229
Unify service configuration for ISseEventStreamStore, IMcpTaskStore, and ISessionMigrationHandler ( #1362 )
2026-02-23 23:22:59 -08:00
Copilot
3cc4863fc1
Fix XML documentation spelling, grammar, and correctness issues across SDK ( #1372 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
2026-02-23 23:56:22 -05:00
Copilot
74622d0c9c
Remove server back-references from protocol DTO types ( #1345 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
2026-02-23 14:17:54 -05:00
Stephen Halter
d21aa9e5a2
Split configuration of request and message filters ( #1308 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-19 17:42:35 -08:00
Mackinnon Buck
27a3196c7f
Add ISessionMigrationHandler ( #1270 )
2026-02-19 15:31:34 -08:00
Copilot
5da0fe506f
Validate MCP-Protocol-Version header in Streamable HTTP handler ( #1277 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
2026-02-18 22:18:00 -05:00
Copilot
2e17550303
Add X-Accel-Buffering header to SSE responses ( #1294 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
2026-02-17 16:03:10 -05:00
Copilot
dbf91bcb1a
Change ProtectedResourceMetadata URI properties to strings and build resource strings directly ( #1264 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: halter73 <54385+halter73@users.noreply.github.com>
Co-authored-by: Stephen Halter <halter73@gmail.com>
2026-02-12 22:28:43 -05:00
Copilot
5084a79068
Add ILoggerFactory to StreamableHttpServerTransport ( #1213 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
2026-01-30 17:45:39 -05:00
Stephen Toub
f9dec13660
Fix race condition in SSE GET request initialization ( #1212 )
2026-01-29 23:04:51 -05:00
Copilot
774411b22c
Add 2025-11-25 as supported version ( #1130 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
2026-01-15 09:59:42 -05:00
Mackinnon Buck
b8311756b4
Streamable HTTP resumability + redelivery + SSE polling via server-side disconnect ( #1077 )
...
Co-authored-by: Stephen Halter <halter73@gmail.com>
2026-01-14 22:54:25 -08:00
Copilot
8b73a42c9d
Remove private reflection from tests ( #1107 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
Co-authored-by: halter73 <54385+halter73@users.noreply.github.com>
2025-12-16 21:20:42 +02:00
Copilot
aaffd71c69
Fix session timeout due to timestamp frequency mismatch and activity tracking ( #1106 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
2025-12-15 16:21:21 -05:00
Copilot
1b846cb76c
Add missing exception documentation to public API surface ( #1103 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
2025-12-15 12:51:09 -05:00
Stephen Halter
31f8d20a1a
Support incremental scope consent (SEP-835) ( #1084 )
2025-12-11 19:51:47 -08:00
Stephen Halter
970207989e
Fall back to well-known URL in client if 401 response is missing resource_metadata parameter ( #1054 )
2025-12-05 14:12:51 -08:00
Stephen Halter
ae17ba0b4b
Add support for URL mode elicitation ( #1021 )
2025-12-05 00:03:16 -08:00
Genevieve Warren
af719fc576
Docs edit pass (MCP.AspNetCore and a few other files) ( #1034 )
...
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Mike Kistler <mikekistler@microsoft.com>
2025-11-26 08:36:33 -05:00
Jeff Handley
9395394c1b
Address additional feedback on Versioning doc ( #999 )
2025-11-20 21:59:28 -05:00
Mackinnon Buck
d540dc1fb1
Make RequestId non-required ( #984 )
2025-11-18 16:03:31 -08:00
Mackinnon Buck
121929da36
Audit protocol types ( #892 )
2025-11-04 15:41:10 -08:00
Stephen Halter
1343dd3ebd
Fix regression matching templated McpServerResources ( #897 )
2025-10-20 11:13:37 -07:00
Stephen Toub
bfc0980ef5
Add net10.0 assets and run some fixers ( #875 )
2025-10-15 15:27:43 -04:00
Stephen Halter
1f97301182
Pin GitHub workflows to rc.1 SDK ( #871 )
...
* Pin GitHub workflows to rc.1 SDK
* Make src/* change to force PR tests
* Add global.json to paths that trigger PR tests
2025-10-14 22:53:10 -04:00
Stephen Halter
3255adb4d6
Propagate tool call exceptions through filters ( #844 )
...
* Add McpProtocolException specifically for JSON-RPC errors
2025-10-14 19:10:55 -07:00
Stephen Halter
e01edc143a
Fix slow shutdown when a Streamable HTTP client is connected ( #843 )
...
* Add "Async" suffix to async methods
2025-10-10 17:50:57 -07:00
Stephen Halter
47b9582fd7
Make "Stateless" mode sessionless ( #760 )
...
- This removes the requirement to configure data protection which is the motivating reason for this change
- This means that McpServer.ClientInfo will always be null in stateless mode
2025-10-02 15:57:01 -07:00
Stephen Halter
740a7d0346
Move options validation to constructor ( #826 )
...
This works around the breaking change to BackgroundService in
https://github.com/dotnet/runtime/pull/116283 which launches
ExecuteAsync using Task.Run.
2025-10-02 12:38:13 -07:00
Mackinnon Buck
38b4a26998
Restructure IMcpEndpoint, IMcpClient, and IMcpServer ( #723 )
...
* Remove `McpEndpoint` & `IMcpClient`
* Revise naming, add abstract classes
* Fix missing renames
* Move extension methods to instance methods
* Add back old API, but obsoleted
* Add back obsoleted factory classes
* Move deprecation attributes
* `SseClientTransport` -> `HttpClientTransport`
* Update src/ModelContextProtocol.Core/Server/AugmentedServiceProvider.cs
Co-authored-by: Stephen Halter <halter73@gmail.com>
* PR feedback
* PR feedback
* Add back dispose lock
* Fix docs projects
* PR feedback
* Undo `docs/*.md` changes
---------
Co-authored-by: Stephen Halter <halter73@gmail.com>
2025-09-16 10:22:10 -07:00
Stephen Halter
d344c65120
Add middleware and authz support for server-side handlers ( #733 )
2025-09-10 10:07:45 -07:00
Stephen Halter
b067261ca7
Prune idle sessions before starting new ones ( #701 )
2025-08-18 11:04:27 -07:00
Szymon Kulec
929ae58906
IdleTracking uses lists instead of SortedSet ( #629 )
2025-07-18 11:36:21 -07:00
Szymon Kulec
bd5aef6020
UnreferenceDisposable made slimmer ( #627 )
2025-07-18 11:36:08 -07:00
Stephen Halter
f53e0d2132
Respect HandleResponse() and SkipHandler() calls in OnResourceMetadataRequest ( #607 )
2025-07-17 17:39:05 -07:00
Stephen Halter
a88ef0deb7
Flow ExecutionContext with JsonRpcMessage ( #616 )
...
The primary goal of this change is to support IHttpContextAccessor in tool calls when the Streamable HTTP is in its default non-Stateless mode.
2025-07-15 13:58:43 -07:00
David Parks
984aa9ae1b
fix: Prevent crash when Options.ResourceMetadata is null but handled by event ( #603 )
2025-07-09 12:05:00 -07:00
Den Delimarsky 🌺
cdf88e7f5d
Authorization Support (Using ASP.NET Core Native AuthN/AuthZ Integration) ( #377 )
2025-07-03 14:39:28 -07:00
Stephen Toub
0e6184a4aa
Add 2025-06-18 as supported version ( #529 )
2025-06-20 12:03:28 -04:00
Stephen Halter
befa31d5c9
Send MCP-Protocol-Version header in Streamable HTTP client transport ( #500 )
2025-06-17 14:27:26 -07:00
Eirik Tsarpalis
d7d9eab3f8
Pass session id's to MCP endpoints. ( #466 )
...
* Pass session id's to MCP endpoints.
* Update src/ModelContextProtocol/Client/McpClient.cs
Co-authored-by: Stephen Halter <halter73@gmail.com>
* Update src/ModelContextProtocol.AspNetCore/StreamableHttpHandler.cs
Co-authored-by: Stephen Halter <halter73@gmail.com>
* Make init callback asynchronous.
* Address feedback.
---------
Co-authored-by: Stephen Halter <halter73@gmail.com>
2025-06-12 17:56:57 +03:00
Stephen Halter
703b0fe50b
Add ModelContextProtocol.Core package ( #428 )
2025-06-02 15:16:45 -07:00
Stephen Halter
d23f442a69
Allow more accept headers ( #429 )
2025-05-19 17:31:20 -07:00
Stephen Toub
106ab8064f
Clean up namespaces ( #410 )
...
No meaningful code changes, just lots of namespace shuffling to have fewer namespaces and to put things in better namespaces.
2025-05-14 14:50:26 -04:00
Stephen Halter
ce9f73f43f
Add stateless Streamable HTTP support ( #392 )
...
- It allows a single MCP session spanning multiple requests
to be handled by different servers without sharing state
- It does require the servers share data protection keys, but this
is standard for ASP.NET Core cookies and antiforgery as well
- It immediately throws for unsupported operations like sampling
2025-05-14 04:51:03 -07:00
Stephen Halter
e913d80f05
Add client-side Streamable HTTP transport support ( #356 )
2025-04-30 17:21:43 -07:00
Stephen Halter
e3ff552824
Improve testing for StreamableHttpHandler and IdleTrackingBackgroundService ( #345 )
...
* Add idle session pruning tests
* Remove redundant CTS from StreamableHttpHandler
* StreamableHttpServerTransport.HandlePostRequest already creates the equivelant CTS
which DeleteRequest_CompletesSession_WhichCancelsLongRunningToolCalls verifies
* Fix accept header validation for GET
* Use InvalidOperationException for transport-not-connected errors in doc comments
* Fix flaky Cancellation_ThrowsCancellationException test
2025-04-24 10:49:02 -07:00