Files
LazyBearWorks/LazyBear.MCP/Program.cs
Shahovalov MIkhail 879becadfe feat: внедрение RazorConsole TUI с runtime-управлением MCP-инструментами
- Добавлен RazorConsole.Core для интерактивного TUI-дашборда
- ToolRegistryService: живое включение/отключение модулей и отдельных методов
- InMemoryLogSink: кольцевой буфер логов с фильтрацией по модулю
- TUI: 3 таба (Overview, Logs, Settings)
- IToolModule: generic-интерфейс для легкого добавления новых MCP-модулей
- Guard-проверка TryCheckEnabled() во всех существующих инструментах
2026-04-13 17:31:28 +03:00

42 lines
2.1 KiB
C#

using LazyBear.MCP.Services.Confluence;
using LazyBear.MCP.Services.Jira;
using LazyBear.MCP.Services.Kubernetes;
using LazyBear.MCP.Services.Logging;
using LazyBear.MCP.Services.ToolRegistry;
using LazyBear.MCP.TUI;
using ModelContextProtocol.Server;
var builder = WebApplication.CreateBuilder(args);
// ── InMemoryLogSink: регистрируем Singleton и кастомный логгер ───────────────
var logSink = new InMemoryLogSink();
builder.Services.AddSingleton(logSink);
builder.Logging.AddProvider(new InMemoryLoggerProvider(logSink));
// ── MCP-провайдеры ───────────────────────────────────────────────────────────
builder.Services.AddSingleton<K8sClientProvider>();
builder.Services.AddSingleton<JiraClientProvider>();
builder.Services.AddSingleton<ConfluenceClientProvider>();
// ── ToolRegistry ─────────────────────────────────────────────────────────────
builder.Services.AddSingleton<ToolRegistryService>();
// ── Модули инструментов (generic: добавь новый IToolModule — он появится в TUI)
builder.Services.AddSingleton<IToolModule, JiraToolModule>();
builder.Services.AddSingleton<IToolModule, KubernetesToolModule>();
builder.Services.AddSingleton<IToolModule, ConfluenceToolModule>();
// ── MCP-сервер ───────────────────────────────────────────────────────────────
builder.Services.AddMcpServer()
.WithHttpTransport()
.WithToolsFromAssembly();
// ── TUI как фоновый сервис ───────────────────────────────────────────────────
builder.Services.AddHostedService<TuiHostedService>();
var app = builder.Build();
app.MapMcp();
app.Run("http://localhost:5000");