| 1 | using System.Text; |
| 2 | |
| 3 | namespace ExportMcpManifest; |
| 4 | |
| 5 | internal static class McpToolsDocMarkdown |
| 6 | { |
| 7 | public static string Build(IEnumerable<(string Name, string Description)> tools) |
| 8 | { |
| 9 | var sb = new StringBuilder(); |
| 10 | sb.AppendLine("# Webcam Capture MCP — каталог тулов"); |
| 11 | sb.AppendLine(); |
| 12 | sb.AppendLine("<!-- GENERATED:ToolCatalog START -->"); |
| 13 | sb.AppendLine(); |
| 14 | sb.AppendLine("> Автогенерация из `ToolCatalog.Build()`. Не править этот блок вручную."); |
| 15 | sb.AppendLine(">"); |
| 16 | sb.AppendLine("> Обновление: из каталога проекта выполнить `dotnet run --project tools/ExportMcpManifest -- --write`."); |
| 17 | sb.AppendLine(">"); |
| 18 | sb.AppendLine("> Тексты совпадают с полем `description` у инструментов MCP; полная схема — в `inputSchema`."); |
| 19 | sb.AppendLine(); |
| 20 | |
| 21 | foreach (var (name, description) in tools) |
| 22 | { |
| 23 | sb.AppendLine($"### `{name}`"); |
| 24 | sb.AppendLine(); |
| 25 | sb.AppendLine(description.TrimEnd()); |
| 26 | sb.AppendLine(); |
| 27 | } |
| 28 | |
| 29 | sb.AppendLine("<!-- GENERATED:ToolCatalog END -->"); |
| 30 | sb.AppendLine(); |
| 31 | return sb.ToString(); |
| 32 | } |
| 33 | } |
| 34 | |
View only · write via MCP/CIDE