diff --git a/samples/AspNetCoreSseServer/Program.cs b/samples/AspNetCoreSseServer/Program.cs index 41f98ee..f24b6a1 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 8c5ae82..ba597ae 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 OpenAI; - -using OpenTelemetry; -using OpenTelemetry.Trace; +using Microsoft.Extensions.AI; using Microsoft.Extensions.Logging; +using ModelContextProtocol.Client; +using OpenAI; +using OpenTelemetry; 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 efd7114..844aa70 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 22a290e..5041dc8 100644 --- a/samples/EverythingServer/Program.cs +++ b/samples/EverythingServer/Program.cs @@ -7,7 +7,7 @@ using Microsoft.Extensions.DependencyInjection; 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 7e81262..524f350 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 045af2f..da18542 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 25027fa..f4c5d25 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 378cef6..8ba8b04 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 53ebfff..43e7e7b 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 99a218b..e3ee4fe 100644 --- a/samples/QuickstartClient/Program.cs +++ b/samples/QuickstartClient/Program.cs @@ -3,7 +3,6 @@ using Microsoft.Extensions.AI; 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 3539b4c..fc405d5 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 6a98008..ae4f697 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 c566a97..d58ffaf 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 80a959a..85612b1 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 3c485f1..95acac9 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 618cd36..bee89a2 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 f2f6ffd..0c6927e 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 836dcc5..c34aba6 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 bb50c91..26ffd44 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 1e60d2a..a65994c 100644 --- a/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs +++ b/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs @@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Http.Metadata; 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 cea6817..251e3bf 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 09eec87..0257f6d 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 86ea6fb..ec545c9 100644 --- a/src/ModelContextProtocol.AspNetCore/StreamableHttpHandler.cs +++ b/src/ModelContextProtocol.AspNetCore/StreamableHttpHandler.cs @@ -6,11 +6,8 @@ using Microsoft.Extensions.Logging; 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 703e01b..b6d09a2 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 ab608ef..5251789 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 9f377e4..68a92a2 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 e6f97e1..957eb73 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 c6c9844..70b382d 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 55c1343..30b3a94 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 0b675df..2a5d2a8 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 062aab8..d8c4e41 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 8faec5a..1fbb992 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 e764d55..fe02245 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 2478f8c..11d72a8 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 ccdfc75..78997b5 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 1b28655..df1cdac 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 b83204a..f67f6f0 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 d8ad6af..3c7210e 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 c65ba5e..5a5d10f 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 @@ using System.Text.RegularExpressions; #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 ce51beb..11a8285 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 07b78c7..3330f4d 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 bd6ab12..30607e5 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 080e90e..f903490 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 7c235ca..d590091 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 3e8ca58..95da6b7 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 dc74010..7a85786 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 f5c9d18..faf4a39 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 0000000..87bb430 --- /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 d4d0ef5..9ee2d06 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 f643136..a38b8c9 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 0e709d0..0d0ccbb 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 d501d34..300433e 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 625b558..ca97484 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 ab93efd..248538c 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.Text.Json.Nodes; 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 c42d765..cdb48e1 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 8e315ce..4b95207 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 151292b..7bfe99a 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 646e871..1e8874e 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 4a7b2ba..ad003f4 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 ce0b91c..a15e0bd 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 ee6778e..81e8d4f 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 265194c..0e83ef1 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 532c5fa..546e03a 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 3579232..050d133 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 7ca991d..a64d2a5 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 4ac6f14..dd28de5 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 ecf927d..029dac3 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 70dc460..4ba8a4c 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 0ca1fbf..d0cdaaa 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 e10791e..f6ec267 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 bb7cd8a..a2418e1 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 4ae6890..190c1dd 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 402472b..2c9bfc0 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 f1cb53a..52d8277 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 3a80290..bf6f75a 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 b8cb7e3..4fc36e9 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 b1252a4..7ebec95 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 436a1f4..5af4d07 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 14204c9..8427dee 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 1109e64..2229634 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 d9ac73d..e2ff0e6 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 0000000..fde4150 --- /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 f095c50..b082619 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 bdbd8d4..93d8f40 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 6e356cf..70072de 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 01eef51..098db13 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 dd259bf..7202ef2 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 ce31396..65b9e7c 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 8a323c3..0418b8c 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 820160f..9b2bce0 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 b31a8b3..05e7fc2 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 f982e78..9e50b54 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 630eb31..b0911da 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 8928954..aad315b 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 5acfb8a..0a32729 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 35e5bb2..feef775 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 a857401..9cf62b6 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 7bc4355..55d0b6e 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 b46e77b..12b6006 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 d307598..0000000 --- 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 7fd239c..4ec929e 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 e569d81..a91b3da 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 bfae67b..7069689 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 a1a44d8..89b1739 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 6fa6065..b1eb67b 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 96bcfda..e00f125 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 988085f..59643e4 100644 --- a/src/ModelContextProtocol/Protocol/Messages/ProgressNotification.cs +++ b/src/ModelContextProtocol/Protocol/ProgressNotification.cs @@ -2,7 +2,7 @@ using System.ComponentModel; 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 ac5ceb1..f980bdf 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 c98b23d..8e2139f 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 c8f6165..a22bea9 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 30d02b1..c2dfd15 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 53aa804..79fe466 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 17475f8..8b1f194 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 92989a6..e5ae44b 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 94d3006..4bbff1f 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 f624e00..8d445de 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 a0b094e..3b511ef 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 f4fb4c4..20884b7 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 6b56a91..90f5621 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 3e25a11..d2c1f55 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 0c392db..7991736 100644 --- a/src/ModelContextProtocol/Protocol/Types/ResourceContents.cs +++ b/src/ModelContextProtocol/Protocol/ResourceContents.cs @@ -3,7 +3,7 @@ using System.Diagnostics; 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 8431857..94ef68c 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 f4b1c62..09f1720 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 e93b8d9..12343cc 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 5b6ee9c..d633ce4 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 1d42563..72604bd 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 d087cee..e63c19c 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 96d9a64..2f5705c 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 77a29bf..0cbbb1c 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 6406ea4..1548241 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 fbf1f1d..e95360a 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 e40c290..6716ba4 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 207b27f..754b8c2 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 a4c7e60..71e1101 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 417a366..fbbc6ab 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 8755439..b5789de 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 56e55a6..31b3b14 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 0824f49..ac35412 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 93a3dbb..854a4bd 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 459896e..6a78d32 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 2f7e1a1..9e1cdbc 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 19eb499..f0d430e 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 cec6924..366eb23 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 a209bea..b5e4900 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 92f1ee4..ee32103 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 2a4878a..a1f4be1 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 0d86480..db594da 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 9b62217..ec2b87a 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 a6f8c36..338c631 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 @@ internal sealed class McpServer : McpEndpoint, IMcpServer 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 be43f6f..0736b86 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 89a6fd0..50d4188 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 b749ab0..83b7ad9 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 bae26ca..3d6de61 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 871f55a..7bfe023 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 df2650c..2260617 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 ed66a41..d47b02c 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 17f6dfd..77584c4 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 b6ec15f..346c032 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 c598923..9c5347c 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 67458ef..f2aa2d0 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 8c7f70a..e096a15 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 14fcb7c..80d6385 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 88f2d13..7437fae 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 7079127..6f266ec 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 f830862..82562d9 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 c2cce9f..18571e2 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 00b5884..df7b008 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 a2b9fd4..9528e4f 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 ce6e33c..27b8ccd 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 9ec8045..6b024ff 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 62834e7..f222fbf 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 b224706..bc6b70c 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 37888c2..0000000 --- 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 146185c..0000000 --- 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 aa01a89..ec27122 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 f66a828..9e77c1f 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 1aefb84..ee71753 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 602aa0c..ef4277a 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 030701c..5552b53 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 36ee4e8..cf49fee 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpTests.cs @@ -3,7 +3,6 @@ using Microsoft.AspNetCore.Http; 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 340cfda..24acd0b 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/SseIntegrationTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/SseIntegrationTests.cs @@ -6,10 +6,8 @@ using Microsoft.Extensions.Logging; 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 5553163..1eee020 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 7fbea21..eb89912 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 21b9cac..b1b6180 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 5b398b9..2f364be 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 2d07577..94540f8 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs @@ -4,11 +4,8 @@ using Microsoft.AspNetCore.Http.Json; 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 196b5b6..17b1234 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpServerConformanceTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpServerConformanceTests.cs @@ -4,11 +4,9 @@ using Microsoft.Extensions.Logging; 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 bec3825..64505b3 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 6be6025..10f2aec 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 bfd8568..583d687 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 adef002..bc1787e 100644 --- a/tests/ModelContextProtocol.Tests/Client/McpClientExtensionsTests.cs +++ b/tests/ModelContextProtocol.Tests/Client/McpClientExtensionsTests.cs @@ -2,10 +2,8 @@ using Microsoft.Extensions.AI; 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 c5e7c70..2b8b756 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 e442883..634afa9 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 3412033..dec5ad0 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 3e1ac8e..14fd02e 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 c3c4586..326b235 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 f304f83..45e58fe 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 d0cfd06..501730b 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 3512277..e857669 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 fd33f1e..010d1b0 100644 --- a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsToolsTests.cs +++ b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsToolsTests.cs @@ -3,11 +3,8 @@ using Microsoft.Extensions.DependencyInjection; 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 51663d7..6183c35 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 5815a62..ef0fbf1 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 490b792..116c62a 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 d0c5960..acc5290 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 6d12962..c802f44 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 214bbc1..18dc680 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 ae3f88a..4def279 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 7821d2a..df224de 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 10958d2..e426c74 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 31176bc..cb7d48a 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 f8ffc95..7cdbdb5 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 6d1c765..4428cb1 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 631e09b..8682a0e 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 4461541..2fd52cb 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 71283ef..cb98d9b 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 a28821f..db22ec2 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 4efe5ec..857e496 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 220746c..416d171 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 8aadf95..7a7f39c 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 d2efe77..2428747 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;