From 1e313a13cc0679b851f8d8692d0004ae9eaf392d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 27 Mar 2026 00:49:35 +0000 Subject: [PATCH 1/3] Initial plan From 4570196c467dfb1bacaaa9b515d0e99b6807fbc9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 27 Mar 2026 00:51:11 +0000 Subject: [PATCH 2/3] docs: update roots terminology to match MCP spec clarification Agent-Logs-Url: https://github.com/modelcontextprotocol/csharp-sdk/sessions/2ab95d23-a5b8-4211-8ea7-a5cdf7a15861 Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com> --- docs/concepts/roots/roots.md | 2 +- .../Protocol/NotificationMethods.cs | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/concepts/roots/roots.md b/docs/concepts/roots/roots.md index 94b330871..8205cb6a6 100644 --- a/docs/concepts/roots/roots.md +++ b/docs/concepts/roots/roots.md @@ -17,7 +17,7 @@ Roots provide a mechanism for the client to tell the server which directories, p - Scope file searches to the user's project directories - Understand which repositories are being worked on -- Limit operations to specific filesystem boundaries +- Focus operations on relevant filesystem locations Each root is represented by a with a URI and an optional human-readable name. diff --git a/src/ModelContextProtocol.Core/Protocol/NotificationMethods.cs b/src/ModelContextProtocol.Core/Protocol/NotificationMethods.cs index 7fb15a064..949361650 100644 --- a/src/ModelContextProtocol.Core/Protocol/NotificationMethods.cs +++ b/src/ModelContextProtocol.Core/Protocol/NotificationMethods.cs @@ -53,9 +53,10 @@ public static class NotificationMethods /// /// /// This notification informs the server that the client's "roots" have changed. - /// Roots define the boundaries of where servers can operate within the filesystem, - /// allowing them to understand which directories and files they have access to. Servers - /// can request the list of roots from supporting clients and receive notifications when that list changes. + /// Roots inform servers about the directories and files the client considers relevant, + /// so that servers can focus their operations accordingly. They are informational guidance + /// rather than an access-control mechanism; the protocol does not enforce that servers stay within roots. + /// Servers can request the list of roots from supporting clients and receive notifications when that list changes. /// /// /// After receiving this notification, servers can refresh their knowledge of roots by calling the appropriate From 0dde9a5b3f18ca2f12454d891d38922cab98ae2c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 27 Mar 2026 01:00:17 +0000 Subject: [PATCH 3/3] docs: update Root and RootsCapability XML doc comments to clarify informational nature Agent-Logs-Url: https://github.com/modelcontextprotocol/csharp-sdk/sessions/d5710a76-b57b-4d4c-ba62-c73c7d50f862 Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com> --- src/ModelContextProtocol.Core/Protocol/Root.cs | 7 ++++--- src/ModelContextProtocol.Core/Protocol/RootsCapability.cs | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/ModelContextProtocol.Core/Protocol/Root.cs b/src/ModelContextProtocol.Core/Protocol/Root.cs index 0a86aaf3e..622dbddb9 100644 --- a/src/ModelContextProtocol.Core/Protocol/Root.cs +++ b/src/ModelContextProtocol.Core/Protocol/Root.cs @@ -9,9 +9,10 @@ namespace ModelContextProtocol.Protocol; /// /// /// Root URIs serve as entry points for resource navigation, typically representing -/// top-level directories or container resources that can be accessed and traversed. -/// Roots provide a hierarchical structure for organizing and accessing resources within the protocol. -/// Each root has a URI that uniquely identifies it and optional metadata like a human-readable name. +/// top-level directories or container resources that are relevant to the current session. +/// Roots inform servers which locations the client considers important, providing informational +/// guidance rather than an access-control mechanism. Each root has a URI that uniquely identifies +/// it and optional metadata like a human-readable name. /// public sealed class Root { diff --git a/src/ModelContextProtocol.Core/Protocol/RootsCapability.cs b/src/ModelContextProtocol.Core/Protocol/RootsCapability.cs index 4739cde4a..0b2f9e762 100644 --- a/src/ModelContextProtocol.Core/Protocol/RootsCapability.cs +++ b/src/ModelContextProtocol.Core/Protocol/RootsCapability.cs @@ -13,9 +13,9 @@ namespace ModelContextProtocol.Protocol; /// root URIs that serve as entry points for resource navigation. /// /// -/// The roots capability establishes a mechanism for servers to discover and access the hierarchical -/// structure of resources provided by a client. Root URIs represent top-level entry points from which -/// servers can navigate to access specific resources. +/// The roots capability establishes a mechanism for servers to discover the directories and files +/// the client considers relevant. Root URIs represent top-level entry points that inform the server +/// about the working context, providing informational guidance rather than enforcing access control. /// /// /// See the schema for details.