diff --git a/samples/AspNetCoreSseServer/Program.cs b/samples/AspNetCoreSseServer/Program.cs index 41f98ee56..f24b6a17c 100644 --- a/samples/AspNetCoreSseServer/Program.cs +++ b/samples/AspNetCoreSseServer/Program.cs @@ -1,7 +1,7 @@ -using TestServerWithHosting.Tools; +using OpenTelemetry; using OpenTelemetry.Metrics; using OpenTelemetry.Trace; -using OpenTelemetry; +using TestServerWithHosting.Tools; var builder = WebApplication.CreateBuilder(args); builder.Services.AddMcpServer() diff --git a/samples/ChatWithTools/Program.cs b/samples/ChatWithTools/Program.cs index 8c5ae8237..ba597ae8a 100644 --- a/samples/ChatWithTools/Program.cs +++ b/samples/ChatWithTools/Program.cs @@ -1,13 +1,11 @@ -using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Transport; -using Microsoft.Extensions.AI; +using Microsoft.Extensions.AI; +using Microsoft.Extensions.Logging; +using ModelContextProtocol.Client; using OpenAI; - using OpenTelemetry; -using OpenTelemetry.Trace; -using Microsoft.Extensions.Logging; using OpenTelemetry.Logs; using OpenTelemetry.Metrics; +using OpenTelemetry.Trace; using var tracerProvider = Sdk.CreateTracerProviderBuilder() .AddHttpClientInstrumentation() diff --git a/samples/EverythingServer/LoggingUpdateMessageSender.cs b/samples/EverythingServer/LoggingUpdateMessageSender.cs index efd711498..844aa70d8 100644 --- a/samples/EverythingServer/LoggingUpdateMessageSender.cs +++ b/samples/EverythingServer/LoggingUpdateMessageSender.cs @@ -1,6 +1,6 @@ using Microsoft.Extensions.Hosting; using ModelContextProtocol; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; namespace EverythingServer; diff --git a/samples/EverythingServer/Program.cs b/samples/EverythingServer/Program.cs index 22a290e62..5041dc875 100644 --- a/samples/EverythingServer/Program.cs +++ b/samples/EverythingServer/Program.cs @@ -7,7 +7,7 @@ using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using ModelContextProtocol; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using OpenTelemetry; using OpenTelemetry.Logs; diff --git a/samples/EverythingServer/ResourceGenerator.cs b/samples/EverythingServer/ResourceGenerator.cs index 7e8126250..524f35063 100644 --- a/samples/EverythingServer/ResourceGenerator.cs +++ b/samples/EverythingServer/ResourceGenerator.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; namespace EverythingServer; diff --git a/samples/EverythingServer/Resources/SimpleResourceType.cs b/samples/EverythingServer/Resources/SimpleResourceType.cs index 045af2f3f..da185425f 100644 --- a/samples/EverythingServer/Resources/SimpleResourceType.cs +++ b/samples/EverythingServer/Resources/SimpleResourceType.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using System.ComponentModel; diff --git a/samples/EverythingServer/Tools/AnnotatedMessageTool.cs b/samples/EverythingServer/Tools/AnnotatedMessageTool.cs index 25027faf0..f4c5d257a 100644 --- a/samples/EverythingServer/Tools/AnnotatedMessageTool.cs +++ b/samples/EverythingServer/Tools/AnnotatedMessageTool.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using System.ComponentModel; diff --git a/samples/EverythingServer/Tools/LongRunningTool.cs b/samples/EverythingServer/Tools/LongRunningTool.cs index 378cef6c2..8ba8b0470 100644 --- a/samples/EverythingServer/Tools/LongRunningTool.cs +++ b/samples/EverythingServer/Tools/LongRunningTool.cs @@ -1,5 +1,5 @@ using ModelContextProtocol; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using System.ComponentModel; diff --git a/samples/EverythingServer/Tools/SampleLlmTool.cs b/samples/EverythingServer/Tools/SampleLlmTool.cs index 53ebfff2a..43e7e7b3f 100644 --- a/samples/EverythingServer/Tools/SampleLlmTool.cs +++ b/samples/EverythingServer/Tools/SampleLlmTool.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using System.ComponentModel; diff --git a/samples/QuickstartClient/Program.cs b/samples/QuickstartClient/Program.cs index 99a218bdf..e3ee4fe81 100644 --- a/samples/QuickstartClient/Program.cs +++ b/samples/QuickstartClient/Program.cs @@ -3,7 +3,6 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Transport; var builder = Host.CreateApplicationBuilder(args); diff --git a/samples/TestServerWithHosting/Tools/SampleLlmTool.cs b/samples/TestServerWithHosting/Tools/SampleLlmTool.cs index 3539b4cdc..fc405d5a8 100644 --- a/samples/TestServerWithHosting/Tools/SampleLlmTool.cs +++ b/samples/TestServerWithHosting/Tools/SampleLlmTool.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using System.ComponentModel; diff --git a/src/Common/Polyfills/System/Collections/Generic/CollectionExtensions.cs b/src/Common/Polyfills/System/Collections/Generic/CollectionExtensions.cs index 6a980088a..ae4f697bc 100644 --- a/src/Common/Polyfills/System/Collections/Generic/CollectionExtensions.cs +++ b/src/Common/Polyfills/System/Collections/Generic/CollectionExtensions.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Utils; +using ModelContextProtocol; namespace System.Collections.Generic; diff --git a/src/Common/Polyfills/System/IO/StreamExtensions.cs b/src/Common/Polyfills/System/IO/StreamExtensions.cs index c566a97d2..d58ffaf3b 100644 --- a/src/Common/Polyfills/System/IO/StreamExtensions.cs +++ b/src/Common/Polyfills/System/IO/StreamExtensions.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Utils; +using ModelContextProtocol; using System.Buffers; using System.Runtime.InteropServices; diff --git a/src/Common/Polyfills/System/Net/Http/HttpClientExtensions.cs b/src/Common/Polyfills/System/Net/Http/HttpClientExtensions.cs index 80a959a2a..85612b1d5 100644 --- a/src/Common/Polyfills/System/Net/Http/HttpClientExtensions.cs +++ b/src/Common/Polyfills/System/Net/Http/HttpClientExtensions.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Utils; +using ModelContextProtocol; namespace System.Net.Http; diff --git a/src/Common/Polyfills/System/Threading/CancellationTokenSourceExtensions.cs b/src/Common/Polyfills/System/Threading/CancellationTokenSourceExtensions.cs index 3c485f155..95acac96c 100644 --- a/src/Common/Polyfills/System/Threading/CancellationTokenSourceExtensions.cs +++ b/src/Common/Polyfills/System/Threading/CancellationTokenSourceExtensions.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Utils; +using ModelContextProtocol; namespace System.Threading.Tasks; diff --git a/src/Common/Polyfills/System/Threading/Tasks/TaskExtensions.cs b/src/Common/Polyfills/System/Threading/Tasks/TaskExtensions.cs index 618cd368a..bee89a25d 100644 --- a/src/Common/Polyfills/System/Threading/Tasks/TaskExtensions.cs +++ b/src/Common/Polyfills/System/Threading/Tasks/TaskExtensions.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Utils; +using ModelContextProtocol; namespace System.Threading.Tasks; diff --git a/src/Common/Throw.cs b/src/Common/Throw.cs index f2f6ffda2..0c6927e5f 100644 --- a/src/Common/Throw.cs +++ b/src/Common/Throw.cs @@ -1,7 +1,7 @@ using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; -namespace ModelContextProtocol.Utils; +namespace ModelContextProtocol; /// Provides helper methods for throwing exceptions. internal static class Throw diff --git a/src/ModelContextProtocol.AspNetCore/HttpMcpSession.cs b/src/ModelContextProtocol.AspNetCore/HttpMcpSession.cs index 836dcc50b..c34aba6c7 100644 --- a/src/ModelContextProtocol.AspNetCore/HttpMcpSession.cs +++ b/src/ModelContextProtocol.AspNetCore/HttpMcpSession.cs @@ -1,5 +1,5 @@ using ModelContextProtocol.AspNetCore.Stateless; -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using System.Security.Claims; diff --git a/src/ModelContextProtocol.AspNetCore/IdleTrackingBackgroundService.cs b/src/ModelContextProtocol.AspNetCore/IdleTrackingBackgroundService.cs index bb50c91c9..26ffd44bb 100644 --- a/src/ModelContextProtocol.AspNetCore/IdleTrackingBackgroundService.cs +++ b/src/ModelContextProtocol.AspNetCore/IdleTrackingBackgroundService.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Server; namespace ModelContextProtocol.AspNetCore; diff --git a/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs b/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs index 1e60d2aab..a65994c44 100644 --- a/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs +++ b/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs @@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.DependencyInjection; using ModelContextProtocol.AspNetCore; -using ModelContextProtocol.Protocol.Messages; +using ModelContextProtocol.Protocol; using System.Diagnostics.CodeAnalysis; namespace Microsoft.AspNetCore.Builder; diff --git a/src/ModelContextProtocol.AspNetCore/SseHandler.cs b/src/ModelContextProtocol.AspNetCore/SseHandler.cs index cea6817ea..251e3bf4f 100644 --- a/src/ModelContextProtocol.AspNetCore/SseHandler.cs +++ b/src/ModelContextProtocol.AspNetCore/SseHandler.cs @@ -2,10 +2,8 @@ using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils.Json; using System.Collections.Concurrent; using System.Diagnostics; diff --git a/src/ModelContextProtocol.AspNetCore/Stateless/StatelessSessionId.cs b/src/ModelContextProtocol.AspNetCore/Stateless/StatelessSessionId.cs index 09eec87e6..0257f6d95 100644 --- a/src/ModelContextProtocol.AspNetCore/Stateless/StatelessSessionId.cs +++ b/src/ModelContextProtocol.AspNetCore/Stateless/StatelessSessionId.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using System.Text.Json.Serialization; namespace ModelContextProtocol.AspNetCore.Stateless; diff --git a/src/ModelContextProtocol.AspNetCore/StreamableHttpHandler.cs b/src/ModelContextProtocol.AspNetCore/StreamableHttpHandler.cs index 86ea6fbfd..ec545c990 100644 --- a/src/ModelContextProtocol.AspNetCore/StreamableHttpHandler.cs +++ b/src/ModelContextProtocol.AspNetCore/StreamableHttpHandler.cs @@ -6,11 +6,8 @@ using Microsoft.Extensions.Options; using Microsoft.Net.Http.Headers; using ModelContextProtocol.AspNetCore.Stateless; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils.Json; using System.Collections.Concurrent; using System.Diagnostics; using System.IO.Pipelines; diff --git a/src/ModelContextProtocol/AIContentExtensions.cs b/src/ModelContextProtocol/AIContentExtensions.cs index 703e01b59..b6d09a200 100644 --- a/src/ModelContextProtocol/AIContentExtensions.cs +++ b/src/ModelContextProtocol/AIContentExtensions.cs @@ -1,8 +1,8 @@ using Microsoft.Extensions.AI; -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; +#if !NET using System.Runtime.InteropServices; +#endif using System.Text.Json; namespace ModelContextProtocol; diff --git a/src/ModelContextProtocol/Protocol/Transport/IClientTransport.cs b/src/ModelContextProtocol/Client/IClientTransport.cs similarity index 96% rename from src/ModelContextProtocol/Protocol/Transport/IClientTransport.cs rename to src/ModelContextProtocol/Client/IClientTransport.cs index ab608ef94..525178957 100644 --- a/src/ModelContextProtocol/Protocol/Transport/IClientTransport.cs +++ b/src/ModelContextProtocol/Client/IClientTransport.cs @@ -1,6 +1,6 @@ -using ModelContextProtocol.Client; +using ModelContextProtocol.Protocol; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Client; /// /// Represents a transport mechanism for Model Context Protocol (MCP) client-to-server communication. diff --git a/src/ModelContextProtocol/Client/IMcpClient.cs b/src/ModelContextProtocol/Client/IMcpClient.cs index 9f377e417..68a92a2d9 100644 --- a/src/ModelContextProtocol/Client/IMcpClient.cs +++ b/src/ModelContextProtocol/Client/IMcpClient.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol.Client; diff --git a/src/ModelContextProtocol/Client/McpClient.cs b/src/ModelContextProtocol/Client/McpClient.cs index e6f97e176..957eb7372 100644 --- a/src/ModelContextProtocol/Client/McpClient.cs +++ b/src/ModelContextProtocol/Client/McpClient.cs @@ -1,9 +1,5 @@ using Microsoft.Extensions.Logging; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Shared; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Text.Json; namespace ModelContextProtocol.Client; diff --git a/src/ModelContextProtocol/Client/McpClientExtensions.cs b/src/ModelContextProtocol/Client/McpClientExtensions.cs index c6c98440d..70b382d74 100644 --- a/src/ModelContextProtocol/Client/McpClientExtensions.cs +++ b/src/ModelContextProtocol/Client/McpClientExtensions.cs @@ -1,10 +1,7 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.Logging; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; using System.Runtime.CompilerServices; using System.Text.Json; diff --git a/src/ModelContextProtocol/Client/McpClientFactory.cs b/src/ModelContextProtocol/Client/McpClientFactory.cs index 55c1343e3..30b3a9476 100644 --- a/src/ModelContextProtocol/Client/McpClientFactory.cs +++ b/src/ModelContextProtocol/Client/McpClientFactory.cs @@ -1,5 +1,3 @@ -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Utils; using Microsoft.Extensions.Logging; namespace ModelContextProtocol.Client; diff --git a/src/ModelContextProtocol/Client/McpClientOptions.cs b/src/ModelContextProtocol/Client/McpClientOptions.cs index 0b675dfea..2a5d2a84d 100644 --- a/src/ModelContextProtocol/Client/McpClientOptions.cs +++ b/src/ModelContextProtocol/Client/McpClientOptions.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol.Client; diff --git a/src/ModelContextProtocol/Client/McpClientPrompt.cs b/src/ModelContextProtocol/Client/McpClientPrompt.cs index 062aab8df..d8c4e41e6 100644 --- a/src/ModelContextProtocol/Client/McpClientPrompt.cs +++ b/src/ModelContextProtocol/Client/McpClientPrompt.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using System.Text.Json; namespace ModelContextProtocol.Client; diff --git a/src/ModelContextProtocol/Client/McpClientResource.cs b/src/ModelContextProtocol/Client/McpClientResource.cs index 8faec5a62..1fbb9927e 100644 --- a/src/ModelContextProtocol/Client/McpClientResource.cs +++ b/src/ModelContextProtocol/Client/McpClientResource.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol.Client; diff --git a/src/ModelContextProtocol/Client/McpClientResourceTemplate.cs b/src/ModelContextProtocol/Client/McpClientResourceTemplate.cs index e764d551b..fe02245f4 100644 --- a/src/ModelContextProtocol/Client/McpClientResourceTemplate.cs +++ b/src/ModelContextProtocol/Client/McpClientResourceTemplate.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol.Client; diff --git a/src/ModelContextProtocol/Client/McpClientTool.cs b/src/ModelContextProtocol/Client/McpClientTool.cs index 2478f8ccd..11d72a86f 100644 --- a/src/ModelContextProtocol/Client/McpClientTool.cs +++ b/src/ModelContextProtocol/Client/McpClientTool.cs @@ -1,7 +1,5 @@ using Microsoft.Extensions.AI; -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Collections.ObjectModel; using System.Text.Json; diff --git a/src/ModelContextProtocol/Protocol/Transport/SseClientSessionTransport.cs b/src/ModelContextProtocol/Client/SseClientSessionTransport.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Transport/SseClientSessionTransport.cs rename to src/ModelContextProtocol/Client/SseClientSessionTransport.cs index ccdfc7588..78997b5e8 100644 --- a/src/ModelContextProtocol/Protocol/Transport/SseClientSessionTransport.cs +++ b/src/ModelContextProtocol/Client/SseClientSessionTransport.cs @@ -1,15 +1,13 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Diagnostics; using System.Net.Http.Headers; using System.Net.ServerSentEvents; using System.Text; using System.Text.Json; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Client; /// /// The ServerSideEvents client transport implementation diff --git a/src/ModelContextProtocol/Protocol/Transport/SseClientTransport.cs b/src/ModelContextProtocol/Client/SseClientTransport.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Transport/SseClientTransport.cs rename to src/ModelContextProtocol/Client/SseClientTransport.cs index 1b2865572..df1cdac6c 100644 --- a/src/ModelContextProtocol/Protocol/Transport/SseClientTransport.cs +++ b/src/ModelContextProtocol/Client/SseClientTransport.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.Logging; -using ModelContextProtocol.Utils; +using ModelContextProtocol.Protocol; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Client; /// /// Provides an over HTTP using the Server-Sent Events (SSE) protocol. diff --git a/src/ModelContextProtocol/Protocol/Transport/SseClientTransportOptions.cs b/src/ModelContextProtocol/Client/SseClientTransportOptions.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Transport/SseClientTransportOptions.cs rename to src/ModelContextProtocol/Client/SseClientTransportOptions.cs index b83204ae5..f67f6f07d 100644 --- a/src/ModelContextProtocol/Protocol/Transport/SseClientTransportOptions.cs +++ b/src/ModelContextProtocol/Client/SseClientTransportOptions.cs @@ -1,4 +1,4 @@ -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Client; /// /// Provides options for configuring instances. diff --git a/src/ModelContextProtocol/Protocol/Transport/StdioClientSessionTransport.cs b/src/ModelContextProtocol/Client/StdioClientSessionTransport.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Transport/StdioClientSessionTransport.cs rename to src/ModelContextProtocol/Client/StdioClientSessionTransport.cs index d8ad6afb2..3c7210ecb 100644 --- a/src/ModelContextProtocol/Protocol/Transport/StdioClientSessionTransport.cs +++ b/src/ModelContextProtocol/Client/StdioClientSessionTransport.cs @@ -1,8 +1,8 @@ using Microsoft.Extensions.Logging; -using ModelContextProtocol.Protocol.Messages; +using ModelContextProtocol.Protocol; using System.Diagnostics; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Client; /// Provides the client side of a stdio-based session transport. internal sealed class StdioClientSessionTransport : StreamClientSessionTransport diff --git a/src/ModelContextProtocol/Protocol/Transport/StdioClientTransport.cs b/src/ModelContextProtocol/Client/StdioClientTransport.cs similarity index 99% rename from src/ModelContextProtocol/Protocol/Transport/StdioClientTransport.cs rename to src/ModelContextProtocol/Client/StdioClientTransport.cs index c65ba5e41..5a5d10ffb 100644 --- a/src/ModelContextProtocol/Protocol/Transport/StdioClientTransport.cs +++ b/src/ModelContextProtocol/Client/StdioClientTransport.cs @@ -1,6 +1,6 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using ModelContextProtocol.Utils; +using ModelContextProtocol.Protocol; using System.Diagnostics; using System.Runtime.InteropServices; using System.Text; @@ -8,7 +8,7 @@ #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Client; /// /// Provides a implemented via "stdio" (standard input/output). diff --git a/src/ModelContextProtocol/Protocol/Transport/StdioClientTransportOptions.cs b/src/ModelContextProtocol/Client/StdioClientTransportOptions.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Transport/StdioClientTransportOptions.cs rename to src/ModelContextProtocol/Client/StdioClientTransportOptions.cs index ce51bebad..11a82859b 100644 --- a/src/ModelContextProtocol/Protocol/Transport/StdioClientTransportOptions.cs +++ b/src/ModelContextProtocol/Client/StdioClientTransportOptions.cs @@ -1,4 +1,4 @@ -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Client; /// /// Provides options for configuring instances. diff --git a/src/ModelContextProtocol/Protocol/Transport/StreamClientSessionTransport.cs b/src/ModelContextProtocol/Client/StreamClientSessionTransport.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Transport/StreamClientSessionTransport.cs rename to src/ModelContextProtocol/Client/StreamClientSessionTransport.cs index 07b78c753..3330f4def 100644 --- a/src/ModelContextProtocol/Protocol/Transport/StreamClientSessionTransport.cs +++ b/src/ModelContextProtocol/Client/StreamClientSessionTransport.cs @@ -1,10 +1,8 @@ using Microsoft.Extensions.Logging; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Text.Json; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Client; /// Provides the client side of a stream-based session transport. internal class StreamClientSessionTransport : TransportBase diff --git a/src/ModelContextProtocol/Protocol/Transport/StreamClientTransport.cs b/src/ModelContextProtocol/Client/StreamClientTransport.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Transport/StreamClientTransport.cs rename to src/ModelContextProtocol/Client/StreamClientTransport.cs index bd6ab12f0..30607e574 100644 --- a/src/ModelContextProtocol/Protocol/Transport/StreamClientTransport.cs +++ b/src/ModelContextProtocol/Client/StreamClientTransport.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.Logging; -using ModelContextProtocol.Utils; +using ModelContextProtocol.Client; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Protocol; /// /// Provides an implemented around a pair of input/output streams. diff --git a/src/ModelContextProtocol/Protocol/Transport/StreamableHttpClientSessionTransport.cs b/src/ModelContextProtocol/Client/StreamableHttpClientSessionTransport.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Transport/StreamableHttpClientSessionTransport.cs rename to src/ModelContextProtocol/Client/StreamableHttpClientSessionTransport.cs index 080e90e4a..f90349001 100644 --- a/src/ModelContextProtocol/Protocol/Transport/StreamableHttpClientSessionTransport.cs +++ b/src/ModelContextProtocol/Client/StreamableHttpClientSessionTransport.cs @@ -1,19 +1,16 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; using System.Net.Http.Headers; using System.Net.ServerSentEvents; using System.Text.Json; - +using ModelContextProtocol.Protocol; #if NET using System.Net.Http.Json; #else using System.Text; #endif -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Client; /// /// The Streamable HTTP client transport implementation diff --git a/src/ModelContextProtocol/Configuration/DefaultMcpServerBuilder.cs b/src/ModelContextProtocol/Configuration/DefaultMcpServerBuilder.cs index 7c235cab7..d59009176 100644 --- a/src/ModelContextProtocol/Configuration/DefaultMcpServerBuilder.cs +++ b/src/ModelContextProtocol/Configuration/DefaultMcpServerBuilder.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Utils; +using ModelContextProtocol; namespace Microsoft.Extensions.DependencyInjection; diff --git a/src/ModelContextProtocol/Configuration/McpServerBuilderExtensions.cs b/src/ModelContextProtocol/Configuration/McpServerBuilderExtensions.cs index 3e8ca585b..95da6b7a9 100644 --- a/src/ModelContextProtocol/Configuration/McpServerBuilderExtensions.cs +++ b/src/ModelContextProtocol/Configuration/McpServerBuilderExtensions.cs @@ -1,11 +1,9 @@ using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using ModelContextProtocol.Hosting; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils; using System.Diagnostics.CodeAnalysis; using System.Reflection; using System.Text.Json; diff --git a/src/ModelContextProtocol/Configuration/McpServerOptionsSetup.cs b/src/ModelContextProtocol/Configuration/McpServerOptionsSetup.cs index dc7401053..7a8578693 100644 --- a/src/ModelContextProtocol/Configuration/McpServerOptionsSetup.cs +++ b/src/ModelContextProtocol/Configuration/McpServerOptionsSetup.cs @@ -1,6 +1,6 @@ -using ModelContextProtocol.Server; using Microsoft.Extensions.Options; -using ModelContextProtocol.Utils; +using ModelContextProtocol; +using ModelContextProtocol.Server; namespace Microsoft.Extensions.DependencyInjection; diff --git a/src/ModelContextProtocol/Configuration/McpServerServiceCollectionExtensions.cs b/src/ModelContextProtocol/Configuration/McpServerServiceCollectionExtensions.cs index f5c9d182c..faf4a3963 100644 --- a/src/ModelContextProtocol/Configuration/McpServerServiceCollectionExtensions.cs +++ b/src/ModelContextProtocol/Configuration/McpServerServiceCollectionExtensions.cs @@ -1,6 +1,6 @@ -using ModelContextProtocol.Server; -using Microsoft.Extensions.Options; using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Options; +using ModelContextProtocol.Server; namespace Microsoft.Extensions.DependencyInjection; diff --git a/src/ModelContextProtocol/CustomizableJsonStringEnumConverter.cs b/src/ModelContextProtocol/CustomizableJsonStringEnumConverter.cs new file mode 100644 index 000000000..87bb430df --- /dev/null +++ b/src/ModelContextProtocol/CustomizableJsonStringEnumConverter.cs @@ -0,0 +1,100 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; +#if !NET9_0_OR_GREATER +using System.Reflection; +using System.Text.Json; +#endif +using System.Text.Json.Serialization; +#if !NET9_0_OR_GREATER +using ModelContextProtocol; +#endif + +// NOTE: +// This is a workaround for lack of System.Text.Json's JsonStringEnumConverter +// 9.x support for JsonStringEnumMemberNameAttribute. Once all builds use the System.Text.Json 9.x +// version, this whole file can be removed. Note that the type is public so that external source +// generators can use it, so removing it is a potential breaking change. + +namespace ModelContextProtocol +{ + /// + /// A JSON converter for enums that allows customizing the serialized string value of enum members + /// using the . + /// + /// The enum type to convert. + /// + /// This is a temporary workaround for lack of System.Text.Json's JsonStringEnumConverter<T> + /// 9.x support for custom enum member naming. It will be replaced by the built-in functionality + /// once .NET 9 is fully adopted. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public sealed class CustomizableJsonStringEnumConverter<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] TEnum> : + JsonStringEnumConverter where TEnum : struct, Enum + { +#if !NET9_0_OR_GREATER + /// + /// Initializes a new instance of the class. + /// + /// + /// The converter automatically detects any enum members decorated with + /// and uses those values during serialization and deserialization. + /// + public CustomizableJsonStringEnumConverter() : + base(namingPolicy: ResolveNamingPolicy()) + { + } + + private static JsonNamingPolicy? ResolveNamingPolicy() + { + var map = typeof(TEnum).GetFields(BindingFlags.Public | BindingFlags.Static) + .Select(f => (f.Name, AttributeName: f.GetCustomAttribute()?.Name)) + .Where(pair => pair.AttributeName != null) + .ToDictionary(pair => pair.Name, pair => pair.AttributeName); + + return map.Count > 0 ? new EnumMemberNamingPolicy(map!) : null; + } + + private sealed class EnumMemberNamingPolicy(Dictionary map) : JsonNamingPolicy + { + public override string ConvertName(string name) => + map.TryGetValue(name, out string? newName) ? + newName : + name; + } +#endif + } +} + +#if !NET9_0_OR_GREATER +namespace System.Text.Json.Serialization +{ + /// + /// Determines the custom string value that should be used when serializing an enum member using JSON. + /// + /// + /// This attribute is a temporary workaround for lack of System.Text.Json's support for custom enum member naming + /// in versions prior to .NET 9. It works together with + /// to provide customized string representations of enum values during JSON serialization and deserialization. + /// + [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] + internal sealed class JsonStringEnumMemberNameAttribute : Attribute + { + /// + /// Creates new attribute instance with a specified enum member name. + /// + /// The name to apply to the current enum member when serialized to JSON. + public JsonStringEnumMemberNameAttribute(string name) + { + Name = name; + } + + /// + /// Gets the custom JSON name of the enum member. + /// + public string Name { get; } + } +} +#endif \ No newline at end of file diff --git a/src/ModelContextProtocol/Diagnostics.cs b/src/ModelContextProtocol/Diagnostics.cs index d4d0ef579..9ee2d06a9 100644 --- a/src/ModelContextProtocol/Diagnostics.cs +++ b/src/ModelContextProtocol/Diagnostics.cs @@ -1,8 +1,8 @@ -using System.Diagnostics; +using ModelContextProtocol.Protocol; +using System.Diagnostics; using System.Diagnostics.Metrics; using System.Text.Json; using System.Text.Json.Nodes; -using ModelContextProtocol.Protocol.Messages; namespace ModelContextProtocol; diff --git a/src/ModelContextProtocol/IMcpEndpoint.cs b/src/ModelContextProtocol/IMcpEndpoint.cs index f64313677..a38b8c97c 100644 --- a/src/ModelContextProtocol/IMcpEndpoint.cs +++ b/src/ModelContextProtocol/IMcpEndpoint.cs @@ -1,5 +1,5 @@ using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; namespace ModelContextProtocol; diff --git a/src/ModelContextProtocol/Shared/McpEndpoint.cs b/src/ModelContextProtocol/McpEndpoint.cs similarity index 96% rename from src/ModelContextProtocol/Shared/McpEndpoint.cs rename to src/ModelContextProtocol/McpEndpoint.cs index 0e709d0fc..0d0ccbb98 100644 --- a/src/ModelContextProtocol/Shared/McpEndpoint.cs +++ b/src/ModelContextProtocol/McpEndpoint.cs @@ -1,13 +1,11 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils; using System.Diagnostics.CodeAnalysis; using System.Reflection; -namespace ModelContextProtocol.Shared; +namespace ModelContextProtocol; /// /// Base class for an MCP JSON-RPC endpoint. This covers both MCP clients and servers. diff --git a/src/ModelContextProtocol/McpEndpointExtensions.cs b/src/ModelContextProtocol/McpEndpointExtensions.cs index d501d34dc..300433e0a 100644 --- a/src/ModelContextProtocol/McpEndpointExtensions.cs +++ b/src/ModelContextProtocol/McpEndpointExtensions.cs @@ -1,8 +1,6 @@ using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; using System.Text.Json; using System.Text.Json.Nodes; using System.Text.Json.Serialization.Metadata; diff --git a/src/ModelContextProtocol/Utils/Json/McpJsonUtilities.cs b/src/ModelContextProtocol/McpJsonUtilities.cs similarity index 98% rename from src/ModelContextProtocol/Utils/Json/McpJsonUtilities.cs rename to src/ModelContextProtocol/McpJsonUtilities.cs index 625b558f7..ca9748437 100644 --- a/src/ModelContextProtocol/Utils/Json/McpJsonUtilities.cs +++ b/src/ModelContextProtocol/McpJsonUtilities.cs @@ -1,12 +1,11 @@ using Microsoft.Extensions.AI; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using System.Diagnostics.CodeAnalysis; using System.Text.Json; using System.Text.Json.Serialization; using System.Text.Json.Serialization.Metadata; -namespace ModelContextProtocol.Utils.Json; +namespace ModelContextProtocol; /// Provides a collection of utility methods for working with JSON data in the context of MCP. public static partial class McpJsonUtilities diff --git a/src/ModelContextProtocol/Shared/McpSession.cs b/src/ModelContextProtocol/McpSession.cs similarity index 99% rename from src/ModelContextProtocol/Shared/McpSession.cs rename to src/ModelContextProtocol/McpSession.cs index ab93efd21..248538c3a 100644 --- a/src/ModelContextProtocol/Shared/McpSession.cs +++ b/src/ModelContextProtocol/McpSession.cs @@ -1,9 +1,8 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Client; +using ModelContextProtocol.Protocol; +using ModelContextProtocol.Server; using System.Collections.Concurrent; using System.Diagnostics; using System.Diagnostics.Metrics; @@ -13,7 +12,7 @@ using System.Threading.Channels; #endif -namespace ModelContextProtocol.Shared; +namespace ModelContextProtocol; /// /// Class for managing an MCP JSON-RPC session. This covers both MCP clients and servers. diff --git a/src/ModelContextProtocol/ModelContextProtocol.csproj b/src/ModelContextProtocol/ModelContextProtocol.csproj index c42d76533..cdb48e14d 100644 --- a/src/ModelContextProtocol/ModelContextProtocol.csproj +++ b/src/ModelContextProtocol/ModelContextProtocol.csproj @@ -15,7 +15,7 @@ - + diff --git a/src/ModelContextProtocol/Shared/NotificationHandlers.cs b/src/ModelContextProtocol/NotificationHandlers.cs similarity index 99% rename from src/ModelContextProtocol/Shared/NotificationHandlers.cs rename to src/ModelContextProtocol/NotificationHandlers.cs index 8e315ce09..4b9520730 100644 --- a/src/ModelContextProtocol/Shared/NotificationHandlers.cs +++ b/src/ModelContextProtocol/NotificationHandlers.cs @@ -1,7 +1,7 @@ -using ModelContextProtocol.Protocol.Messages; +using ModelContextProtocol.Protocol; using System.Diagnostics; -namespace ModelContextProtocol.Shared; +namespace ModelContextProtocol; /// Provides thread-safe storage for notification handlers. internal sealed class NotificationHandlers diff --git a/src/ModelContextProtocol/Utils/ProcessHelper.cs b/src/ModelContextProtocol/ProcessHelper.cs similarity index 99% rename from src/ModelContextProtocol/Utils/ProcessHelper.cs rename to src/ModelContextProtocol/ProcessHelper.cs index 151292ba8..7bfe99ab4 100644 --- a/src/ModelContextProtocol/Utils/ProcessHelper.cs +++ b/src/ModelContextProtocol/ProcessHelper.cs @@ -1,7 +1,7 @@ using System.Diagnostics; using System.Runtime.InteropServices; -namespace ModelContextProtocol.Utils; +namespace ModelContextProtocol; /// /// Helper class for working with processes. diff --git a/src/ModelContextProtocol/Protocol/Types/Annotations.cs b/src/ModelContextProtocol/Protocol/Annotations.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Types/Annotations.cs rename to src/ModelContextProtocol/Protocol/Annotations.cs index 646e8712c..1e8874e89 100644 --- a/src/ModelContextProtocol/Protocol/Types/Annotations.cs +++ b/src/ModelContextProtocol/Protocol/Annotations.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents annotations that can be attached to content, resources, and resource templates. diff --git a/src/ModelContextProtocol/Protocol/Types/Argument.cs b/src/ModelContextProtocol/Protocol/Argument.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Types/Argument.cs rename to src/ModelContextProtocol/Protocol/Argument.cs index 4a7b2ba03..ad003f44d 100644 --- a/src/ModelContextProtocol/Protocol/Types/Argument.cs +++ b/src/ModelContextProtocol/Protocol/Argument.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents an argument used in completion requests to provide context for auto-completion functionality. diff --git a/src/ModelContextProtocol/Protocol/Types/BlobResourceContents.cs b/src/ModelContextProtocol/Protocol/BlobResourceContents.cs similarity index 96% rename from src/ModelContextProtocol/Protocol/Types/BlobResourceContents.cs rename to src/ModelContextProtocol/Protocol/BlobResourceContents.cs index ce0b91c9d..a15e0bdaf 100644 --- a/src/ModelContextProtocol/Protocol/Types/BlobResourceContents.cs +++ b/src/ModelContextProtocol/Protocol/BlobResourceContents.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the binary contents of a resource in the Model Context Protocol. diff --git a/src/ModelContextProtocol/Protocol/Types/CallToolRequestParams.cs b/src/ModelContextProtocol/Protocol/CallToolRequestParams.cs similarity index 92% rename from src/ModelContextProtocol/Protocol/Types/CallToolRequestParams.cs rename to src/ModelContextProtocol/Protocol/CallToolRequestParams.cs index ee6778eb6..81e8d4f49 100644 --- a/src/ModelContextProtocol/Protocol/Types/CallToolRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/CallToolRequestParams.cs @@ -1,8 +1,7 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a request from a client to invoke a tool provided by the server. diff --git a/src/ModelContextProtocol/Protocol/Types/CallToolResponse.cs b/src/ModelContextProtocol/Protocol/CallToolResponse.cs similarity index 94% rename from src/ModelContextProtocol/Protocol/Types/CallToolResponse.cs rename to src/ModelContextProtocol/Protocol/CallToolResponse.cs index 265194ce0..0e83ef1b1 100644 --- a/src/ModelContextProtocol/Protocol/Types/CallToolResponse.cs +++ b/src/ModelContextProtocol/Protocol/CallToolResponse.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the result of a request from a client to invoke a tool provided by the server. diff --git a/src/ModelContextProtocol/Protocol/Messages/CancelledNotification.cs b/src/ModelContextProtocol/Protocol/CancelledNotification.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Messages/CancelledNotification.cs rename to src/ModelContextProtocol/Protocol/CancelledNotification.cs index 532c5fa22..546e03aaa 100644 --- a/src/ModelContextProtocol/Protocol/Messages/CancelledNotification.cs +++ b/src/ModelContextProtocol/Protocol/CancelledNotification.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// Represents a notification indicating that a request has been cancelled by the client, diff --git a/src/ModelContextProtocol/Protocol/Types/ClientCapabilities.cs b/src/ModelContextProtocol/Protocol/ClientCapabilities.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Types/ClientCapabilities.cs rename to src/ModelContextProtocol/Protocol/ClientCapabilities.cs index 3579232d8..050d1336f 100644 --- a/src/ModelContextProtocol/Protocol/Types/ClientCapabilities.cs +++ b/src/ModelContextProtocol/Protocol/ClientCapabilities.cs @@ -1,8 +1,7 @@ -using ModelContextProtocol.Protocol.Messages; using ModelContextProtocol.Server; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the capabilities that a client may support. diff --git a/src/ModelContextProtocol/Protocol/Types/CompleteRequestParams.cs b/src/ModelContextProtocol/Protocol/CompleteRequestParams.cs similarity index 93% rename from src/ModelContextProtocol/Protocol/Types/CompleteRequestParams.cs rename to src/ModelContextProtocol/Protocol/CompleteRequestParams.cs index 7ca991dc3..a64d2a557 100644 --- a/src/ModelContextProtocol/Protocol/Types/CompleteRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/CompleteRequestParams.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a request from diff --git a/src/ModelContextProtocol/Protocol/Types/CompleteResult.cs b/src/ModelContextProtocol/Protocol/CompleteResult.cs similarity index 94% rename from src/ModelContextProtocol/Protocol/Types/CompleteResult.cs rename to src/ModelContextProtocol/Protocol/CompleteResult.cs index 4ac6f1407..dd28de551 100644 --- a/src/ModelContextProtocol/Protocol/Types/CompleteResult.cs +++ b/src/ModelContextProtocol/Protocol/CompleteResult.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the server's response to a request, diff --git a/src/ModelContextProtocol/Protocol/Types/Completion.cs b/src/ModelContextProtocol/Protocol/Completion.cs similarity index 93% rename from src/ModelContextProtocol/Protocol/Types/Completion.cs rename to src/ModelContextProtocol/Protocol/Completion.cs index ecf927d90..029dac3e1 100644 --- a/src/ModelContextProtocol/Protocol/Types/Completion.cs +++ b/src/ModelContextProtocol/Protocol/Completion.cs @@ -1,8 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; - using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a completion object in the server's response to a request. diff --git a/src/ModelContextProtocol/Protocol/Types/CompletionsCapability.cs b/src/ModelContextProtocol/Protocol/CompletionsCapability.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Types/CompletionsCapability.cs rename to src/ModelContextProtocol/Protocol/CompletionsCapability.cs index 70dc460fe..4ba8a4c80 100644 --- a/src/ModelContextProtocol/Protocol/Types/CompletionsCapability.cs +++ b/src/ModelContextProtocol/Protocol/CompletionsCapability.cs @@ -1,7 +1,7 @@ using ModelContextProtocol.Server; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the completions capability for providing auto-completion suggestions diff --git a/src/ModelContextProtocol/Protocol/Types/Content.cs b/src/ModelContextProtocol/Protocol/Content.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Types/Content.cs rename to src/ModelContextProtocol/Protocol/Content.cs index 0ca1fbfe5..d0cdaaa8e 100644 --- a/src/ModelContextProtocol/Protocol/Types/Content.cs +++ b/src/ModelContextProtocol/Protocol/Content.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents content within the Model Context Protocol (MCP) that can contain text, binary data, or references to resources. diff --git a/src/ModelContextProtocol/Protocol/Types/ContextInclusion.cs b/src/ModelContextProtocol/Protocol/ContextInclusion.cs similarity index 87% rename from src/ModelContextProtocol/Protocol/Types/ContextInclusion.cs rename to src/ModelContextProtocol/Protocol/ContextInclusion.cs index e10791ecf..f6ec267ba 100644 --- a/src/ModelContextProtocol/Protocol/Types/ContextInclusion.cs +++ b/src/ModelContextProtocol/Protocol/ContextInclusion.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Utils.Json; -using System.Text.Json.Serialization; +using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Specifies the context inclusion options for a request in the Model Context Protocol (MCP). diff --git a/src/ModelContextProtocol/Protocol/Types/CreateMessageRequestParams.cs b/src/ModelContextProtocol/Protocol/CreateMessageRequestParams.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Types/CreateMessageRequestParams.cs rename to src/ModelContextProtocol/Protocol/CreateMessageRequestParams.cs index bb7cd8a66..a2418e14e 100644 --- a/src/ModelContextProtocol/Protocol/Types/CreateMessageRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/CreateMessageRequestParams.cs @@ -1,8 +1,7 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a diff --git a/src/ModelContextProtocol/Protocol/Types/CreateMessageResult.cs b/src/ModelContextProtocol/Protocol/CreateMessageResult.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Types/CreateMessageResult.cs rename to src/ModelContextProtocol/Protocol/CreateMessageResult.cs index 4ae689091..190c1dd53 100644 --- a/src/ModelContextProtocol/Protocol/Types/CreateMessageResult.cs +++ b/src/ModelContextProtocol/Protocol/CreateMessageResult.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a client's response to a from the server. diff --git a/src/ModelContextProtocol/Protocol/Types/EmptyResult.cs b/src/ModelContextProtocol/Protocol/EmptyResult.cs similarity index 87% rename from src/ModelContextProtocol/Protocol/Types/EmptyResult.cs rename to src/ModelContextProtocol/Protocol/EmptyResult.cs index 402472b3c..2c9bfc092 100644 --- a/src/ModelContextProtocol/Protocol/Types/EmptyResult.cs +++ b/src/ModelContextProtocol/Protocol/EmptyResult.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents an empty result object for operations that need to indicate successful completion diff --git a/src/ModelContextProtocol/Protocol/Types/GetPromptRequestParams.cs b/src/ModelContextProtocol/Protocol/GetPromptRequestParams.cs similarity index 93% rename from src/ModelContextProtocol/Protocol/Types/GetPromptRequestParams.cs rename to src/ModelContextProtocol/Protocol/GetPromptRequestParams.cs index f1cb53af1..52d82773c 100644 --- a/src/ModelContextProtocol/Protocol/Types/GetPromptRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/GetPromptRequestParams.cs @@ -1,8 +1,7 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a request from a client to get a prompt provided by a server. diff --git a/src/ModelContextProtocol/Protocol/Types/GetPromptResult.cs b/src/ModelContextProtocol/Protocol/GetPromptResult.cs similarity index 94% rename from src/ModelContextProtocol/Protocol/Types/GetPromptResult.cs rename to src/ModelContextProtocol/Protocol/GetPromptResult.cs index 3a80290d4..bf6f75a14 100644 --- a/src/ModelContextProtocol/Protocol/Types/GetPromptResult.cs +++ b/src/ModelContextProtocol/Protocol/GetPromptResult.cs @@ -1,8 +1,7 @@ -using ModelContextProtocol.Protocol.Messages; using Microsoft.Extensions.AI; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a server's response to a request from the client. diff --git a/src/ModelContextProtocol/Protocol/Transport/ITransport.cs b/src/ModelContextProtocol/Protocol/ITransport.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Transport/ITransport.cs rename to src/ModelContextProtocol/Protocol/ITransport.cs index b8cb7e3bb..4fc36e96b 100644 --- a/src/ModelContextProtocol/Protocol/Transport/ITransport.cs +++ b/src/ModelContextProtocol/Protocol/ITransport.cs @@ -1,9 +1,8 @@ -using System.Threading.Channels; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; using ModelContextProtocol.Server; +using System.Threading.Channels; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Protocol; /// /// Represents a transport mechanism for MCP (Model Context Protocol) communication between clients and servers. diff --git a/src/ModelContextProtocol/Protocol/Types/Implementation.cs b/src/ModelContextProtocol/Protocol/Implementation.cs similarity index 96% rename from src/ModelContextProtocol/Protocol/Types/Implementation.cs rename to src/ModelContextProtocol/Protocol/Implementation.cs index b1252a49a..7ebec95c9 100644 --- a/src/ModelContextProtocol/Protocol/Types/Implementation.cs +++ b/src/ModelContextProtocol/Protocol/Implementation.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Provides the name and version of an MCP implementation. diff --git a/src/ModelContextProtocol/Protocol/Types/InitializeRequestParams.cs b/src/ModelContextProtocol/Protocol/InitializeRequestParams.cs similarity index 96% rename from src/ModelContextProtocol/Protocol/Types/InitializeRequestParams.cs rename to src/ModelContextProtocol/Protocol/InitializeRequestParams.cs index 436a1f4ef..5af4d0787 100644 --- a/src/ModelContextProtocol/Protocol/Types/InitializeRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/InitializeRequestParams.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a request sent by a client to a server during the protocol handshake. diff --git a/src/ModelContextProtocol/Protocol/Types/InitializeResult.cs b/src/ModelContextProtocol/Protocol/InitializeResult.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Types/InitializeResult.cs rename to src/ModelContextProtocol/Protocol/InitializeResult.cs index 14204c925..8427deee8 100644 --- a/src/ModelContextProtocol/Protocol/Types/InitializeResult.cs +++ b/src/ModelContextProtocol/Protocol/InitializeResult.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the result of a request sent to the server during connection establishment. diff --git a/src/ModelContextProtocol/Protocol/Messages/JsonRpcError.cs b/src/ModelContextProtocol/Protocol/JsonRpcError.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Messages/JsonRpcError.cs rename to src/ModelContextProtocol/Protocol/JsonRpcError.cs index 1109e647b..2229634db 100644 --- a/src/ModelContextProtocol/Protocol/Messages/JsonRpcError.cs +++ b/src/ModelContextProtocol/Protocol/JsonRpcError.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// Represents an error response message in the JSON-RPC protocol. diff --git a/src/ModelContextProtocol/Protocol/Messages/JsonRpcErrorDetail.cs b/src/ModelContextProtocol/Protocol/JsonRpcErrorDetail.cs similarity index 96% rename from src/ModelContextProtocol/Protocol/Messages/JsonRpcErrorDetail.cs rename to src/ModelContextProtocol/Protocol/JsonRpcErrorDetail.cs index d9ac73dbf..e2ff0e66d 100644 --- a/src/ModelContextProtocol/Protocol/Messages/JsonRpcErrorDetail.cs +++ b/src/ModelContextProtocol/Protocol/JsonRpcErrorDetail.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// Represents detailed error information for JSON-RPC error responses. diff --git a/src/ModelContextProtocol/Protocol/JsonRpcMessage.cs b/src/ModelContextProtocol/Protocol/JsonRpcMessage.cs new file mode 100644 index 000000000..fde41507f --- /dev/null +++ b/src/ModelContextProtocol/Protocol/JsonRpcMessage.cs @@ -0,0 +1,139 @@ +using System.ComponentModel; +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace ModelContextProtocol.Protocol; + +/// +/// Represents any JSON-RPC message used in the Model Context Protocol (MCP). +/// +/// +/// This interface serves as the foundation for all message types in the JSON-RPC 2.0 protocol +/// used by MCP, including requests, responses, notifications, and errors. JSON-RPC is a stateless, +/// lightweight remote procedure call (RPC) protocol that uses JSON as its data format. +/// +[JsonConverter(typeof(Converter))] +public abstract class JsonRpcMessage +{ + /// + /// Gets the JSON-RPC protocol version used. + /// + /// + [JsonPropertyName("jsonrpc")] + public string JsonRpc { get; init; } = "2.0"; + + /// + /// Gets or sets the transport the was received on or should be sent over. + /// + /// + /// This is used to support the Streamable HTTP transport where the specification states that the server + /// SHOULD include JSON-RPC responses in the HTTP response body for the POST request containing + /// the corresponding JSON-RPC request. It may be for other transports. + /// + [JsonIgnore] + public ITransport? RelatedTransport { get; set; } + + /// + /// Provides a for messages, + /// handling polymorphic deserialization of different message types. + /// + /// + /// + /// This converter is responsible for correctly deserializing JSON-RPC messages into their appropriate + /// concrete types based on the message structure. It analyzes the JSON payload and determines if it + /// represents a request, notification, successful response, or error response. + /// + /// + /// The type determination rules follow the JSON-RPC 2.0 specification: + /// + /// Messages with "method" and "id" properties are deserialized as . + /// Messages with "method" but no "id" property are deserialized as . + /// Messages with "id" and "result" properties are deserialized as . + /// Messages with "id" and "error" properties are deserialized as . + /// + /// + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public sealed class Converter : JsonConverter + { + /// + public override JsonRpcMessage? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + if (reader.TokenType != JsonTokenType.StartObject) + { + throw new JsonException("Expected StartObject token"); + } + + using var doc = JsonDocument.ParseValue(ref reader); + var root = doc.RootElement; + + // All JSON-RPC messages must have a jsonrpc property with value "2.0" + if (!root.TryGetProperty("jsonrpc", out var versionProperty) || + versionProperty.GetString() != "2.0") + { + throw new JsonException("Invalid or missing jsonrpc version"); + } + + // Determine the message type based on the presence of id, method, and error properties + bool hasId = root.TryGetProperty("id", out _); + bool hasMethod = root.TryGetProperty("method", out _); + bool hasError = root.TryGetProperty("error", out _); + + var rawText = root.GetRawText(); + + // Messages with an id but no method are responses + if (hasId && !hasMethod) + { + // Messages with an error property are error responses + if (hasError) + { + return JsonSerializer.Deserialize(rawText, options.GetTypeInfo()); + } + + // Messages with a result property are success responses + if (root.TryGetProperty("result", out _)) + { + return JsonSerializer.Deserialize(rawText, options.GetTypeInfo()); + } + + throw new JsonException("Response must have either result or error"); + } + + // Messages with a method but no id are notifications + if (hasMethod && !hasId) + { + return JsonSerializer.Deserialize(rawText, options.GetTypeInfo()); + } + + // Messages with both method and id are requests + if (hasMethod && hasId) + { + return JsonSerializer.Deserialize(rawText, options.GetTypeInfo()); + } + + throw new JsonException("Invalid JSON-RPC message format"); + } + + /// + public override void Write(Utf8JsonWriter writer, JsonRpcMessage value, JsonSerializerOptions options) + { + switch (value) + { + case JsonRpcRequest request: + JsonSerializer.Serialize(writer, request, options.GetTypeInfo()); + break; + case JsonRpcNotification notification: + JsonSerializer.Serialize(writer, notification, options.GetTypeInfo()); + break; + case JsonRpcResponse response: + JsonSerializer.Serialize(writer, response, options.GetTypeInfo()); + break; + case JsonRpcError error: + JsonSerializer.Serialize(writer, error, options.GetTypeInfo()); + break; + default: + throw new JsonException($"Unknown JSON-RPC message type: {value.GetType()}"); + } + } + } +} diff --git a/src/ModelContextProtocol/Protocol/Messages/JsonRpcMessageWithId.cs b/src/ModelContextProtocol/Protocol/JsonRpcMessageWithId.cs similarity index 94% rename from src/ModelContextProtocol/Protocol/Messages/JsonRpcMessageWithId.cs rename to src/ModelContextProtocol/Protocol/JsonRpcMessageWithId.cs index f095c50bc..b08261934 100644 --- a/src/ModelContextProtocol/Protocol/Messages/JsonRpcMessageWithId.cs +++ b/src/ModelContextProtocol/Protocol/JsonRpcMessageWithId.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// Represents a JSON-RPC message used in the Model Context Protocol (MCP) and that includes an ID. diff --git a/src/ModelContextProtocol/Protocol/Messages/JsonRpcNotification.cs b/src/ModelContextProtocol/Protocol/JsonRpcNotification.cs similarity index 94% rename from src/ModelContextProtocol/Protocol/Messages/JsonRpcNotification.cs rename to src/ModelContextProtocol/Protocol/JsonRpcNotification.cs index bdbd8d46f..93d8f4085 100644 --- a/src/ModelContextProtocol/Protocol/Messages/JsonRpcNotification.cs +++ b/src/ModelContextProtocol/Protocol/JsonRpcNotification.cs @@ -1,7 +1,7 @@ using System.Text.Json.Nodes; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// Represents a notification message in the JSON-RPC protocol. diff --git a/src/ModelContextProtocol/Protocol/Messages/JsonRpcRequest.cs b/src/ModelContextProtocol/Protocol/JsonRpcRequest.cs similarity index 96% rename from src/ModelContextProtocol/Protocol/Messages/JsonRpcRequest.cs rename to src/ModelContextProtocol/Protocol/JsonRpcRequest.cs index 6e356cf26..70072dee2 100644 --- a/src/ModelContextProtocol/Protocol/Messages/JsonRpcRequest.cs +++ b/src/ModelContextProtocol/Protocol/JsonRpcRequest.cs @@ -1,7 +1,7 @@ using System.Text.Json.Nodes; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// A request message in the JSON-RPC protocol. diff --git a/src/ModelContextProtocol/Protocol/Messages/JsonRpcResponse.cs b/src/ModelContextProtocol/Protocol/JsonRpcResponse.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Messages/JsonRpcResponse.cs rename to src/ModelContextProtocol/Protocol/JsonRpcResponse.cs index 01eef51e9..098db1372 100644 --- a/src/ModelContextProtocol/Protocol/Messages/JsonRpcResponse.cs +++ b/src/ModelContextProtocol/Protocol/JsonRpcResponse.cs @@ -1,7 +1,7 @@ using System.Text.Json.Nodes; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// A successful response message in the JSON-RPC protocol. diff --git a/src/ModelContextProtocol/Protocol/Types/ListPromptsRequestParams.cs b/src/ModelContextProtocol/Protocol/ListPromptsRequestParams.cs similarity index 84% rename from src/ModelContextProtocol/Protocol/Types/ListPromptsRequestParams.cs rename to src/ModelContextProtocol/Protocol/ListPromptsRequestParams.cs index dd259bf57..7202ef2d2 100644 --- a/src/ModelContextProtocol/Protocol/Types/ListPromptsRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/ListPromptsRequestParams.cs @@ -1,6 +1,4 @@ -using ModelContextProtocol.Protocol.Messages; - -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a request from a client to request diff --git a/src/ModelContextProtocol/Protocol/Types/ListPromptsResult.cs b/src/ModelContextProtocol/Protocol/ListPromptsResult.cs similarity index 92% rename from src/ModelContextProtocol/Protocol/Types/ListPromptsResult.cs rename to src/ModelContextProtocol/Protocol/ListPromptsResult.cs index ce31396df..65b9e7c99 100644 --- a/src/ModelContextProtocol/Protocol/Types/ListPromptsResult.cs +++ b/src/ModelContextProtocol/Protocol/ListPromptsResult.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a server's response to a request from the client, containing available prompts. diff --git a/src/ModelContextProtocol/Protocol/Types/ListResourceTemplatesRequestParams.cs b/src/ModelContextProtocol/Protocol/ListResourceTemplatesRequestParams.cs similarity index 85% rename from src/ModelContextProtocol/Protocol/Types/ListResourceTemplatesRequestParams.cs rename to src/ModelContextProtocol/Protocol/ListResourceTemplatesRequestParams.cs index 8a323c310..0418b8ce2 100644 --- a/src/ModelContextProtocol/Protocol/Types/ListResourceTemplatesRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/ListResourceTemplatesRequestParams.cs @@ -1,6 +1,4 @@ -using ModelContextProtocol.Protocol.Messages; - -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a request from a client to request diff --git a/src/ModelContextProtocol/Protocol/Types/ListResourceTemplatesResult.cs b/src/ModelContextProtocol/Protocol/ListResourceTemplatesResult.cs similarity index 94% rename from src/ModelContextProtocol/Protocol/Types/ListResourceTemplatesResult.cs rename to src/ModelContextProtocol/Protocol/ListResourceTemplatesResult.cs index 820160f0d..9b2bce032 100644 --- a/src/ModelContextProtocol/Protocol/Types/ListResourceTemplatesResult.cs +++ b/src/ModelContextProtocol/Protocol/ListResourceTemplatesResult.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a server's response to a request from the client, diff --git a/src/ModelContextProtocol/Protocol/Types/ListResourcesRequestParams.cs b/src/ModelContextProtocol/Protocol/ListResourcesRequestParams.cs similarity index 84% rename from src/ModelContextProtocol/Protocol/Types/ListResourcesRequestParams.cs rename to src/ModelContextProtocol/Protocol/ListResourcesRequestParams.cs index b31a8b36c..05e7fc264 100644 --- a/src/ModelContextProtocol/Protocol/Types/ListResourcesRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/ListResourcesRequestParams.cs @@ -1,6 +1,4 @@ -using ModelContextProtocol.Protocol.Messages; - -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a request from a client to request diff --git a/src/ModelContextProtocol/Protocol/Types/ListResourcesResult.cs b/src/ModelContextProtocol/Protocol/ListResourcesResult.cs similarity index 92% rename from src/ModelContextProtocol/Protocol/Types/ListResourcesResult.cs rename to src/ModelContextProtocol/Protocol/ListResourcesResult.cs index f982e78ed..9e50b54ee 100644 --- a/src/ModelContextProtocol/Protocol/Types/ListResourcesResult.cs +++ b/src/ModelContextProtocol/Protocol/ListResourcesResult.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a server's response to a request from the client, containing available resources. diff --git a/src/ModelContextProtocol/Protocol/Types/ListRootsRequestParams.cs b/src/ModelContextProtocol/Protocol/ListRootsRequestParams.cs similarity index 84% rename from src/ModelContextProtocol/Protocol/Types/ListRootsRequestParams.cs rename to src/ModelContextProtocol/Protocol/ListRootsRequestParams.cs index 630eb312f..b0911daa8 100644 --- a/src/ModelContextProtocol/Protocol/Types/ListRootsRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/ListRootsRequestParams.cs @@ -1,6 +1,4 @@ -using ModelContextProtocol.Protocol.Messages; - -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a request from a server to request diff --git a/src/ModelContextProtocol/Protocol/Types/ListRootsResult.cs b/src/ModelContextProtocol/Protocol/ListRootsResult.cs similarity index 93% rename from src/ModelContextProtocol/Protocol/Types/ListRootsResult.cs rename to src/ModelContextProtocol/Protocol/ListRootsResult.cs index 8928954c8..aad315b2f 100644 --- a/src/ModelContextProtocol/Protocol/Types/ListRootsResult.cs +++ b/src/ModelContextProtocol/Protocol/ListRootsResult.cs @@ -1,8 +1,7 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a client's response to a request from the server, diff --git a/src/ModelContextProtocol/Protocol/Types/ListToolsRequestParams.cs b/src/ModelContextProtocol/Protocol/ListToolsRequestParams.cs similarity index 84% rename from src/ModelContextProtocol/Protocol/Types/ListToolsRequestParams.cs rename to src/ModelContextProtocol/Protocol/ListToolsRequestParams.cs index 5acfb8ad5..0a32729ac 100644 --- a/src/ModelContextProtocol/Protocol/Types/ListToolsRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/ListToolsRequestParams.cs @@ -1,6 +1,4 @@ -using ModelContextProtocol.Protocol.Messages; - -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a request from a client to request diff --git a/src/ModelContextProtocol/Protocol/Types/ListToolsResult.cs b/src/ModelContextProtocol/Protocol/ListToolsResult.cs similarity index 92% rename from src/ModelContextProtocol/Protocol/Types/ListToolsResult.cs rename to src/ModelContextProtocol/Protocol/ListToolsResult.cs index 35e5bb25c..feef775e8 100644 --- a/src/ModelContextProtocol/Protocol/Types/ListToolsResult.cs +++ b/src/ModelContextProtocol/Protocol/ListToolsResult.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a server's response to a request from the client, containing available tools. diff --git a/src/ModelContextProtocol/Protocol/Types/LoggingCapability.cs b/src/ModelContextProtocol/Protocol/LoggingCapability.cs similarity index 94% rename from src/ModelContextProtocol/Protocol/Types/LoggingCapability.cs rename to src/ModelContextProtocol/Protocol/LoggingCapability.cs index a85740136..9cf62b667 100644 --- a/src/ModelContextProtocol/Protocol/Types/LoggingCapability.cs +++ b/src/ModelContextProtocol/Protocol/LoggingCapability.cs @@ -1,7 +1,7 @@ using ModelContextProtocol.Server; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the logging capability configuration for a Model Context Protocol server. diff --git a/src/ModelContextProtocol/Protocol/Types/LoggingLevel.cs b/src/ModelContextProtocol/Protocol/LoggingLevel.cs similarity index 92% rename from src/ModelContextProtocol/Protocol/Types/LoggingLevel.cs rename to src/ModelContextProtocol/Protocol/LoggingLevel.cs index 7bc43559e..55d0b6ea7 100644 --- a/src/ModelContextProtocol/Protocol/Types/LoggingLevel.cs +++ b/src/ModelContextProtocol/Protocol/LoggingLevel.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Utils.Json; -using System.Text.Json.Serialization; +using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Indicates the severity of a log message. diff --git a/src/ModelContextProtocol/Protocol/Types/LoggingMessageNotificationParams.cs b/src/ModelContextProtocol/Protocol/LoggingMessageNotificationParams.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Types/LoggingMessageNotificationParams.cs rename to src/ModelContextProtocol/Protocol/LoggingMessageNotificationParams.cs index b46e77be6..12b6006c0 100644 --- a/src/ModelContextProtocol/Protocol/Types/LoggingMessageNotificationParams.cs +++ b/src/ModelContextProtocol/Protocol/LoggingMessageNotificationParams.cs @@ -1,8 +1,7 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a diff --git a/src/ModelContextProtocol/Protocol/Messages/JsonRpcMessage.cs b/src/ModelContextProtocol/Protocol/Messages/JsonRpcMessage.cs deleted file mode 100644 index d307598f0..000000000 --- a/src/ModelContextProtocol/Protocol/Messages/JsonRpcMessage.cs +++ /dev/null @@ -1,35 +0,0 @@ -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Utils.Json; -using System.Text.Json.Serialization; - -namespace ModelContextProtocol.Protocol.Messages; - -/// -/// Represents any JSON-RPC message used in the Model Context Protocol (MCP). -/// -/// -/// This interface serves as the foundation for all message types in the JSON-RPC 2.0 protocol -/// used by MCP, including requests, responses, notifications, and errors. JSON-RPC is a stateless, -/// lightweight remote procedure call (RPC) protocol that uses JSON as its data format. -/// -[JsonConverter(typeof(JsonRpcMessageConverter))] -public abstract class JsonRpcMessage -{ - /// - /// Gets the JSON-RPC protocol version used. - /// - /// - [JsonPropertyName("jsonrpc")] - public string JsonRpc { get; init; } = "2.0"; - - /// - /// Gets or sets the transport the was received on or should be sent over. - /// - /// - /// This is used to support the Streamable HTTP transport where the specification states that the server - /// SHOULD include JSON-RPC responses in the HTTP response body for the POST request containing - /// the corresponding JSON-RPC request. It may be for other transports. - /// - [JsonIgnore] - public ITransport? RelatedTransport { get; set; } -} diff --git a/src/ModelContextProtocol/Protocol/Types/ModelHint.cs b/src/ModelContextProtocol/Protocol/ModelHint.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Types/ModelHint.cs rename to src/ModelContextProtocol/Protocol/ModelHint.cs index 7fd239c37..4ec929ef5 100644 --- a/src/ModelContextProtocol/Protocol/Types/ModelHint.cs +++ b/src/ModelContextProtocol/Protocol/ModelHint.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Provides hints to use for model selection. diff --git a/src/ModelContextProtocol/Protocol/Types/ModelPreferences.cs b/src/ModelContextProtocol/Protocol/ModelPreferences.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Types/ModelPreferences.cs rename to src/ModelContextProtocol/Protocol/ModelPreferences.cs index e569d8187..a91b3da6f 100644 --- a/src/ModelContextProtocol/Protocol/Types/ModelPreferences.cs +++ b/src/ModelContextProtocol/Protocol/ModelPreferences.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a server's preferences for model selection, requested of the client during sampling. diff --git a/src/ModelContextProtocol/Protocol/Messages/NotificationMethods.cs b/src/ModelContextProtocol/Protocol/NotificationMethods.cs similarity index 99% rename from src/ModelContextProtocol/Protocol/Messages/NotificationMethods.cs rename to src/ModelContextProtocol/Protocol/NotificationMethods.cs index bfae67b47..706968988 100644 --- a/src/ModelContextProtocol/Protocol/Messages/NotificationMethods.cs +++ b/src/ModelContextProtocol/Protocol/NotificationMethods.cs @@ -1,4 +1,4 @@ -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// Provides constants with the names of common notification methods used in the MCP protocol. diff --git a/src/ModelContextProtocol/Protocol/Types/PaginatedRequest.cs b/src/ModelContextProtocol/Protocol/PaginatedRequest.cs similarity index 89% rename from src/ModelContextProtocol/Protocol/Types/PaginatedRequest.cs rename to src/ModelContextProtocol/Protocol/PaginatedRequest.cs index a1a44d8c0..89b17398c 100644 --- a/src/ModelContextProtocol/Protocol/Types/PaginatedRequest.cs +++ b/src/ModelContextProtocol/Protocol/PaginatedRequest.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Provides a base class for paginated requests. diff --git a/src/ModelContextProtocol/Protocol/Messages/PaginatedResult.cs b/src/ModelContextProtocol/Protocol/PaginatedResult.cs similarity index 96% rename from src/ModelContextProtocol/Protocol/Messages/PaginatedResult.cs rename to src/ModelContextProtocol/Protocol/PaginatedResult.cs index 6fa606542..b1eb67bb2 100644 --- a/src/ModelContextProtocol/Protocol/Messages/PaginatedResult.cs +++ b/src/ModelContextProtocol/Protocol/PaginatedResult.cs @@ -1,4 +1,4 @@ -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// Provides a base class for result payloads that support cursor-based pagination. diff --git a/src/ModelContextProtocol/Protocol/Types/PingResult.cs b/src/ModelContextProtocol/Protocol/PingResult.cs similarity index 87% rename from src/ModelContextProtocol/Protocol/Types/PingResult.cs rename to src/ModelContextProtocol/Protocol/PingResult.cs index 96bcfda80..e00f12596 100644 --- a/src/ModelContextProtocol/Protocol/Types/PingResult.cs +++ b/src/ModelContextProtocol/Protocol/PingResult.cs @@ -1,6 +1,4 @@ -using ModelContextProtocol.Protocol.Messages; - -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the result of a request in the Model Context Protocol. diff --git a/src/ModelContextProtocol/Protocol/Messages/ProgressNotification.cs b/src/ModelContextProtocol/Protocol/ProgressNotification.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Messages/ProgressNotification.cs rename to src/ModelContextProtocol/Protocol/ProgressNotification.cs index 988085f3f..59643e4b0 100644 --- a/src/ModelContextProtocol/Protocol/Messages/ProgressNotification.cs +++ b/src/ModelContextProtocol/Protocol/ProgressNotification.cs @@ -2,7 +2,7 @@ using System.Text.Json; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// Represents an out-of-band notification used to inform the receiver of a progress update for a long-running request. diff --git a/src/ModelContextProtocol/Protocol/Messages/ProgressToken.cs b/src/ModelContextProtocol/Protocol/ProgressToken.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Messages/ProgressToken.cs rename to src/ModelContextProtocol/Protocol/ProgressToken.cs index ac5ceb184..f980bdf6f 100644 --- a/src/ModelContextProtocol/Protocol/Messages/ProgressToken.cs +++ b/src/ModelContextProtocol/Protocol/ProgressToken.cs @@ -1,10 +1,9 @@ -using ModelContextProtocol.Utils; using System.ComponentModel; using System.Globalization; using System.Text.Json; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// Represents a progress token, which can be either a string or an integer. diff --git a/src/ModelContextProtocol/Protocol/Types/Prompt.cs b/src/ModelContextProtocol/Protocol/Prompt.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Types/Prompt.cs rename to src/ModelContextProtocol/Protocol/Prompt.cs index c98b23dca..8e2139f21 100644 --- a/src/ModelContextProtocol/Protocol/Types/Prompt.cs +++ b/src/ModelContextProtocol/Protocol/Prompt.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a prompt that the server offers. diff --git a/src/ModelContextProtocol/Protocol/Types/PromptArgument.cs b/src/ModelContextProtocol/Protocol/PromptArgument.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Types/PromptArgument.cs rename to src/ModelContextProtocol/Protocol/PromptArgument.cs index c8f6165e0..a22bea948 100644 --- a/src/ModelContextProtocol/Protocol/Types/PromptArgument.cs +++ b/src/ModelContextProtocol/Protocol/PromptArgument.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents an argument that a prompt can accept for templating and customization. diff --git a/src/ModelContextProtocol/Protocol/Types/PromptMessage.cs b/src/ModelContextProtocol/Protocol/PromptMessage.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Types/PromptMessage.cs rename to src/ModelContextProtocol/Protocol/PromptMessage.cs index 30d02b1f8..c2dfd152d 100644 --- a/src/ModelContextProtocol/Protocol/Types/PromptMessage.cs +++ b/src/ModelContextProtocol/Protocol/PromptMessage.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.AI; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a message within the Model Context Protocol (MCP) system, used for communication between clients and AI models. diff --git a/src/ModelContextProtocol/Protocol/Types/PromptsCapability.cs b/src/ModelContextProtocol/Protocol/PromptsCapability.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Types/PromptsCapability.cs rename to src/ModelContextProtocol/Protocol/PromptsCapability.cs index 53aa8043f..79fe46625 100644 --- a/src/ModelContextProtocol/Protocol/Types/PromptsCapability.cs +++ b/src/ModelContextProtocol/Protocol/PromptsCapability.cs @@ -1,8 +1,7 @@ -using ModelContextProtocol.Protocol.Messages; using ModelContextProtocol.Server; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the server's capability to provide predefined prompt templates that clients can use. diff --git a/src/ModelContextProtocol/Protocol/Types/ReadResourceRequestParams.cs b/src/ModelContextProtocol/Protocol/ReadResourceRequestParams.cs similarity index 89% rename from src/ModelContextProtocol/Protocol/Types/ReadResourceRequestParams.cs rename to src/ModelContextProtocol/Protocol/ReadResourceRequestParams.cs index 17475f8cc..8b1f19485 100644 --- a/src/ModelContextProtocol/Protocol/Types/ReadResourceRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/ReadResourceRequestParams.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a request from a client to get a resource provided by a server. diff --git a/src/ModelContextProtocol/Protocol/Types/ReadResourceResult.cs b/src/ModelContextProtocol/Protocol/ReadResourceResult.cs similarity index 90% rename from src/ModelContextProtocol/Protocol/Types/ReadResourceResult.cs rename to src/ModelContextProtocol/Protocol/ReadResourceResult.cs index 92989a6b5..e5ae44b18 100644 --- a/src/ModelContextProtocol/Protocol/Types/ReadResourceResult.cs +++ b/src/ModelContextProtocol/Protocol/ReadResourceResult.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a server's response to a request from the client. diff --git a/src/ModelContextProtocol/Protocol/Types/Reference.cs b/src/ModelContextProtocol/Protocol/Reference.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Types/Reference.cs rename to src/ModelContextProtocol/Protocol/Reference.cs index 94d3006ae..4bbff1f9f 100644 --- a/src/ModelContextProtocol/Protocol/Types/Reference.cs +++ b/src/ModelContextProtocol/Protocol/Reference.cs @@ -1,8 +1,8 @@ +using ModelContextProtocol.Client; using System.Diagnostics.CodeAnalysis; using System.Text.Json.Serialization; -using ModelContextProtocol.Client; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a reference to a resource or prompt in the Model Context Protocol. diff --git a/src/ModelContextProtocol/Protocol/Messages/RequestId.cs b/src/ModelContextProtocol/Protocol/RequestId.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Messages/RequestId.cs rename to src/ModelContextProtocol/Protocol/RequestId.cs index f624e0049..8d445deb8 100644 --- a/src/ModelContextProtocol/Protocol/Messages/RequestId.cs +++ b/src/ModelContextProtocol/Protocol/RequestId.cs @@ -1,10 +1,9 @@ -using ModelContextProtocol.Utils; using System.ComponentModel; using System.Globalization; using System.Text.Json; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// Represents a JSON-RPC request identifier, which can be either a string or an integer. diff --git a/src/ModelContextProtocol/Protocol/Messages/RequestMethods.cs b/src/ModelContextProtocol/Protocol/RequestMethods.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Messages/RequestMethods.cs rename to src/ModelContextProtocol/Protocol/RequestMethods.cs index a0b094e7f..3b511ef90 100644 --- a/src/ModelContextProtocol/Protocol/Messages/RequestMethods.cs +++ b/src/ModelContextProtocol/Protocol/RequestMethods.cs @@ -1,4 +1,4 @@ -namespace ModelContextProtocol.Protocol.Messages; +namespace ModelContextProtocol.Protocol; /// /// Provides constants with the names of common request methods used in the MCP protocol. diff --git a/src/ModelContextProtocol/Protocol/Types/RequestParams.cs b/src/ModelContextProtocol/Protocol/RequestParams.cs similarity index 93% rename from src/ModelContextProtocol/Protocol/Types/RequestParams.cs rename to src/ModelContextProtocol/Protocol/RequestParams.cs index f4fb4c433..20884b7be 100644 --- a/src/ModelContextProtocol/Protocol/Types/RequestParams.cs +++ b/src/ModelContextProtocol/Protocol/RequestParams.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Provides a base class for all request parameters. diff --git a/src/ModelContextProtocol/Protocol/Types/RequestParamsMetadata.cs b/src/ModelContextProtocol/Protocol/RequestParamsMetadata.cs similarity index 88% rename from src/ModelContextProtocol/Protocol/Types/RequestParamsMetadata.cs rename to src/ModelContextProtocol/Protocol/RequestParamsMetadata.cs index 6b56a9119..90f562181 100644 --- a/src/ModelContextProtocol/Protocol/Types/RequestParamsMetadata.cs +++ b/src/ModelContextProtocol/Protocol/RequestParamsMetadata.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Provides metadata related to the request that provides additional protocol-level information. diff --git a/src/ModelContextProtocol/Protocol/Types/Resource.cs b/src/ModelContextProtocol/Protocol/Resource.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Types/Resource.cs rename to src/ModelContextProtocol/Protocol/Resource.cs index 3e25a1116..d2c1f55bd 100644 --- a/src/ModelContextProtocol/Protocol/Types/Resource.cs +++ b/src/ModelContextProtocol/Protocol/Resource.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a known resource that the server is capable of reading. diff --git a/src/ModelContextProtocol/Protocol/Types/ResourceContents.cs b/src/ModelContextProtocol/Protocol/ResourceContents.cs similarity index 99% rename from src/ModelContextProtocol/Protocol/Types/ResourceContents.cs rename to src/ModelContextProtocol/Protocol/ResourceContents.cs index 0c392db1f..799173622 100644 --- a/src/ModelContextProtocol/Protocol/Types/ResourceContents.cs +++ b/src/ModelContextProtocol/Protocol/ResourceContents.cs @@ -3,7 +3,7 @@ using System.Text.Json; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Provides a base class representing contents of a resource in the Model Context Protocol. diff --git a/src/ModelContextProtocol/Protocol/Types/ResourceTemplate.cs b/src/ModelContextProtocol/Protocol/ResourceTemplate.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Types/ResourceTemplate.cs rename to src/ModelContextProtocol/Protocol/ResourceTemplate.cs index 8431857e8..94ef68c40 100644 --- a/src/ModelContextProtocol/Protocol/Types/ResourceTemplate.cs +++ b/src/ModelContextProtocol/Protocol/ResourceTemplate.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a known resource template that the server is capable of reading. diff --git a/src/ModelContextProtocol/Protocol/Types/ResourceUpdatedNotificationParams.cs b/src/ModelContextProtocol/Protocol/ResourceUpdatedNotificationParams.cs similarity index 92% rename from src/ModelContextProtocol/Protocol/Types/ResourceUpdatedNotificationParams.cs rename to src/ModelContextProtocol/Protocol/ResourceUpdatedNotificationParams.cs index f4b1c622f..09f1720e4 100644 --- a/src/ModelContextProtocol/Protocol/Types/ResourceUpdatedNotificationParams.cs +++ b/src/ModelContextProtocol/Protocol/ResourceUpdatedNotificationParams.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a diff --git a/src/ModelContextProtocol/Protocol/Types/ResourcesCapability.cs b/src/ModelContextProtocol/Protocol/ResourcesCapability.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Types/ResourcesCapability.cs rename to src/ModelContextProtocol/Protocol/ResourcesCapability.cs index e93b8d993..12343cc77 100644 --- a/src/ModelContextProtocol/Protocol/Types/ResourcesCapability.cs +++ b/src/ModelContextProtocol/Protocol/ResourcesCapability.cs @@ -1,8 +1,7 @@ -using ModelContextProtocol.Protocol.Messages; using ModelContextProtocol.Server; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the resources capability configuration. diff --git a/src/ModelContextProtocol/Protocol/Types/Role.cs b/src/ModelContextProtocol/Protocol/Role.cs similarity index 86% rename from src/ModelContextProtocol/Protocol/Types/Role.cs rename to src/ModelContextProtocol/Protocol/Role.cs index 5b6ee9c06..d633ce4c2 100644 --- a/src/ModelContextProtocol/Protocol/Types/Role.cs +++ b/src/ModelContextProtocol/Protocol/Role.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Utils.Json; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the type of role in the Model Context Protocol conversation. diff --git a/src/ModelContextProtocol/Protocol/Types/Root.cs b/src/ModelContextProtocol/Protocol/Root.cs similarity index 96% rename from src/ModelContextProtocol/Protocol/Types/Root.cs rename to src/ModelContextProtocol/Protocol/Root.cs index 1d42563e0..72604bd40 100644 --- a/src/ModelContextProtocol/Protocol/Types/Root.cs +++ b/src/ModelContextProtocol/Protocol/Root.cs @@ -1,7 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a root URI and its metadata in the Model Context Protocol. diff --git a/src/ModelContextProtocol/Protocol/Types/RootsCapability.cs b/src/ModelContextProtocol/Protocol/RootsCapability.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Types/RootsCapability.cs rename to src/ModelContextProtocol/Protocol/RootsCapability.cs index d087cee7b..e63c19c31 100644 --- a/src/ModelContextProtocol/Protocol/Types/RootsCapability.cs +++ b/src/ModelContextProtocol/Protocol/RootsCapability.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a client capability that enables root resource discovery in the Model Context Protocol. diff --git a/src/ModelContextProtocol/Protocol/Types/SamplingCapability.cs b/src/ModelContextProtocol/Protocol/SamplingCapability.cs similarity index 94% rename from src/ModelContextProtocol/Protocol/Types/SamplingCapability.cs rename to src/ModelContextProtocol/Protocol/SamplingCapability.cs index 96d9a6443..2f5705c4a 100644 --- a/src/ModelContextProtocol/Protocol/Types/SamplingCapability.cs +++ b/src/ModelContextProtocol/Protocol/SamplingCapability.cs @@ -1,9 +1,8 @@ using Microsoft.Extensions.AI; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the capability for a client to generate text or other content using an AI model. diff --git a/src/ModelContextProtocol/Protocol/Types/SamplingMessage.cs b/src/ModelContextProtocol/Protocol/SamplingMessage.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Types/SamplingMessage.cs rename to src/ModelContextProtocol/Protocol/SamplingMessage.cs index 77a29bfb5..0cbbb1c38 100644 --- a/src/ModelContextProtocol/Protocol/Types/SamplingMessage.cs +++ b/src/ModelContextProtocol/Protocol/SamplingMessage.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a message issued to or received from an LLM API within the Model Context Protocol. diff --git a/src/ModelContextProtocol/Protocol/Types/ServerCapabilities.cs b/src/ModelContextProtocol/Protocol/ServerCapabilities.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Types/ServerCapabilities.cs rename to src/ModelContextProtocol/Protocol/ServerCapabilities.cs index 6406ea4dc..1548241ee 100644 --- a/src/ModelContextProtocol/Protocol/Types/ServerCapabilities.cs +++ b/src/ModelContextProtocol/Protocol/ServerCapabilities.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the capabilities that a server may support. diff --git a/src/ModelContextProtocol/Protocol/Types/SetLevelRequestParams.cs b/src/ModelContextProtocol/Protocol/SetLevelRequestParams.cs similarity index 88% rename from src/ModelContextProtocol/Protocol/Types/SetLevelRequestParams.cs rename to src/ModelContextProtocol/Protocol/SetLevelRequestParams.cs index fbf1f1daa..e95360a13 100644 --- a/src/ModelContextProtocol/Protocol/Types/SetLevelRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/SetLevelRequestParams.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a request from a client diff --git a/src/ModelContextProtocol/Protocol/Types/SubscribeRequestParams.cs b/src/ModelContextProtocol/Protocol/SubscribeRequestParams.cs similarity index 92% rename from src/ModelContextProtocol/Protocol/Types/SubscribeRequestParams.cs rename to src/ModelContextProtocol/Protocol/SubscribeRequestParams.cs index e40c2901a..6716ba435 100644 --- a/src/ModelContextProtocol/Protocol/Types/SubscribeRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/SubscribeRequestParams.cs @@ -1,7 +1,6 @@ -using ModelContextProtocol.Protocol.Messages; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the parameters used with a request from a client diff --git a/src/ModelContextProtocol/Protocol/Types/TextResourceContents.cs b/src/ModelContextProtocol/Protocol/TextResourceContents.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Types/TextResourceContents.cs rename to src/ModelContextProtocol/Protocol/TextResourceContents.cs index 207b27fed..754b8c299 100644 --- a/src/ModelContextProtocol/Protocol/Types/TextResourceContents.cs +++ b/src/ModelContextProtocol/Protocol/TextResourceContents.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents text-based contents of a resource in the Model Context Protocol. diff --git a/src/ModelContextProtocol/Protocol/Types/Tool.cs b/src/ModelContextProtocol/Protocol/Tool.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Types/Tool.cs rename to src/ModelContextProtocol/Protocol/Tool.cs index a4c7e603c..71e1101f0 100644 --- a/src/ModelContextProtocol/Protocol/Types/Tool.cs +++ b/src/ModelContextProtocol/Protocol/Tool.cs @@ -1,8 +1,7 @@ -using ModelContextProtocol.Utils.Json; using System.Text.Json; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents a tool that the server is capable of calling. diff --git a/src/ModelContextProtocol/Protocol/Types/ToolAnnotations.cs b/src/ModelContextProtocol/Protocol/ToolAnnotations.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Types/ToolAnnotations.cs rename to src/ModelContextProtocol/Protocol/ToolAnnotations.cs index 417a366da..fbbc6ab59 100644 --- a/src/ModelContextProtocol/Protocol/Types/ToolAnnotations.cs +++ b/src/ModelContextProtocol/Protocol/ToolAnnotations.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents additional properties describing a to clients. diff --git a/src/ModelContextProtocol/Protocol/Types/ToolsCapability.cs b/src/ModelContextProtocol/Protocol/ToolsCapability.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Types/ToolsCapability.cs rename to src/ModelContextProtocol/Protocol/ToolsCapability.cs index 87554398f..b5789de7e 100644 --- a/src/ModelContextProtocol/Protocol/Types/ToolsCapability.cs +++ b/src/ModelContextProtocol/Protocol/ToolsCapability.cs @@ -1,8 +1,7 @@ -using ModelContextProtocol.Protocol.Messages; using ModelContextProtocol.Server; using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Represents the tools capability configuration. diff --git a/src/ModelContextProtocol/Protocol/Transport/TransportBase.cs b/src/ModelContextProtocol/Protocol/TransportBase.cs similarity index 98% rename from src/ModelContextProtocol/Protocol/Transport/TransportBase.cs rename to src/ModelContextProtocol/Protocol/TransportBase.cs index 56e55a639..31b3b146f 100644 --- a/src/ModelContextProtocol/Protocol/Transport/TransportBase.cs +++ b/src/ModelContextProtocol/Protocol/TransportBase.cs @@ -1,10 +1,9 @@ -using System.Diagnostics; -using System.Threading.Channels; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using ModelContextProtocol.Protocol.Messages; +using System.Diagnostics; +using System.Threading.Channels; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Protocol; /// /// Provides a base class for implementing . diff --git a/src/ModelContextProtocol/Protocol/Types/UnsubscribeRequestParams.cs b/src/ModelContextProtocol/Protocol/UnsubscribeRequestParams.cs similarity index 95% rename from src/ModelContextProtocol/Protocol/Types/UnsubscribeRequestParams.cs rename to src/ModelContextProtocol/Protocol/UnsubscribeRequestParams.cs index 0824f49a6..ac354128a 100644 --- a/src/ModelContextProtocol/Protocol/Types/UnsubscribeRequestParams.cs +++ b/src/ModelContextProtocol/Protocol/UnsubscribeRequestParams.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace ModelContextProtocol.Protocol.Types; +namespace ModelContextProtocol.Protocol; /// /// Sent from the client to cancel resource update notifications from the server for a specific resource. diff --git a/src/ModelContextProtocol/Shared/RequestHandlers.cs b/src/ModelContextProtocol/RequestHandlers.cs similarity index 93% rename from src/ModelContextProtocol/Shared/RequestHandlers.cs rename to src/ModelContextProtocol/RequestHandlers.cs index 93a3dbbf4..854a4bddf 100644 --- a/src/ModelContextProtocol/Shared/RequestHandlers.cs +++ b/src/ModelContextProtocol/RequestHandlers.cs @@ -1,11 +1,9 @@ -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Utils; +using ModelContextProtocol.Protocol; using System.Text.Json; using System.Text.Json.Nodes; using System.Text.Json.Serialization.Metadata; -namespace ModelContextProtocol.Shared; +namespace ModelContextProtocol; internal sealed class RequestHandlers : Dictionary>> { diff --git a/src/ModelContextProtocol/Utils/SemaphoreSlimExtensions.cs b/src/ModelContextProtocol/SemaphoreSlimExtensions.cs similarity index 97% rename from src/ModelContextProtocol/Utils/SemaphoreSlimExtensions.cs rename to src/ModelContextProtocol/SemaphoreSlimExtensions.cs index 459896e46..6a78d3214 100644 --- a/src/ModelContextProtocol/Utils/SemaphoreSlimExtensions.cs +++ b/src/ModelContextProtocol/SemaphoreSlimExtensions.cs @@ -1,4 +1,4 @@ -namespace ModelContextProtocol.Utils; +namespace ModelContextProtocol; internal static class SynchronizationExtensions { diff --git a/src/ModelContextProtocol/Server/AIFunctionMcpServerPrompt.cs b/src/ModelContextProtocol/Server/AIFunctionMcpServerPrompt.cs index 2f7e1a1b9..9e1cdbcea 100644 --- a/src/ModelContextProtocol/Server/AIFunctionMcpServerPrompt.cs +++ b/src/ModelContextProtocol/Server/AIFunctionMcpServerPrompt.cs @@ -1,8 +1,6 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.ComponentModel; using System.Reflection; using System.Text.Json; diff --git a/src/ModelContextProtocol/Server/AIFunctionMcpServerResource.cs b/src/ModelContextProtocol/Server/AIFunctionMcpServerResource.cs index 19eb499e0..f0d430e59 100644 --- a/src/ModelContextProtocol/Server/AIFunctionMcpServerResource.cs +++ b/src/ModelContextProtocol/Server/AIFunctionMcpServerResource.cs @@ -1,8 +1,6 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Collections.Concurrent; using System.ComponentModel; using System.Globalization; diff --git a/src/ModelContextProtocol/Server/AIFunctionMcpServerTool.cs b/src/ModelContextProtocol/Server/AIFunctionMcpServerTool.cs index cec6924de..366eb23cd 100644 --- a/src/ModelContextProtocol/Server/AIFunctionMcpServerTool.cs +++ b/src/ModelContextProtocol/Server/AIFunctionMcpServerTool.cs @@ -1,8 +1,6 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Reflection; diff --git a/src/ModelContextProtocol/Server/DelegatingMcpServerPrompt.cs b/src/ModelContextProtocol/Server/DelegatingMcpServerPrompt.cs index a209bea26..b5e49002c 100644 --- a/src/ModelContextProtocol/Server/DelegatingMcpServerPrompt.cs +++ b/src/ModelContextProtocol/Server/DelegatingMcpServerPrompt.cs @@ -1,5 +1,4 @@ -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Server/DelegatingMcpServerResource.cs b/src/ModelContextProtocol/Server/DelegatingMcpServerResource.cs index 92f1ee406..ee321037c 100644 --- a/src/ModelContextProtocol/Server/DelegatingMcpServerResource.cs +++ b/src/ModelContextProtocol/Server/DelegatingMcpServerResource.cs @@ -1,5 +1,4 @@ -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Server/DelegatingMcpServerTool.cs b/src/ModelContextProtocol/Server/DelegatingMcpServerTool.cs index 2a4878a46..a1f4be1d4 100644 --- a/src/ModelContextProtocol/Server/DelegatingMcpServerTool.cs +++ b/src/ModelContextProtocol/Server/DelegatingMcpServerTool.cs @@ -1,5 +1,4 @@ -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Server/DestinationBoundMcpServer.cs b/src/ModelContextProtocol/Server/DestinationBoundMcpServer.cs index 0d86480de..db594da8e 100644 --- a/src/ModelContextProtocol/Server/DestinationBoundMcpServer.cs +++ b/src/ModelContextProtocol/Server/DestinationBoundMcpServer.cs @@ -1,6 +1,4 @@ -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using System.Diagnostics; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Server/IMcpServer.cs b/src/ModelContextProtocol/Server/IMcpServer.cs index 9b6221748..ec2b87ade 100644 --- a/src/ModelContextProtocol/Server/IMcpServer.cs +++ b/src/ModelContextProtocol/Server/IMcpServer.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Server/McpServer.cs b/src/ModelContextProtocol/Server/McpServer.cs index a6f8c362b..338c631f3 100644 --- a/src/ModelContextProtocol/Server/McpServer.cs +++ b/src/ModelContextProtocol/Server/McpServer.cs @@ -1,11 +1,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Shared; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Runtime.CompilerServices; using System.Text.Json.Serialization.Metadata; @@ -558,12 +553,12 @@ private void UpdateEndpointNameWithClientInfo() internal static LoggingLevel ToLoggingLevel(LogLevel level) => level switch { - LogLevel.Trace => Protocol.Types.LoggingLevel.Debug, - LogLevel.Debug => Protocol.Types.LoggingLevel.Debug, - LogLevel.Information => Protocol.Types.LoggingLevel.Info, - LogLevel.Warning => Protocol.Types.LoggingLevel.Warning, - LogLevel.Error => Protocol.Types.LoggingLevel.Error, - LogLevel.Critical => Protocol.Types.LoggingLevel.Critical, - _ => Protocol.Types.LoggingLevel.Emergency, + LogLevel.Trace => Protocol.LoggingLevel.Debug, + LogLevel.Debug => Protocol.LoggingLevel.Debug, + LogLevel.Information => Protocol.LoggingLevel.Info, + LogLevel.Warning => Protocol.LoggingLevel.Warning, + LogLevel.Error => Protocol.LoggingLevel.Error, + LogLevel.Critical => Protocol.LoggingLevel.Critical, + _ => Protocol.LoggingLevel.Emergency, }; } diff --git a/src/ModelContextProtocol/Server/McpServerExtensions.cs b/src/ModelContextProtocol/Server/McpServerExtensions.cs index be43f6f7a..0736b86f9 100644 --- a/src/ModelContextProtocol/Server/McpServerExtensions.cs +++ b/src/ModelContextProtocol/Server/McpServerExtensions.cs @@ -1,9 +1,6 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.Logging; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Runtime.CompilerServices; using System.Text; using System.Text.Json; diff --git a/src/ModelContextProtocol/Server/McpServerFactory.cs b/src/ModelContextProtocol/Server/McpServerFactory.cs index 89a6fd045..50d4188b5 100644 --- a/src/ModelContextProtocol/Server/McpServerFactory.cs +++ b/src/ModelContextProtocol/Server/McpServerFactory.cs @@ -1,6 +1,5 @@ -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Utils; using Microsoft.Extensions.Logging; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Server/McpServerHandlers.cs b/src/ModelContextProtocol/Server/McpServerHandlers.cs index b749ab0fe..83b7ad902 100644 --- a/src/ModelContextProtocol/Server/McpServerHandlers.cs +++ b/src/ModelContextProtocol/Server/McpServerHandlers.cs @@ -1,6 +1,5 @@ using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Server/McpServerOptions.cs b/src/ModelContextProtocol/Server/McpServerOptions.cs index bae26ca78..3d6de61b5 100644 --- a/src/ModelContextProtocol/Server/McpServerOptions.cs +++ b/src/ModelContextProtocol/Server/McpServerOptions.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Server/McpServerPrimitiveCollection.cs b/src/ModelContextProtocol/Server/McpServerPrimitiveCollection.cs index 871f55ac2..7bfe0232f 100644 --- a/src/ModelContextProtocol/Server/McpServerPrimitiveCollection.cs +++ b/src/ModelContextProtocol/Server/McpServerPrimitiveCollection.cs @@ -1,4 +1,3 @@ -using ModelContextProtocol.Utils; using System.Collections; using System.Collections.Concurrent; using System.Diagnostics.CodeAnalysis; diff --git a/src/ModelContextProtocol/Server/McpServerPrompt.cs b/src/ModelContextProtocol/Server/McpServerPrompt.cs index df2650cb0..2260617e0 100644 --- a/src/ModelContextProtocol/Server/McpServerPrompt.cs +++ b/src/ModelContextProtocol/Server/McpServerPrompt.cs @@ -1,8 +1,7 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using System.Reflection; using System.Text.Json; diff --git a/src/ModelContextProtocol/Server/McpServerPromptAttribute.cs b/src/ModelContextProtocol/Server/McpServerPromptAttribute.cs index ed66a41e7..d47b02c67 100644 --- a/src/ModelContextProtocol/Server/McpServerPromptAttribute.cs +++ b/src/ModelContextProtocol/Server/McpServerPromptAttribute.cs @@ -1,7 +1,6 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using System.Text.Json; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Server/McpServerPromptCreateOptions.cs b/src/ModelContextProtocol/Server/McpServerPromptCreateOptions.cs index 17f6dfd9d..77584c48b 100644 --- a/src/ModelContextProtocol/Server/McpServerPromptCreateOptions.cs +++ b/src/ModelContextProtocol/Server/McpServerPromptCreateOptions.cs @@ -1,5 +1,4 @@ using Microsoft.Extensions.AI; -using ModelContextProtocol.Utils.Json; using System.ComponentModel; using System.Text.Json; diff --git a/src/ModelContextProtocol/Server/McpServerResource.cs b/src/ModelContextProtocol/Server/McpServerResource.cs index b6ec15f80..346c0329a 100644 --- a/src/ModelContextProtocol/Server/McpServerResource.cs +++ b/src/ModelContextProtocol/Server/McpServerResource.cs @@ -1,7 +1,6 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using System.Reflection; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Server/McpServerResourceAttribute.cs b/src/ModelContextProtocol/Server/McpServerResourceAttribute.cs index c59892333..9c5347c79 100644 --- a/src/ModelContextProtocol/Server/McpServerResourceAttribute.cs +++ b/src/ModelContextProtocol/Server/McpServerResourceAttribute.cs @@ -1,7 +1,6 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Server/McpServerTool.cs b/src/ModelContextProtocol/Server/McpServerTool.cs index 67458effd..f2aa2d021 100644 --- a/src/ModelContextProtocol/Server/McpServerTool.cs +++ b/src/ModelContextProtocol/Server/McpServerTool.cs @@ -1,9 +1,7 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Reflection; using System.Text.Json; diff --git a/src/ModelContextProtocol/Server/McpServerToolAttribute.cs b/src/ModelContextProtocol/Server/McpServerToolAttribute.cs index 8c7f70a1a..e096a1505 100644 --- a/src/ModelContextProtocol/Server/McpServerToolAttribute.cs +++ b/src/ModelContextProtocol/Server/McpServerToolAttribute.cs @@ -1,8 +1,6 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Text.Json; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Server/McpServerToolCreateOptions.cs b/src/ModelContextProtocol/Server/McpServerToolCreateOptions.cs index 14fcb7cd7..80d638560 100644 --- a/src/ModelContextProtocol/Server/McpServerToolCreateOptions.cs +++ b/src/ModelContextProtocol/Server/McpServerToolCreateOptions.cs @@ -1,5 +1,4 @@ using Microsoft.Extensions.AI; -using ModelContextProtocol.Utils.Json; using System.ComponentModel; using System.Text.Json; diff --git a/src/ModelContextProtocol/Server/RequestContext.cs b/src/ModelContextProtocol/Server/RequestContext.cs index 88f2d13bf..7437faea1 100644 --- a/src/ModelContextProtocol/Server/RequestContext.cs +++ b/src/ModelContextProtocol/Server/RequestContext.cs @@ -1,5 +1,4 @@ using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Utils; namespace ModelContextProtocol.Server; diff --git a/src/ModelContextProtocol/Hosting/SingleSessionMcpServerHostedService.cs b/src/ModelContextProtocol/Server/SingleSessionMcpServerHostedService.cs similarity index 91% rename from src/ModelContextProtocol/Hosting/SingleSessionMcpServerHostedService.cs rename to src/ModelContextProtocol/Server/SingleSessionMcpServerHostedService.cs index 70791273e..6f266ec07 100644 --- a/src/ModelContextProtocol/Hosting/SingleSessionMcpServerHostedService.cs +++ b/src/ModelContextProtocol/Server/SingleSessionMcpServerHostedService.cs @@ -1,7 +1,6 @@ using Microsoft.Extensions.Hosting; -using ModelContextProtocol.Server; -namespace ModelContextProtocol.Hosting; +namespace ModelContextProtocol.Server; /// /// Hosted service for a single-session (e.g. stdio) MCP server. diff --git a/src/ModelContextProtocol/Protocol/Transport/SseResponseStreamTransport.cs b/src/ModelContextProtocol/Server/SseResponseStreamTransport.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Transport/SseResponseStreamTransport.cs rename to src/ModelContextProtocol/Server/SseResponseStreamTransport.cs index f830862d1..82562d9d3 100644 --- a/src/ModelContextProtocol/Protocol/Transport/SseResponseStreamTransport.cs +++ b/src/ModelContextProtocol/Server/SseResponseStreamTransport.cs @@ -1,8 +1,7 @@ -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Utils; +using ModelContextProtocol.Protocol; using System.Threading.Channels; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Server; /// /// Provides an implementation using Server-Sent Events (SSE) for server-to-client communication. diff --git a/src/ModelContextProtocol/Protocol/Transport/SseWriter.cs b/src/ModelContextProtocol/Server/SseWriter.cs similarity index 96% rename from src/ModelContextProtocol/Protocol/Transport/SseWriter.cs rename to src/ModelContextProtocol/Server/SseWriter.cs index c2cce9f16..18571e2c9 100644 --- a/src/ModelContextProtocol/Protocol/Transport/SseWriter.cs +++ b/src/ModelContextProtocol/Server/SseWriter.cs @@ -1,13 +1,11 @@ -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Buffers; using System.Net.ServerSentEvents; using System.Text; using System.Text.Json; using System.Threading.Channels; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Server; internal sealed class SseWriter(string? messageEndpoint = null, BoundedChannelOptions? channelOptions = null) : IAsyncDisposable { diff --git a/src/ModelContextProtocol/Protocol/Transport/StdioServerTransport.cs b/src/ModelContextProtocol/Server/StdioServerTransport.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Transport/StdioServerTransport.cs rename to src/ModelContextProtocol/Server/StdioServerTransport.cs index 00b58844d..df7b0087c 100644 --- a/src/ModelContextProtocol/Protocol/Transport/StdioServerTransport.cs +++ b/src/ModelContextProtocol/Server/StdioServerTransport.cs @@ -1,9 +1,8 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using ModelContextProtocol.Server; -using ModelContextProtocol.Utils; +using ModelContextProtocol.Protocol; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Server; /// /// Provides an implemented via "stdio" (standard input/output). diff --git a/src/ModelContextProtocol/Protocol/Transport/StreamServerTransport.cs b/src/ModelContextProtocol/Server/StreamServerTransport.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Transport/StreamServerTransport.cs rename to src/ModelContextProtocol/Server/StreamServerTransport.cs index a2b9fd4ed..9528e4f42 100644 --- a/src/ModelContextProtocol/Protocol/Transport/StreamServerTransport.cs +++ b/src/ModelContextProtocol/Server/StreamServerTransport.cs @@ -1,12 +1,10 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Utils; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Text; using System.Text.Json; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Server; /// /// Provides an implemented using a pair of input and output streams. diff --git a/src/ModelContextProtocol/Protocol/Transport/StreamableHttpPostTransport.cs b/src/ModelContextProtocol/Server/StreamableHttpPostTransport.cs similarity index 96% rename from src/ModelContextProtocol/Protocol/Transport/StreamableHttpPostTransport.cs rename to src/ModelContextProtocol/Server/StreamableHttpPostTransport.cs index ce6e33ca1..27b8ccdba 100644 --- a/src/ModelContextProtocol/Protocol/Transport/StreamableHttpPostTransport.cs +++ b/src/ModelContextProtocol/Server/StreamableHttpPostTransport.cs @@ -1,12 +1,11 @@ -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.IO.Pipelines; using System.Net.ServerSentEvents; using System.Runtime.CompilerServices; using System.Text.Json; using System.Threading.Channels; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Server; /// /// Handles processing the request/response body pairs for the Streamable HTTP transport. diff --git a/src/ModelContextProtocol/Protocol/Transport/StreamableHttpServerTransport.cs b/src/ModelContextProtocol/Server/StreamableHttpServerTransport.cs similarity index 97% rename from src/ModelContextProtocol/Protocol/Transport/StreamableHttpServerTransport.cs rename to src/ModelContextProtocol/Server/StreamableHttpServerTransport.cs index 9ec804536..6b024ff6f 100644 --- a/src/ModelContextProtocol/Protocol/Transport/StreamableHttpServerTransport.cs +++ b/src/ModelContextProtocol/Server/StreamableHttpServerTransport.cs @@ -1,9 +1,8 @@ -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using System.IO.Pipelines; using System.Threading.Channels; -namespace ModelContextProtocol.Protocol.Transport; +namespace ModelContextProtocol.Server; /// /// Provides an implementation using Server-Sent Events (SSE) for server-to-client communication. diff --git a/src/ModelContextProtocol/TokenProgress.cs b/src/ModelContextProtocol/TokenProgress.cs index 62834e75a..f222fbf71 100644 --- a/src/ModelContextProtocol/TokenProgress.cs +++ b/src/ModelContextProtocol/TokenProgress.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Messages; +using ModelContextProtocol.Protocol; namespace ModelContextProtocol; diff --git a/src/ModelContextProtocol/UriTemplate.cs b/src/ModelContextProtocol/UriTemplate.cs index b224706e0..bc6b70c9f 100644 --- a/src/ModelContextProtocol/UriTemplate.cs +++ b/src/ModelContextProtocol/UriTemplate.cs @@ -1,5 +1,4 @@ -using ModelContextProtocol.Utils; -#if NET +#if NET using System.Buffers; #endif using System.Diagnostics; diff --git a/src/ModelContextProtocol/Utils/Json/CustomizableJsonStringEnumConverter.cs b/src/ModelContextProtocol/Utils/Json/CustomizableJsonStringEnumConverter.cs deleted file mode 100644 index 37888c267..000000000 --- a/src/ModelContextProtocol/Utils/Json/CustomizableJsonStringEnumConverter.cs +++ /dev/null @@ -1,91 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.ComponentModel; -using System.Diagnostics.CodeAnalysis; -using System.Reflection; -using System.Text.Json; -using System.Text.Json.Serialization; - -// NOTE: -// This is a workaround for lack of System.Text.Json's JsonStringEnumConverter -// 9.x support for JsonStringEnumMemberNameAttribute. Once all builds use the System.Text.Json 9.x -// version, this whole file can be removed. Note that the type is public so that external source -// generators can use it, so removing it is a potential breaking change. - -namespace ModelContextProtocol.Utils.Json; - -/// -/// A JSON converter for enums that allows customizing the serialized string value of enum members -/// using the . -/// -/// The enum type to convert. -/// -/// This is a temporary workaround for lack of System.Text.Json's JsonStringEnumConverter<T> -/// 9.x support for custom enum member naming. It will be replaced by the built-in functionality -/// once .NET 9 is fully adopted. -/// -[EditorBrowsable(EditorBrowsableState.Never)] -public sealed class CustomizableJsonStringEnumConverter<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] TEnum> : - JsonStringEnumConverter where TEnum : struct, Enum -{ -#if !NET9_0_OR_GREATER - /// - /// Initializes a new instance of the class. - /// - /// - /// The converter automatically detects any enum members decorated with - /// and uses those values during serialization and deserialization. - /// - public CustomizableJsonStringEnumConverter() : - base(namingPolicy: ResolveNamingPolicy()) - { - } - - private static JsonNamingPolicy? ResolveNamingPolicy() - { - var map = typeof(TEnum).GetFields(BindingFlags.Public | BindingFlags.Static) - .Select(f => (f.Name, AttributeName: f.GetCustomAttribute()?.Name)) - .Where(pair => pair.AttributeName != null) - .ToDictionary(pair => pair.Name, pair => pair.AttributeName); - - return map.Count > 0 ? new EnumMemberNamingPolicy(map!) : null; - } - - private sealed class EnumMemberNamingPolicy(Dictionary map) : JsonNamingPolicy - { - public override string ConvertName(string name) => - map.TryGetValue(name, out string? newName) ? - newName : - name; - } -#endif -} - -#if !NET9_0_OR_GREATER -/// -/// Determines the custom string value that should be used when serializing an enum member using JSON. -/// -/// -/// This attribute is a temporary workaround for lack of System.Text.Json's support for custom enum member naming -/// in versions prior to .NET 9. It works together with -/// to provide customized string representations of enum values during JSON serialization and deserialization. -/// -[AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] -internal sealed class JsonStringEnumMemberNameAttribute : Attribute -{ - /// - /// Creates new attribute instance with a specified enum member name. - /// - /// The name to apply to the current enum member when serialized to JSON. - public JsonStringEnumMemberNameAttribute(string name) - { - Name = name; - } - - /// - /// Gets the custom JSON name of the enum member. - /// - public string Name { get; } -} -#endif \ No newline at end of file diff --git a/src/ModelContextProtocol/Utils/Json/JsonRpcMessageConverter.cs b/src/ModelContextProtocol/Utils/Json/JsonRpcMessageConverter.cs deleted file mode 100644 index 146185cac..000000000 --- a/src/ModelContextProtocol/Utils/Json/JsonRpcMessageConverter.cs +++ /dev/null @@ -1,110 +0,0 @@ -using ModelContextProtocol.Protocol.Messages; -using System.ComponentModel; -using System.Text.Json; -using System.Text.Json.Serialization; - -namespace ModelContextProtocol.Utils.Json; - -/// -/// Provides a for messages, -/// handling polymorphic deserialization of different message types. -/// -/// -/// -/// This converter is responsible for correctly deserializing JSON-RPC messages into their appropriate -/// concrete types based on the message structure. It analyzes the JSON payload and determines if it -/// represents a request, notification, successful response, or error response. -/// -/// -/// The type determination rules follow the JSON-RPC 2.0 specification: -/// -/// Messages with "method" and "id" properties are deserialized as . -/// Messages with "method" but no "id" property are deserialized as . -/// Messages with "id" and "result" properties are deserialized as . -/// Messages with "id" and "error" properties are deserialized as . -/// -/// -/// -[EditorBrowsable(EditorBrowsableState.Never)] -public sealed class JsonRpcMessageConverter : JsonConverter -{ - /// - public override JsonRpcMessage? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - if (reader.TokenType != JsonTokenType.StartObject) - { - throw new JsonException("Expected StartObject token"); - } - - using var doc = JsonDocument.ParseValue(ref reader); - var root = doc.RootElement; - - // All JSON-RPC messages must have a jsonrpc property with value "2.0" - if (!root.TryGetProperty("jsonrpc", out var versionProperty) || - versionProperty.GetString() != "2.0") - { - throw new JsonException("Invalid or missing jsonrpc version"); - } - - // Determine the message type based on the presence of id, method, and error properties - bool hasId = root.TryGetProperty("id", out _); - bool hasMethod = root.TryGetProperty("method", out _); - bool hasError = root.TryGetProperty("error", out _); - - var rawText = root.GetRawText(); - - // Messages with an id but no method are responses - if (hasId && !hasMethod) - { - // Messages with an error property are error responses - if (hasError) - { - return JsonSerializer.Deserialize(rawText, options.GetTypeInfo()); - } - - // Messages with a result property are success responses - if (root.TryGetProperty("result", out _)) - { - return JsonSerializer.Deserialize(rawText, options.GetTypeInfo()); - } - - throw new JsonException("Response must have either result or error"); - } - - // Messages with a method but no id are notifications - if (hasMethod && !hasId) - { - return JsonSerializer.Deserialize(rawText, options.GetTypeInfo()); - } - - // Messages with both method and id are requests - if (hasMethod && hasId) - { - return JsonSerializer.Deserialize(rawText, options.GetTypeInfo()); - } - - throw new JsonException("Invalid JSON-RPC message format"); - } - - /// - public override void Write(Utf8JsonWriter writer, JsonRpcMessage value, JsonSerializerOptions options) - { - switch (value) - { - case JsonRpcRequest request: - JsonSerializer.Serialize(writer, request, options.GetTypeInfo()); - break; - case JsonRpcNotification notification: - JsonSerializer.Serialize(writer, notification, options.GetTypeInfo()); - break; - case JsonRpcResponse response: - JsonSerializer.Serialize(writer, response, options.GetTypeInfo()); - break; - case JsonRpcError error: - JsonSerializer.Serialize(writer, error, options.GetTypeInfo()); - break; - default: - throw new JsonException($"Unknown JSON-RPC message type: {value.GetType()}"); - } - } -} \ No newline at end of file diff --git a/tests/Common/Utils/TestServerTransport.cs b/tests/Common/Utils/TestServerTransport.cs index aa01a894d..ec2712242 100644 --- a/tests/Common/Utils/TestServerTransport.cs +++ b/tests/Common/Utils/TestServerTransport.cs @@ -1,7 +1,4 @@ -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Text.Json; using System.Threading.Channels; diff --git a/tests/Common/Utils/XunitLoggerProvider.cs b/tests/Common/Utils/XunitLoggerProvider.cs index f66a828a6..9e77c1f39 100644 --- a/tests/Common/Utils/XunitLoggerProvider.cs +++ b/tests/Common/Utils/XunitLoggerProvider.cs @@ -1,6 +1,6 @@ -using System.Globalization; +using Microsoft.Extensions.Logging; +using System.Globalization; using System.Text; -using Microsoft.Extensions.Logging; namespace ModelContextProtocol.Tests.Utils; diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/HttpServerIntegrationTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/HttpServerIntegrationTests.cs index 1aefb8477..ee717530d 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/HttpServerIntegrationTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/HttpServerIntegrationTests.cs @@ -1,6 +1,5 @@ using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Tests.Utils; namespace ModelContextProtocol.AspNetCore.Tests; diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpSseTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpSseTests.cs index 602aa0c3c..ef4277a97 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpSseTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpSseTests.cs @@ -1,6 +1,5 @@ using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Client; namespace ModelContextProtocol.AspNetCore.Tests; diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpStatelessTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpStatelessTests.cs index 030701c72..5552b5395 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpStatelessTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpStatelessTests.cs @@ -1,7 +1,4 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; - -namespace ModelContextProtocol.AspNetCore.Tests; +namespace ModelContextProtocol.AspNetCore.Tests; public class MapMcpStatelessTests(ITestOutputHelper outputHelper) : MapMcpStreamableHttpTests(outputHelper) { diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpTests.cs index 36ee4e8dc..cf49fee16 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpTests.cs @@ -3,7 +3,6 @@ using Microsoft.Extensions.DependencyInjection; using ModelContextProtocol.AspNetCore.Tests.Utils; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Transport; using ModelContextProtocol.Server; using System.ComponentModel; using System.Net; diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/SseIntegrationTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/SseIntegrationTests.cs index 340cfdac2..24acd0b92 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/SseIntegrationTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/SseIntegrationTests.cs @@ -6,10 +6,8 @@ using Microsoft.Extensions.Options; using ModelContextProtocol.AspNetCore.Tests.Utils; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils.Json; using System.Text.Json.Serialization; using TestServerWithHosting.Tools; diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/SseServerIntegrationTestFixture.cs b/tests/ModelContextProtocol.AspNetCore.Tests/SseServerIntegrationTestFixture.cs index 5553163f5..1eee02032 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/SseServerIntegrationTestFixture.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/SseServerIntegrationTestFixture.cs @@ -1,7 +1,6 @@ using Microsoft.Extensions.Logging; using ModelContextProtocol.AspNetCore.Tests.Utils; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Transport; using ModelContextProtocol.Tests.Utils; using ModelContextProtocol.TestSseServer; diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/SseServerIntegrationTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/SseServerIntegrationTests.cs index 7fbea2112..eb89912ac 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/SseServerIntegrationTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/SseServerIntegrationTests.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Client; using System.Net; using System.Text; diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/StatelessServerIntegrationTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/StatelessServerIntegrationTests.cs index 21b9cac6e..b1b618057 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/StatelessServerIntegrationTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/StatelessServerIntegrationTests.cs @@ -1,11 +1,9 @@ -using ModelContextProtocol.Protocol.Transport; -using System.Text; +using ModelContextProtocol.Client; namespace ModelContextProtocol.AspNetCore.Tests; public class StatelessServerIntegrationTests(SseServerIntegrationTestFixture fixture, ITestOutputHelper testOutputHelper) : StreamableHttpServerIntegrationTests(fixture, testOutputHelper) - { protected override SseClientTransportOptions ClientTransportOptions => new() { diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/StatelessServerTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/StatelessServerTests.cs index 5b398b9de..2f364be01 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/StatelessServerTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/StatelessServerTests.cs @@ -2,9 +2,7 @@ using Microsoft.Extensions.DependencyInjection; using ModelContextProtocol.AspNetCore.Tests.Utils; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using System.Diagnostics; using System.Net; diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs index 2d07577b8..94540f8c2 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs @@ -4,11 +4,8 @@ using Microsoft.Extensions.DependencyInjection; using ModelContextProtocol.AspNetCore.Tests.Utils; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils.Json; using System.Text.Json; using System.Text.Json.Serialization.Metadata; diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpServerConformanceTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpServerConformanceTests.cs index 196b5b612..17b1234e3 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpServerConformanceTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpServerConformanceTests.cs @@ -4,11 +4,9 @@ using Microsoft.Extensions.Time.Testing; using Microsoft.Net.Http.Headers; using ModelContextProtocol.AspNetCore.Tests.Utils; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using ModelContextProtocol.Tests.Utils; -using ModelContextProtocol.Utils.Json; using System.Net; using System.Net.ServerSentEvents; using System.Text; diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpServerIntegrationTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpServerIntegrationTests.cs index bec382599..64505b3d9 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpServerIntegrationTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpServerIntegrationTests.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Client; using System.Text; namespace ModelContextProtocol.AspNetCore.Tests; diff --git a/tests/ModelContextProtocol.TestServer/Program.cs b/tests/ModelContextProtocol.TestServer/Program.cs index 6be6025c8..10f2aec78 100644 --- a/tests/ModelContextProtocol.TestServer/Program.cs +++ b/tests/ModelContextProtocol.TestServer/Program.cs @@ -1,7 +1,5 @@ using Microsoft.Extensions.Logging; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using Serilog; using System.Collections.Concurrent; diff --git a/tests/ModelContextProtocol.TestSseServer/Program.cs b/tests/ModelContextProtocol.TestSseServer/Program.cs index bfd85687e..583d68780 100644 --- a/tests/ModelContextProtocol.TestSseServer/Program.cs +++ b/tests/ModelContextProtocol.TestSseServer/Program.cs @@ -1,7 +1,6 @@ using Microsoft.AspNetCore.Connections; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils.Json; using Serilog; using System.Diagnostics; using System.Text; diff --git a/tests/ModelContextProtocol.Tests/Client/McpClientExtensionsTests.cs b/tests/ModelContextProtocol.Tests/Client/McpClientExtensionsTests.cs index adef00242..bc1787ea6 100644 --- a/tests/ModelContextProtocol.Tests/Client/McpClientExtensionsTests.cs +++ b/tests/ModelContextProtocol.Tests/Client/McpClientExtensionsTests.cs @@ -2,10 +2,8 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils.Json; using Moq; using System.Text.Json; using System.Text.Json.Serialization.Metadata; diff --git a/tests/ModelContextProtocol.Tests/Client/McpClientFactoryTests.cs b/tests/ModelContextProtocol.Tests/Client/McpClientFactoryTests.cs index c5e7c706a..2b8b75616 100644 --- a/tests/ModelContextProtocol.Tests/Client/McpClientFactoryTests.cs +++ b/tests/ModelContextProtocol.Tests/Client/McpClientFactoryTests.cs @@ -1,9 +1,6 @@ using Microsoft.Extensions.Logging; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using Moq; using System.IO.Pipelines; using System.Text.Json; diff --git a/tests/ModelContextProtocol.Tests/Client/McpClientResourceTemplateTests.cs b/tests/ModelContextProtocol.Tests/Client/McpClientResourceTemplateTests.cs index e442883a2..634afa9f4 100644 --- a/tests/ModelContextProtocol.Tests/Client/McpClientResourceTemplateTests.cs +++ b/tests/ModelContextProtocol.Tests/Client/McpClientResourceTemplateTests.cs @@ -1,6 +1,6 @@ using Microsoft.Extensions.DependencyInjection; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using System.Text.Json; using System.Text.Json.Serialization; diff --git a/tests/ModelContextProtocol.Tests/ClientIntegrationTestFixture.cs b/tests/ModelContextProtocol.Tests/ClientIntegrationTestFixture.cs index 341203304..dec5ad057 100644 --- a/tests/ModelContextProtocol.Tests/ClientIntegrationTestFixture.cs +++ b/tests/ModelContextProtocol.Tests/ClientIntegrationTestFixture.cs @@ -1,6 +1,5 @@ using Microsoft.Extensions.Logging; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Transport; using System.Runtime.InteropServices; namespace ModelContextProtocol.Tests; diff --git a/tests/ModelContextProtocol.Tests/ClientIntegrationTests.cs b/tests/ModelContextProtocol.Tests/ClientIntegrationTests.cs index 3e1ac8eb4..14fd02e98 100644 --- a/tests/ModelContextProtocol.Tests/ClientIntegrationTests.cs +++ b/tests/ModelContextProtocol.Tests/ClientIntegrationTests.cs @@ -1,10 +1,7 @@ using Microsoft.Extensions.AI; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Tests.Utils; -using ModelContextProtocol.Utils.Json; using OpenAI; using System.Text.Json; using System.Text.Json.Serialization; diff --git a/tests/ModelContextProtocol.Tests/ClientServerTestBase.cs b/tests/ModelContextProtocol.Tests/ClientServerTestBase.cs index c3c458673..326b235f0 100644 --- a/tests/ModelContextProtocol.Tests/ClientServerTestBase.cs +++ b/tests/ModelContextProtocol.Tests/ClientServerTestBase.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using ModelContextProtocol.Tests.Utils; using System.IO.Pipelines; diff --git a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsHandlerTests.cs b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsHandlerTests.cs index f304f8309..45e58fe57 100644 --- a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsHandlerTests.cs +++ b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsHandlerTests.cs @@ -1,7 +1,7 @@ -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Server; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; +using ModelContextProtocol.Protocol; +using ModelContextProtocol.Server; using Moq; namespace ModelContextProtocol.Tests.Configuration; diff --git a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsPromptsTests.cs b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsPromptsTests.cs index d0cfd0663..501730b8e 100644 --- a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsPromptsTests.cs +++ b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsPromptsTests.cs @@ -2,8 +2,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using System.ComponentModel; using System.Text.Json.Serialization; diff --git a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsResourcesTests.cs b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsResourcesTests.cs index 3512277e5..e8576697e 100644 --- a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsResourcesTests.cs +++ b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsResourcesTests.cs @@ -2,8 +2,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using System.ComponentModel; using System.Threading.Channels; diff --git a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsToolsTests.cs b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsToolsTests.cs index fd33f1e2f..010d1b0e6 100644 --- a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsToolsTests.cs +++ b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsToolsTests.cs @@ -3,11 +3,8 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils.Json; using System.Collections.Concurrent; using System.ComponentModel; using System.IO.Pipelines; diff --git a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsTransportsTests.cs b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsTransportsTests.cs index 51663d78e..6183c35eb 100644 --- a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsTransportsTests.cs +++ b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsTransportsTests.cs @@ -1,6 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Protocol; +using ModelContextProtocol.Server; using Moq; using System.IO.Pipelines; diff --git a/tests/ModelContextProtocol.Tests/Configuration/McpServerScopedTests.cs b/tests/ModelContextProtocol.Tests/Configuration/McpServerScopedTests.cs index 5815a6253..ef0fbf16c 100644 --- a/tests/ModelContextProtocol.Tests/Configuration/McpServerScopedTests.cs +++ b/tests/ModelContextProtocol.Tests/Configuration/McpServerScopedTests.cs @@ -1,7 +1,6 @@ using Microsoft.Extensions.DependencyInjection; using ModelContextProtocol.Client; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils.Json; using System.Text.Json; using System.Text.Json.Serialization; diff --git a/tests/ModelContextProtocol.Tests/DiagnosticTests.cs b/tests/ModelContextProtocol.Tests/DiagnosticTests.cs index 490b792cc..116c62a15 100644 --- a/tests/ModelContextProtocol.Tests/DiagnosticTests.cs +++ b/tests/ModelContextProtocol.Tests/DiagnosticTests.cs @@ -1,5 +1,5 @@ using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using OpenTelemetry.Trace; using System.Diagnostics; diff --git a/tests/ModelContextProtocol.Tests/DockerEverythingServerTests.cs b/tests/ModelContextProtocol.Tests/DockerEverythingServerTests.cs index d0c59603d..acc52904c 100644 --- a/tests/ModelContextProtocol.Tests/DockerEverythingServerTests.cs +++ b/tests/ModelContextProtocol.Tests/DockerEverythingServerTests.cs @@ -1,6 +1,5 @@ using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Transport; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Tests.Utils; namespace ModelContextProtocol.Tests; diff --git a/tests/ModelContextProtocol.Tests/GlobalUsings.cs b/tests/ModelContextProtocol.Tests/GlobalUsings.cs index 6d129626d..c802f4480 100644 --- a/tests/ModelContextProtocol.Tests/GlobalUsings.cs +++ b/tests/ModelContextProtocol.Tests/GlobalUsings.cs @@ -1,2 +1 @@ global using Xunit; -global using System.Net.Http; \ No newline at end of file diff --git a/tests/ModelContextProtocol.Tests/McpJsonUtilitiesTests.cs b/tests/ModelContextProtocol.Tests/McpJsonUtilitiesTests.cs index 214bbc1a6..18dc680ef 100644 --- a/tests/ModelContextProtocol.Tests/McpJsonUtilitiesTests.cs +++ b/tests/ModelContextProtocol.Tests/McpJsonUtilitiesTests.cs @@ -1,5 +1,4 @@ -using ModelContextProtocol.Utils.Json; -using System.Text.Json; +using System.Text.Json; namespace ModelContextProtocol.Tests; diff --git a/tests/ModelContextProtocol.Tests/Protocol/CancellationTests.cs b/tests/ModelContextProtocol.Tests/Protocol/CancellationTests.cs index ae3f88acc..4def27938 100644 --- a/tests/ModelContextProtocol.Tests/Protocol/CancellationTests.cs +++ b/tests/ModelContextProtocol.Tests/Protocol/CancellationTests.cs @@ -1,6 +1,6 @@ using Microsoft.Extensions.DependencyInjection; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Messages; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; namespace ModelContextProtocol.Tests; diff --git a/tests/ModelContextProtocol.Tests/Protocol/ProtocolTypeTests.cs b/tests/ModelContextProtocol.Tests/Protocol/ProtocolTypeTests.cs index 7821d2ae6..df224debb 100644 --- a/tests/ModelContextProtocol.Tests/Protocol/ProtocolTypeTests.cs +++ b/tests/ModelContextProtocol.Tests/Protocol/ProtocolTypeTests.cs @@ -1,5 +1,4 @@ -using ModelContextProtocol.Protocol.Types; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Text.Json; namespace ModelContextProtocol.Tests.Protocol; diff --git a/tests/ModelContextProtocol.Tests/Protocol/RequestIdTests.cs b/tests/ModelContextProtocol.Tests/Protocol/RequestIdTests.cs index 10958d2db..e426c7469 100644 --- a/tests/ModelContextProtocol.Tests/Protocol/RequestIdTests.cs +++ b/tests/ModelContextProtocol.Tests/Protocol/RequestIdTests.cs @@ -1,5 +1,4 @@ -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Utils.Json; +using ModelContextProtocol.Protocol; using System.Text.Json; namespace ModelContextProtocol.Tests.Protocol; diff --git a/tests/ModelContextProtocol.Tests/Server/McpServerDelegatesTests.cs b/tests/ModelContextProtocol.Tests/Server/McpServerDelegatesTests.cs index 31176bc8c..cb7d48a92 100644 --- a/tests/ModelContextProtocol.Tests/Server/McpServerDelegatesTests.cs +++ b/tests/ModelContextProtocol.Tests/Server/McpServerDelegatesTests.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; namespace ModelContextProtocol.Tests.Server; diff --git a/tests/ModelContextProtocol.Tests/Server/McpServerLoggingLevelTests.cs b/tests/ModelContextProtocol.Tests/Server/McpServerLoggingLevelTests.cs index f8ffc9521..7cdbdb5b1 100644 --- a/tests/ModelContextProtocol.Tests/Server/McpServerLoggingLevelTests.cs +++ b/tests/ModelContextProtocol.Tests/Server/McpServerLoggingLevelTests.cs @@ -1,8 +1,9 @@ using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; namespace ModelContextProtocol.Tests.Server; + public class McpServerLoggingLevelTests { [Fact] diff --git a/tests/ModelContextProtocol.Tests/Server/McpServerPromptTests.cs b/tests/ModelContextProtocol.Tests/Server/McpServerPromptTests.cs index 6d1c765fd..4428cb1fd 100644 --- a/tests/ModelContextProtocol.Tests/Server/McpServerPromptTests.cs +++ b/tests/ModelContextProtocol.Tests/Server/McpServerPromptTests.cs @@ -1,6 +1,6 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using Moq; using System.ComponentModel; diff --git a/tests/ModelContextProtocol.Tests/Server/McpServerResourceTests.cs b/tests/ModelContextProtocol.Tests/Server/McpServerResourceTests.cs index 631e09b98..8682a0ee0 100644 --- a/tests/ModelContextProtocol.Tests/Server/McpServerResourceTests.cs +++ b/tests/ModelContextProtocol.Tests/Server/McpServerResourceTests.cs @@ -1,6 +1,6 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using Moq; using System.Reflection; diff --git a/tests/ModelContextProtocol.Tests/Server/McpServerTests.cs b/tests/ModelContextProtocol.Tests/Server/McpServerTests.cs index 446154189..2fd52cb9b 100644 --- a/tests/ModelContextProtocol.Tests/Server/McpServerTests.cs +++ b/tests/ModelContextProtocol.Tests/Server/McpServerTests.cs @@ -1,9 +1,7 @@ using Microsoft.Extensions.AI; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using ModelContextProtocol.Tests.Utils; -using ModelContextProtocol.Utils.Json; using System.Reflection; using System.Text.Json; using System.Text.Json.Nodes; diff --git a/tests/ModelContextProtocol.Tests/Server/McpServerToolTests.cs b/tests/ModelContextProtocol.Tests/Server/McpServerToolTests.cs index 71283ef13..cb98d9bce 100644 --- a/tests/ModelContextProtocol.Tests/Server/McpServerToolTests.cs +++ b/tests/ModelContextProtocol.Tests/Server/McpServerToolTests.cs @@ -1,8 +1,7 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; -using ModelContextProtocol.Protocol.Types; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; -using ModelContextProtocol.Utils.Json; using Moq; using System.Reflection; using System.Text.Json; diff --git a/tests/ModelContextProtocol.Tests/StdioServerIntegrationTests.cs b/tests/ModelContextProtocol.Tests/StdioServerIntegrationTests.cs index a28821fbe..db22ec244 100644 --- a/tests/ModelContextProtocol.Tests/StdioServerIntegrationTests.cs +++ b/tests/ModelContextProtocol.Tests/StdioServerIntegrationTests.cs @@ -1,5 +1,6 @@ using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Protocol; +using ModelContextProtocol.Server; using ModelContextProtocol.Tests.Utils; using System.Diagnostics; using System.Runtime.InteropServices; diff --git a/tests/ModelContextProtocol.Tests/Transport/SseClientTransportTests.cs b/tests/ModelContextProtocol.Tests/Transport/SseClientTransportTests.cs index 4efe5ec56..857e496aa 100644 --- a/tests/ModelContextProtocol.Tests/Transport/SseClientTransportTests.cs +++ b/tests/ModelContextProtocol.Tests/Transport/SseClientTransportTests.cs @@ -1,5 +1,5 @@ -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Client; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Tests.Utils; using System.Net; diff --git a/tests/ModelContextProtocol.Tests/Transport/SseResponseStreamTransportTests.cs b/tests/ModelContextProtocol.Tests/Transport/SseResponseStreamTransportTests.cs index 220746cd4..416d17193 100644 --- a/tests/ModelContextProtocol.Tests/Transport/SseResponseStreamTransportTests.cs +++ b/tests/ModelContextProtocol.Tests/Transport/SseResponseStreamTransportTests.cs @@ -1,4 +1,4 @@ -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Server; using ModelContextProtocol.Tests.Utils; using System.IO.Pipelines; diff --git a/tests/ModelContextProtocol.Tests/Transport/StdioClientTransportTests.cs b/tests/ModelContextProtocol.Tests/Transport/StdioClientTransportTests.cs index 8aadf95bc..7a7f39c20 100644 --- a/tests/ModelContextProtocol.Tests/Transport/StdioClientTransportTests.cs +++ b/tests/ModelContextProtocol.Tests/Transport/StdioClientTransportTests.cs @@ -1,5 +1,4 @@ using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Transport; using System.Runtime.InteropServices; namespace ModelContextProtocol.Tests.Transport; diff --git a/tests/ModelContextProtocol.Tests/Transport/StdioServerTransportTests.cs b/tests/ModelContextProtocol.Tests/Transport/StdioServerTransportTests.cs index d2efe77fd..242874730 100644 --- a/tests/ModelContextProtocol.Tests/Transport/StdioServerTransportTests.cs +++ b/tests/ModelContextProtocol.Tests/Transport/StdioServerTransportTests.cs @@ -1,9 +1,7 @@ using Microsoft.Extensions.Options; -using ModelContextProtocol.Protocol.Messages; -using ModelContextProtocol.Protocol.Transport; +using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; using ModelContextProtocol.Tests.Utils; -using ModelContextProtocol.Utils.Json; using System.IO.Pipelines; using System.Text; using System.Text.Json;