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