diff --git a/src/Infrastructure/BotSharp.Abstraction/MCP/Models/McpServerConfigModel.cs b/src/Infrastructure/BotSharp.Abstraction/MCP/Models/McpServerConfigModel.cs index e133bf539..9c4b72dda 100644 --- a/src/Infrastructure/BotSharp.Abstraction/MCP/Models/McpServerConfigModel.cs +++ b/src/Infrastructure/BotSharp.Abstraction/MCP/Models/McpServerConfigModel.cs @@ -28,10 +28,19 @@ public class McpServerConfigModel public string? Description { get; set; } public McpSseServerConfig? SseConfig { get; set; } + public McpHttpServerConfig? HttpConfig { get; set; } public McpStdioServerConfig? StdioConfig { get; set; } } -public class McpSseServerConfig +public class McpSseServerConfig : McpHttpServerConfigBase +{ +} + +public class McpHttpServerConfig : McpHttpServerConfigBase +{ +} + +public class McpHttpServerConfigBase { public string EndPoint { get; set; } = null!; public TimeSpan ConnectionTimeout { get; init; } = TimeSpan.FromSeconds(30); @@ -42,6 +51,6 @@ public class McpStdioServerConfig { public string Command { get; set; } = null!; public IList? Arguments { get; set; } - public Dictionary? EnvironmentVariables { get; set; } + public Dictionary? EnvironmentVariables { get; set; } public TimeSpan ShutdownTimeout { get; set; } = TimeSpan.FromSeconds(5); } \ No newline at end of file diff --git a/src/Infrastructure/BotSharp.Core/MCP/Managers/McpClientManager.cs b/src/Infrastructure/BotSharp.Core/MCP/Managers/McpClientManager.cs index 36679183d..a07792919 100644 --- a/src/Infrastructure/BotSharp.Core/MCP/Managers/McpClientManager.cs +++ b/src/Infrastructure/BotSharp.Core/MCP/Managers/McpClientManager.cs @@ -28,7 +28,17 @@ public McpClientManager( } IClientTransport? transport = null; - if (config.SseConfig != null) + if (config.HttpConfig != null) + { + transport = new HttpClientTransport(new HttpClientTransportOptions + { + Name = config.Name, + Endpoint = new Uri(config.HttpConfig.EndPoint), + AdditionalHeaders = config.HttpConfig.AdditionalHeaders, + ConnectionTimeout = config.HttpConfig.ConnectionTimeout + }); + } + else if (config.SseConfig != null) { transport = new HttpClientTransport(new HttpClientTransportOptions {