From 9ea86bd07bbdf70269ab54ed1bd460727631d8e2 Mon Sep 17 00:00:00 2001 From: Aezan <110289332+AezanPathan@users.noreply.github.com> Date: Sun, 28 Sep 2025 22:25:49 +0530 Subject: [PATCH 1/2] =?UTF-8?q?Added=20HTML=20=E2=86=92=20Markdown=20conve?= =?UTF-8?q?rsion=20tool?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...McpSamples.MarkdownToHtml.HybridApp.csproj | 1 + .../Tools/MarkdownToHtmlTool.cs | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/McpSamples.MarkdownToHtml.HybridApp.csproj b/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/McpSamples.MarkdownToHtml.HybridApp.csproj index 6ae9f848..9950c33e 100644 --- a/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/McpSamples.MarkdownToHtml.HybridApp.csproj +++ b/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/McpSamples.MarkdownToHtml.HybridApp.csproj @@ -15,6 +15,7 @@ + diff --git a/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/Tools/MarkdownToHtmlTool.cs b/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/Tools/MarkdownToHtmlTool.cs index b2082858..cd67c430 100644 --- a/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/Tools/MarkdownToHtmlTool.cs +++ b/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/Tools/MarkdownToHtmlTool.cs @@ -2,6 +2,7 @@ using System.Text.RegularExpressions; using Markdig; +using ReverseMarkdown; using McpSamples.MarkdownToHtml.HybridApp.Configurations; using McpSamples.MarkdownToHtml.HybridApp.Extensions; @@ -21,6 +22,13 @@ public interface IMarkdownToHtmlTool /// The markdown text. /// The converted HTML text. Task ConvertAsync(string markdown); + + /// + /// Converts HTML text to markdown. + /// + /// + /// + Task ReverseConvertAsync(string html); } /// @@ -77,4 +85,25 @@ public async Task ConvertAsync([Description("The markdown text")] string return await Task.FromResult(html); } + + + [McpServerTool(Name = "convert_html_to_markdown", Title = "Convert HTML to Markdown")] + [Description("Converts HTML text to Markdown.")] + public async Task ReverseConvertAsync([Description("The HTML text")] string html) + { + var converter = new Converter(); + var markdown = default(string); + + try + { + markdown = converter.Convert(html); + } + catch (Exception ex) + { + logger.LogError(ex, "Error converting HTML to Markdown"); + markdown = $"Error: {ex.Message}"; + } + + return await Task.FromResult(markdown); + } } From 1406625b524f1691cb1300fd4cfd8e7f8445834a Mon Sep 17 00:00:00 2001 From: Aezan <110289332+AezanPathan@users.noreply.github.com> Date: Sun, 5 Oct 2025 15:57:07 +0530 Subject: [PATCH 2/2] =?UTF-8?q?Move=20HTML=20=E2=86=92=20Markdown=20logic?= =?UTF-8?q?=20to=20separate=20HtmlToMarkdownTool?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tools/HtmlToMarkdownTool.cs | 47 +++++++++++++++++++ .../Tools/MarkdownToHtmlTool.cs | 29 ------------ 2 files changed, 47 insertions(+), 29 deletions(-) create mode 100644 markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/Tools/HtmlToMarkdownTool.cs diff --git a/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/Tools/HtmlToMarkdownTool.cs b/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/Tools/HtmlToMarkdownTool.cs new file mode 100644 index 00000000..39443940 --- /dev/null +++ b/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/Tools/HtmlToMarkdownTool.cs @@ -0,0 +1,47 @@ +using System.ComponentModel; +using ReverseMarkdown; + +using ModelContextProtocol.Server; + +namespace McpSamples.MarkdownToHtml.HybridApp.Tools; + +/// +/// This provides interfaces for the HTML to markdown tool. +/// +public interface IHtmlToMarkdownTool +{ + /// + /// Converts HTML text to markdown. + /// + /// + /// + Task ConvertAsync(string html); +} + +/// +/// This represents the tool entity for converting HTML to markdown. +/// +/// +[McpServerToolType] +public class HtmlToMarkdownTool(ILogger logger) : IHtmlToMarkdownTool +{ + [McpServerTool(Name = "convert_html_to_markdown", Title = "Convert HTML to Markdown")] + [Description("Converts HTML text to Markdown.")] + public async Task ConvertAsync([Description("The HTML text")] string html) + { + var converter = new Converter(); + var markdown = default(string); + + try + { + markdown = converter.Convert(html); + } + catch (Exception ex) + { + logger.LogError(ex, "Error converting HTML to Markdown"); + markdown = $"Error: {ex.Message}"; + } + + return await Task.FromResult(markdown); + } +} diff --git a/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/Tools/MarkdownToHtmlTool.cs b/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/Tools/MarkdownToHtmlTool.cs index cd67c430..b2082858 100644 --- a/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/Tools/MarkdownToHtmlTool.cs +++ b/markdown-to-html/src/McpSamples.MarkdownToHtml.HybridApp/Tools/MarkdownToHtmlTool.cs @@ -2,7 +2,6 @@ using System.Text.RegularExpressions; using Markdig; -using ReverseMarkdown; using McpSamples.MarkdownToHtml.HybridApp.Configurations; using McpSamples.MarkdownToHtml.HybridApp.Extensions; @@ -22,13 +21,6 @@ public interface IMarkdownToHtmlTool /// The markdown text. /// The converted HTML text. Task ConvertAsync(string markdown); - - /// - /// Converts HTML text to markdown. - /// - /// - /// - Task ReverseConvertAsync(string html); } /// @@ -85,25 +77,4 @@ public async Task ConvertAsync([Description("The markdown text")] string return await Task.FromResult(html); } - - - [McpServerTool(Name = "convert_html_to_markdown", Title = "Convert HTML to Markdown")] - [Description("Converts HTML text to Markdown.")] - public async Task ReverseConvertAsync([Description("The HTML text")] string html) - { - var converter = new Converter(); - var markdown = default(string); - - try - { - markdown = converter.Convert(html); - } - catch (Exception ex) - { - logger.LogError(ex, "Error converting HTML to Markdown"); - markdown = $"Error: {ex.Message}"; - } - - return await Task.FromResult(markdown); - } }