BotSharp/src/Infrastructure/BotSharp.MCP/MCPClientManager.cs

33 lines
838 B
C#
Raw Normal View History

2025-02-23 14:55:35 +00:00
using BotSharp.Core.Mcp.Settings;
using Microsoft.Extensions.Logging;
using ModelContextProtocol.Client;
using System;
using System.Linq;
using System.Threading.Tasks;
2025-02-23 14:55:35 +00:00
namespace BotSharp.Core.Mcp;
public class MCPClientManager : IDisposable
{
public ILoggerFactory LoggerFactory { get; }
private readonly MCPSettings mcpSettings;
public MCPClientManager(MCPSettings settings, ILoggerFactory loggerFactory)
{
mcpSettings = settings;
LoggerFactory = loggerFactory;
}
public async Task<IMcpClient> GetMcpClientAsync(string serverId)
{
return await McpClientFactory.CreateAsync(mcpSettings.McpServerConfigs
.Where(x=> x.Name == serverId).First(), mcpSettings.McpClientOptions);
}
public void Dispose()
{
LoggerFactory?.Dispose();
}
}