* Initial plan
* Add comprehensive tests for resource capability preservation
- Added tests to verify manual resource capability settings are preserved
- Added integration tests to confirm resources are exposed when capabilities are set
- Tests confirm the issue is resolved or was not reproducible
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Add test documenting expected behavior for resource capability configuration
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Initial plan
* Add McpMetaAttribute and integrate with tools, prompts, and resources
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Add tests and sample usage for McpMetaAttribute
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Add Meta property to options classes and update logic to merge with attributes
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Fix missing using directives and clarify McpMetaAttribute documentation
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Make Name and Value constructor parameters in McpMetaAttribute and check AIFunction.Metadata.UnderlyingMethod
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Change Value type to object and use JsonSerializer.SerializeToNode, fix nullable warnings
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Fix UnderlyingMethod property path, use SerializerOptions, and fix JsonObject cref
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Simplify MethodInfo resolution to use function.UnderlyingMethod directly
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Fix IL2026 trimming warning by providing type info to JsonSerializer.SerializeToNode
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Fix remaining issues
* Revert to string-based JSON values for McpMetaAttribute with StringSyntax annotation
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Add StringSyntax attribute to Value property and fix sample code to use escaped quotes
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Fix tests and a bit of cleanup
* Change approach and add lots of tests
* Use JsonContext for serialization and fix floating point test comparison
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
---------
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>
* Convert EverythingServer to use Streamable HTTP
* Apply suggestion from @halter73
Co-authored-by: Stephen Halter <halter73@gmail.com>
---------
Co-authored-by: Stephen Halter <halter73@gmail.com>
* Initial plan
* Update copilot-setup-steps.yml to use global.json for .NET SDK version
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
* Initial plan
* Allow handlers for empty tool/prompt/resource collections
Changed condition from `IsEmpty: false` to `not null` check in McpServerImpl.cs for resources (line 298), prompts (line 459), and tools (line 547). This allows handlers to be synthesized even when collections are empty, enabling dynamic addition of items after initialization.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Initial plan
* Update global.json to use .NET 9.0 SDK for GitHub Codespaces compatibility
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
* Revert global.json and update devcontainer.json to install both .NET 9 and 10
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
* Fix devcontainer.json to use additionalVersions for multiple .NET SDKs
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
* Initial plan
* Add Dependabot configuration for automated dependency updates
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
* Add Dependabot documentation and complete onboarding
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
* Refactor Dependabot config to only update testing dependencies and remove documentation
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
* Remove redundant allow list and use groups + ignore instead
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
* Use wildcard patterns in ignore list for cleaner configuration
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
* Add Microsoft.Extensions.AI group and remove from ignore list
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
* Update .github/dependabot.yml
* Move microsoft-extensions-ai group to top of groups section
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
* Update .github/dependabot.yml
* Update .github/dependabot.yml
* Remove packages with fixed version strings from dependency groups
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
* remove Microsoft.Extensions packages
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: eiriktsarpalis <2813363+eiriktsarpalis@users.noreply.github.com>
Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
* Fix support for sending server notifications with request-specific McpServer instances used outside their original scope.
* Address feedback.
* Update src/ModelContextProtocol.Core/Server/SseWriter.cs
- 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
* Fix stdio client transport CLI argument escaping.
* Fix failing Windows test.
* Add more test cases and refine escaping logic.
* Fix test failures in mono
* Style fixes
* Tweak stdio test
* Tweak tests further