← Alle artikler
3 okt. 2026 3 min. læsning MCP AI Umbraco .NET

How UForum-MCP works: giving AI assistants access to the Umbraco forum

Et kig på værktøjerne, Discourse-endpoints bag dem, og en lille C# MCP-server, du selv kan bygge.

BT
Bishal Tim · Umbraco MVP, AI- og .NET-arkitekt

AI-assistenter er gode til at skrive kode, men de gætter ofte, når du stiller dem et Umbraco-spørgsmål. De kan ikke se community-forummet, og svaret, du har brug for, ligger som regel i en tråd, nogen allerede har løst. UForum-MCP er en lille server, jeg har bygget for at løse det. Den lader en AI-assistent søge i Umbraco-forummet, den officielle dokumentation og GitHub direkte.

Artiklen forklarer, hvordan det virker, og viser hvor lidt kode en simpel MCP-server kræver.

Hvad er MCP?

Model Context Protocol (MCP) er en standard måde, en AI-assistent kan bruge eksterne værktøjer på. Du kører en MCP-server, forbinder den til en assistent som Cursor, og assistenten kan kalde de værktøjer, serveren tilbyder, i stedet for kun at støtte sig til det, den husker.

Hvad UForum-MCP kan

Serveren er en .NET 10 NuGet-pakke. Den tilbyder disse værktøjer:

  • Søg i forummet efter relevante indlæg og emner, med direkte links til diskussionerne.
  • Hent de seneste emner, så du kan se, hvad communityet taler om lige nu.
  • List kategorierne, så en søgning kan fokusere på den rigtige del af forummet.
  • Søg alle steder på én gang. Ét kald søger i forummet, den officielle dokumentation og GitHub sammen, og kan tage din Umbraco-version med.
  • Træk kodestykker ud af resultaterne, med løsningskoden fremhævet for sig.
  • Udkast til et forumindlæg, når der ikke findes en løsning, som et pænt indlæg med din Umbraco-version.

Hvordan den taler med forummet

Umbraco-forummet kører på Discourse, som udstiller sine data som JSON. Serveren kalder et par enkle endpoints:

  • search.json?q=... til søgning
  • t/{topicId}.json til at læse ét emne
  • latest.json til nylig aktivitet
  • categories.json til listen over kategorier

Det er det meste af magien. Serveren omsætter assistentens forespørgsel til et af de kald og rydder op i resultatet, så assistenten kan læse det.

En lille MCP-server i C#

Her er en forenklet skitse, ikke pakkens rigtige kode, af en server med ét værktøj. Den bruger den officielle MCP C# SDK.

using System.ComponentModel;
using ModelContextProtocol.Server;

[McpServerToolType]
public static class ForumTools
{
    [McpServerTool, Description("Search the Umbraco community forum.")]
    public static async Task<string> SearchForum(
        HttpClient http,
        [Description("What to search for")] string query)
    {
        var url = $"https://forum.umbraco.com/search.json?q={Uri.EscapeDataString(query)}";
        return await http.GetStringAsync(url);
    }
}

Og startup-koden, der hoster den:

var builder = Host.CreateApplicationBuilder(args);

builder.Services.AddHttpClient();
builder.Services
    .AddMcpServer()
    .WithStdioServerTransport()
    .WithToolsFromAssembly();

await builder.Build().RunAsync();

Beskrivelsesteksten betyder mere, end den ser ud til. Assistenten læser den for at beslutte, hvornår dit værktøj skal bruges, så skriv den tydeligt.

Tips, hvis du bygger din egen

  1. Start med ét værktøj og få det til at virke i din assistent, før du tilføjer flere.
  2. Returner rene resultater. Rå JSON virker, men kortere, pænere tekst bruger færre tokens og giver bedre svar.
  3. Bed om versionen. Umbraco ændrer sig meget mellem versioner, så et værktøj, der tager versionen med som input, finder bedre svar.
  4. Lad den sige "ikke fundet". Et godt forumindlæg, når intet er fundet, er mere nyttigt end et opdigtet svar.

Prøv det

UForum-MCP ligger på NuGet og kræver .NET 10 SDK eller nyere. Du finder den på NuGet-siden.

BT
Bishal Tim

Umbraco MVP fra Kathmandu. Jeg skriver om Umbraco, AI og .NET, og hjælper folk i gang.

Mere på Skrift Kom i kontakt