Commit graph

287 commits

Author SHA1 Message Date
Eirik Tsarpalis
3156818d66
Update MEAI version and add regression test for #601. (#628) v0.3.0-preview.3 2025-07-16 16:17:49 +03: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
Stephen Toub
5f1c74f1ff
Ensure IsExternalInit is type forwarded on NET builds (#619)
It's included as internal on netstandard/net472, and the C# compiler may bake a reference to that into a consumer. If that consumer is then used with a net8.0+ build, the IsExternalInit needs to be there and forwarded to the real one.

This switches our polyfill files to always be included but the actual contents ifdef'd out on TFMs that already have the contents. That then makes it easier to do specialized ifdef'ing in the future, as this does for IsExternalInit.
2025-07-14 10:30:48 -04:00
Stephen Toub
1232456153
Update to M.E.AI 9.7.0 (#602) 2025-07-09 23:41:57 -04: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
Eirik Tsarpalis
aa75f6f37e
Enable netfx testing. (#588)
* Enable netfx testing.

* Skip impacted tests and re-enable netfx testing.

* Remove redundant comment.

* Remove unnecessary project configuration.

* Simplify test server copying.
2025-07-08 18:50:37 +03:00
Stephen Halter
c0440760ac
Bump version to 0.3.0-preview.3 2025-07-03 14:50:37 -07:00
Stephen Halter
a6fd6fc9dd
Bump version to 0.3.0-preview.2 v0.3.0-preview.2 2025-07-03 14:49:04 -07:00
Den Delimarsky 🌺
cdf88e7f5d
Authorization Support (Using ASP.NET Core Native AuthN/AuthZ Integration) (#377) 2025-07-03 14:39:28 -07:00
Luca
cd8e5d5f7f
Fixed StreamableHttpClientSessionTransport.cs for netstandard (#582)
Fixed exception 'The format of value 'application/json; charset=utf-8' is invalid
2025-07-02 13:13:13 -07:00
Stephen Toub
4411f1ce5e
Change default name casing of McpServerXx.Create tools/prompts/resources (#568) 2025-07-01 16:40:42 -04:00
Stephen Toub
4e290f8de9
Add CallToolResult.ToChatMessage extension method (#575)
To simplify non-AIFunction usage getting a ChatMessage with the appropriate FunctionResultContent.
2025-07-01 07:09:49 -04:00
Eirik Tsarpalis
92fd8b246f
Fix relative path resolution in sample app. (#572)
* Fix relative path resolution in sample app.

* Update samples/QuickstartClient/Program.cs

* Fix build
2025-07-01 13:58:31 +03:00
Stephen Toub
ab51400ba0
Make CallToolResult.IsError optional (#573)
Match the spec, and avoid sending the property in the success case.
2025-06-30 11:35:07 -04:00
rokenbuzz
fc293429f9
Removed space (#563)
PackageVersion for OpenTelemetry.Instrumentation.Http had trailing space causing error noticed in Visual Studio build

Co-authored-by: Buzz Weetman <rweetman@2touchpos.com>
2025-06-30 10:58:52 -04:00
Stephen Toub
f3539cc2ca
Enable injecting IMcpServer and friends into ctors (#570) 2025-06-30 10:58:08 -04:00
Stephen Toub
9d835a0625
Delete unused method and linker suppression (#567) 2025-06-28 07:20:34 -04:00
Eirik Tsarpalis
55bda787ae
Styling: remove a few redundant parens from object initializer expressions. (#548)
* Styling: remove a few redundant parens from object initializer expressions.

* Fix build error.
2025-06-26 16:55:54 +03:00
Anduin Xue
802424ee08
Update README.md to fix the server sample build issue. (#546)
* Update README.md to fix the server sample build issue.

Update README.md to fix the server sample build issue.

* Update README.md

---------

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
2025-06-26 13:51:55 +03:00
Stephen Toub
068f0418fe
Fix deserialization of PrimitiveSchemaDefinition (#537)
This is preventing clients from correctly handling elicitation requests.
2025-06-24 08:48:12 -04:00
S-Luiten
db374957fc
Document default value for UseStructuredContent. (#539)
Co-authored-by: Steven Luiten <s.luiten@inpactplatform.nl>
2025-06-24 08:48:00 -04:00
S-Luiten
b9837a9e42
Implement ReturnJsonSchema in McpClientTool. (#538)
Co-authored-by: Steven Luiten <s.luiten@inpactplatform.nl>
2025-06-24 08:47:34 -04:00
Eirik Tsarpalis
0b26b7bf22
Fix URI template derivation and lookup (#530)
* Use lowercase host in resource URI template derivation.

* Address feedback

* Add casing testing for non-templated resource lookups.

* Fix uri primitive lookup

* Use a hardcoded mcp hostname in derived resource template URIs and ensure built-in resources work with the VS Code client.

* Address feedback

* Fix equality comparison

* Use dedicated type for resource collections.
2025-06-23 19:49:38 +03:00
Eirik Tsarpalis
283a052e3f
Bump version number to 0.3.0 (#534) v0.3.0-preview.1 2025-06-20 09:17:02 -07:00
Stephen Toub
0e6184a4aa
Add 2025-06-18 as supported version (#529) 2025-06-20 12:03:28 -04:00
Stephen Toub
521bb7bde2
Fix QuickstartClient path (#528)
* Fix QuickstartClient path

* Make dotnet run work instead of F5
2025-06-19 15:35:13 -04:00
Stephen Halter
a4b4edaa2a
Send DELETE request when closing a Streamable HTTP session on the client (#501) 2025-06-19 08:40:11 -07:00
Stephen Halter
befa31d5c9
Send MCP-Protocol-Version header in Streamable HTTP client transport (#500) 2025-06-17 14:27:26 -07:00
Stephen Toub
b9b4a23005
Add a callback for receiving stderr output (#525)
* Add a callback for receiving stderr output

* Add asserts to test
2025-06-17 16:03:20 -04:00
Stephen Toub
4e2c1b949f
Fix visibility of polyfill (#523) 2025-06-17 12:43:44 -04:00
Stephen Toub
2bcff315f8
Update content according to latest spec (#513)
* Update content according to latest spec

* Add Title to a bunch of types

* Add _meta to lots of types

* Address feedback, more cleanup, fix NAOT test failure
2025-06-16 19:39:41 -04:00
Sven Boemer
28d65470f4
Update Microsoft.Extensions.AI version & expose JSON configuration on McpServerResourceCreateOptions (#511)
* Update Microsoft.Extensions.AI version

* Update Microsoft.Extensions.AI.OpenAI

* Fix failing tests; add JSON configuration options to McpServerResourceCreateOptions.

* Replace temporary code with `AIFunction.ReturnJsonSchema`

---------

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
2025-06-13 13:50:14 +01:00
Eirik Tsarpalis
1e8fb04037
Make enums serialize as strings if using the reflection-based serializer. (#473)
* Make enums serialize as strings if using the reflection-based serializer.

* Remove unnecessary partial

* Use an explicit reflection-based converter for enums.

* Update comments

* Make the reflection-based enum converter public.
2025-06-12 18:25:54 +03: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
Eirik Tsarpalis
fa017c04c3
Add structured output/output schema support for server-side tools. (#480)
* Add structured output/output schema support for server-side tools.

* Address feedback.

* Add McpServerToolAttribute.UseStructuredContent

---------

Co-authored-by: Stephen Toub <stoub@microsoft.com>
2025-06-06 00:20:12 -07:00
Stephen Toub
46d25b7558
Add context to complete requests (#488) 2025-06-05 20:30:00 -07:00
Stephen Halter
c560f47ee6
Remove incorrect acknowledgement from Core README.md (#482) 2025-06-03 15:17:28 -07:00
Stephen Halter
ef7ac8481c
Bump version to 0.2.0-preview.4 2025-06-03 13:43:06 -07:00
Stephen Halter
046903c27b
Don't conflate request and response IDs in Streamable HTTP transports (#475) v0.2.0-preview.3 2025-06-03 12:17:11 -07:00
Stephen Toub
e0b058f260
Improve protocol version handling (#468)
Right now by default, the client and server hardcode the initial spec version, and if there's a mismatch, the request fails.

With this change, by default both client and server are allowed to float to any supported version.
2025-06-02 23:03:57 -04:00
Stephen Halter
703b0fe50b
Add ModelContextProtocol.Core package (#428) 2025-06-02 15:16:45 -07:00
Stephen Toub
57458241b9
Update dependency versions (#474) 2025-05-31 06:07:40 -04:00
Eirik Tsarpalis
888f1711f6
Convert solution to slnx (#472)
* Convert solution to slnx

* Bump sdk version in global.json
2025-05-30 18:19:55 +03:00
Eirik Tsarpalis
47e6a6412e
Convert records to classes (#470)
* Convert records to classes

* Make properties in SseClientTransportOptions settable.

* Convert missing property from init to set
2025-05-30 17:34:36 +03:00
Stephen Toub
5cc7c00456
Add elicitation capability (#467)
* Add elicitation capability
2025-05-29 22:03:03 -04:00
Jeff Handley
36a70a03f8
Bump version to 0.2.0-preview.3 (#465)
https://www.nuget.org/packages/ModelContextProtocol/0.2.0-preview.2 has been published
2025-05-29 21:17:39 +03:00
Eirik Tsarpalis
6351b3dd43
Update documentation of McpJsonUtilities.DefaultOptions. (#463) v0.2.0-preview.2 2025-05-29 07:22:26 -04:00
Stephen Toub
72e7623b11
Set CreateNoWindow=true in RunProcessAndWaitForExit (#462) 2025-05-29 06:53:37 -04:00
Stephen Halter
317f468807
Automatically fall back from Streamable HTTP to SSE on the client by default (#456) 2025-05-28 11:06:58 -07:00
кɵɵѕнī
adb2098e4d
Log tool invocation errors (#447)
* Log tool errors
* add test and implement source generated logging
2025-05-23 14:48:47 -07:00