Discourse MCP nutzen, um schnell ein Theme zu erstellen

,

Oft ist die größte Hürde beim Start einer Community das „Eigengestaltete“.

Man möchte, dass Schriftart und Stil zu seiner Marke passen.

In diesem Beitrag möchte ich zeigen, was sich auf recht unkomplizierte Weise mit den folgenden Mitteln erreichen lässt:

Ich habe mich hier für Codex entschieden, da das kürzlich veröffentlichte GPT-6 Astra ein unglaublich talentierter visueller Künstler ist. Kimi K3 und Fable sind in dieser Disziplin ebenfalls ziemlich stark, aber für diese Demo verwende ich Astra.

Schritt 1 – API-Schlüssel generieren

Gehe zu: your.site/admin/api/keys/new

Generiere einen globalen API-Schlüssel.

Sicherheitshinweis: Bewahre diesen Schlüssel sicher auf und erwäge, ihn nach Abschluss der Arbeiten zu widerrufen, da er unbegrenzten Zugriff auf die Website bietet.

Schritt 2 – Discourse MCP hinzufügen

In diesem Tutorial verwende ich Codex:

Bearbeite: ~/.codex/config.toml

[mcp_servers.discourse]
command = "npx"
args = [
  "-y",
  "@discourse/mcp@latest",
  "--toolsets",
  "all",
  "--allow-writes",
  "--site",
  "https://figment123.discourse.group",
  "--auth_pairs",
  '[{"site":"YOUR_SITE","api_key":"YOUR_API_KEY","api_username":"system"}]',
]

(Hinweis: Codex lässt es nicht zu, auszuwählen, welche MCPs aktiviert oder deaktiviert sind; alles in der Konfiguration wird aktiviert. Du kannst enabled = false eintragen, um ein MCP vorübergehend zu deaktivieren.)

:writing_hand: Ein Hinweis zu den Tools: Das Discourse MCP unterstützt über 140 Tools, diese Konfiguration macht sie alle verfügbar. Moderne Harnesses wie Claude und Codex können damit problemlos umgehen, allerdings könnten viele andere Harnesses bei so einer hohen Tool-Anzahl Schwierigkeiten haben – beispielsweise wird Grok Build ein Filtern erfordern.

Sobald du das Discourse MCP hinzugefügt hast, stelle sicher, dass dein Agent darauf zugreifen kann:

Schritt 3 – Gib deinem Agenten die Tools, die er für die Arbeit braucht

Ein Agent liefert deutlich bessere Ergebnisse, wenn er über Folgendes verfügt:

  1. Augen, also die Fähigkeit, seine Arbeit zu sehen. (Playwright MCP, Computer Use usw.)
  2. Kontext, das Discourse MCP hilft dabei, aber auch der Discourse-Quellcode.
  3. Bildgenerierung – falls du Assets usw. benötigst.

Die ChatGPT-App hat einen integrierten Browser; stelle sicher, dass er diesen verwendet. Klonen Sie das discourse/discourse-Codebase und starte deinen Agenten aus dem Discourse-Verzeichnis.

Keines davon ist erforderlich, aber es führt zu deutlich besseren Ergebnissen, wenn es vorhanden ist.

Schritt 4 – Gib deinem Agenten Intelligenz und eine klare Aufgabenstellung

Da ich in diesem Fall sehr gute Ergebnisse sehen wollte, entschied ich mich für GPT-6 Astra XHIGH.

Anschließend verfasste ich mit meiner KI eine kleine Aufgabenstellung (Briefing) darüber, was ich wollte (ein Community-Theme im Stil des New Yorker).

Von KI verfasste Aufgabenstellung

Erstelle The Salon, ein poliertes Discourse-Theme, das demonstriert, wie radikal ein Kunde die Identität von Discourse transformieren kann. Die kreative Referenz ist The New Yorker: eine redaktionelle Institution, deren Leser an der Unterhaltung teilnehmen. Erstelle eine originelle Identität, keine Replik – keine entlehnten Logos oder nicht lizenzierten proprietären Schriftarten. Verwarme warmes Elfenbein (#F7F4ED), fast schwarze Tinte (#20201E), zurückhaltendes redaktionelles Rot (#B52B32), feine Linien, großzügigen Weißraum, ausdrucksstarke Serifen-Überschriften, lesbaren Serifen-Fließtext und kompakte Sans-Serif-Metadaten. Monochrome Illustrationen sollten Witz und Charakter hinzufügen. Du hast kreative Freiheit, alle Assets, die die Demo benötigt, zu beschaffen, herunterzuladen oder zu generieren – Schriftarten, Illustrationen, Fotografie, Avatare und Icons – unter Verwendung entsprechend lizenzierter Materialien und unter Beibehaltung der Quellenangabe, wo erforderlich. Vermeide generische SaaS-Karten, falsches Pergament und dekorativen Ballast. Strebe nach einem zeitgenössischen Literaturmagazin mit einer lebendigen Community im Inneren, nicht nach einem Standard-Forum mit anderen Farben.

Du bist ausdrücklich ermächtigt, die Demo-Instanz mit den Kategorien, Themen, Antworten, fiktiven Beitragsprofilen und unterstützenden Inhalten zu bestücken, die benötigt werden, um das Erlebnis überzeugend zu machen. Bewahre den vorhandenen echten Inhalt auf und halte die fiktive Aktivität klar als Demo-Daten erkennbar. Erstelle fünf redaktionelle Abteilungen – The Commons, Arts & Letters, City Life, Science & Ideas, Table Talk – mit eigenständigen Beschreibungen und Illustrationen. Baue eine starke THE SALON-Masthead, eine kuratierte Leitdiskussion, sekundäre Schlagzeilen und eine Sektion für die neuesten Unterhaltungen. Befülle sie mit durchdachten, vielfältigen Diskussionen wie „Wann wurde aus jedem Hobby ein Nebenjob?“ und „Was würde tatsächlich deine Meinung ändern?“, mit überzeugenden Eröffnungsbeiträgen, substanziellen Meinungsverschiedenheiten, kurzen Antworten, Zitaten und gut ausgewählten Bildern. Füge genug Inhalt hinzu, um Dichte, Scrollen und Navigation zu demonstrieren; verwende keinen wiederholten Fülltext und lass keine wichtigen Screens leer. Jede Schlagzeile muss ein echtes Thema öffnen, und Aktivität, Antwortzähler und ungelesene Zustände müssen sichtbar bleiben. Trage die Identität durch die Kategorielisten, Themenseiten, Suche und den Composer: Eröffnungsbeiträge sollten sich wie schön gesetzte Essays anfühlen, während Antworten kompakte, nutzbare Unterhaltungen bleiben. Mobile sollte zu einer ruhigen Ein-Spalten-Erfahrung werden, und der dunkle Modus sollte ebenso durchdacht wirken.

Prüfe die Ziel-Discourse-Version und die unterstützten Theme-APIs, bevor du Implementierungsdetails wählst. Bevorzuge ein wartbares Theme und fokussierte Theme-Komponenten; vermeide Core-Patches, unnötige Plugins, brüchige DOM-Manipulation und erfundene Funktionen. Mache die redaktionelle Kuratierung explizit und konfigurierbar. Arbeite autonom an reversiblen Design-, Asset- und Staging-Entscheidungen, statt bei jedem Detail um Genehmigung zu bitten; etabliere die visuelle Sprache mit einer repräsentativen Startseite und einer befüllten Themenseite, bevor du die unterstützenden Oberflächen fertigstellst. Liefere ein installierbares Theme, die erforderlichen Komponenten, eine reproduzierbare Demo-Inhalts-Einrichtung, die Herkunft der Assets und knappe Installationsanweisungen. Verifiziere das Ergebnis in einer echten Discourse-Instanz auf Desktop und Mobile, einschließlich Tastaturnavigation, Kontrast, ungelesenen Zuständen, Suche, Zitieren und Verfassen. Erfasse die gleiche gestufte Community vor und nach der Anwendung des Themas, damit die Transformation unbestreitbar ist. Der Standard ist eine kundentaugliche Demonstration – keine Mockup, nicht nur eine schöne Startseite, sondern eine kohärente, funktionierende Community mit einem völlig anderen Gefühl des Ortes.

  • Konsultiere den Discourse-Quellcode bei Bedarf
  • https://figment123.discourse.group/ ist eine Demo-Seite, du kannst damit tun, was du willst, schau dir die Ergebnisse an, während du arbeitest, aktiviere das Theme
  • Erstelle Themen bei Bedarf

Schritt 5 – Sieht großartig aus!

Eine Stunde und zehn Minuten später ist Astra Xhigh fertig.

Ein wunderschönes New Yorker-inspiriertes Theme.

Das Theme ist nicht perfekt, es hat Randfälle; ich würde einen Schritt 6 empfehlen, bei dem du Bereiche einfügst, in denen das Design nicht stimmt, und der Agent es korrigiert. Aber als Ausgangspunkt ist es absolut erstaunlich, dass wir das heute können. Vor einem Jahr war das noch nicht möglich.

Beispiel für eine Feinjustierung in Echtzeit:

24 „Gefällt mir“

Sofern ich nichts übersehe, hast du dafür ein eigenes AI-Agent-Harness erstellt. :high_five: :+1:

Da ein AI-Agent-Harness ein breiteres Konzept ist als ein AI-Coding-Harness – wie Claude Code, OpenAI Codex oder OpenCode – habe ich nach einer guten Einführung für alle, die mit der Terminologie noch nicht vertraut sind und etwas Klarheit schaffen wollen, gesucht:

Wenn man nur einen einzigen Satz im Gedächtnis behalten will:

Ein Modell denkt. Ein Agent handelt. Ein Harness verhindert, dass der Agent wie ein Idiot handelt.


Persönlich glaube ich, dass wir den Punkt erreichen, an dem Agenten selbst weniger neu sind, während maßgeschneiderte AI-Harnesses der interessantere Teil der Geschichte werden.

Statt einfach zu fragen: „Welchen Agenten nutzt du?“, wird die nützlichere Frage zunehmend: „Welches Harness hast du darum herum gebaut?“

2 „Gefällt mir“

Nein, ich habe zwar ein eigenes Harness gebaut, aber das hier läuft komplett mit der Vanilla-ChatGPT-App auf Linux, Discourse MCP und einer Discourse-Testversion.

Auf dem Mac ist ChatGPT sogar noch leistungsfähiger: Es kann jede App steuern und könnte beispielsweise während des Entwicklungsprozesses in Firefox und Chrome testen oder sogar den iPhone-Simulator nutzen.

Mit meinem eigenen Harness ließen sich ähnliche Ergebnisse erzielen; ich werde ein anderes Beispiel posten. https://chatgpt.com/download/

6 „Gefällt mir“

Ich füge einfach eine neue Veröffentlichung hinzu, die ich interessant fand, für alle, die eine Alternative zu den US-Modellen vergleichen und bewerten möchten:

1 „Gefällt mir“

Ich kann später definitiv eine kurze Demo damit machen, aber ich bezweifle, dass es auch nur ansatzweise an Astra herankommt.

3 „Gefällt mir“

Schön! Mit dem Hauptartikel kann ich mich besonders gut identifizieren! :sweat_smile:

Ich war damals sehr skeptisch, aber DeepSeek hat mir mit seiner V4-Version gezeigt, dass es sich gelohnt hat. GPT-6 Astra ist ein Frontier-Modell, aber es ist sehr wahrscheinlich, dass DS 4.1 für Aufgaben wie diese eine wirklich gute Alternative sein kann.

Ja, um fair zu testen, muss ich die Astra-Arbeit in meinem eigenen Testaufbau neu aufsetzen und dann das LLM tauschen, das wird also noch ein bisschen dauern.

das funktioniert auch für Self-Hoster


außerdem hier mein Versuch. Ich muss sagen, dass es für das genaue Projekt/die genaue Community, an der ich arbeite, nicht ideal ist, aber es hat trotzdem einen guten Job gemacht.


4 „Gefällt mir“

Das ist großartig! Ich schätze auch den Realismus in deiner Erfahrung mit der KI (“Mann…” lol) :laughing:

1 „Gefällt mir“

Ich habe einen Testlauf mit DeepSeek 4.1 flash max durchgeführt.

Das vollständige Protokoll findest du hier: https://gisthost.github.io/?28dedf78da999ccca5b5b4feb1d58fc9/index.html

Dieser Test war etwas kontaminiert, da ich ihn in einem dv-Container durchgeführt habe und der Agent zu einem bestimmten Zeitpunkt entschied, Docker effizienter für die Änderungen zu nutzen, anstatt auf unser MCP zu setzen.

Für die Bildgenerierung habe ich Qwen 3 Image verwendet.

Für die visuellen Checks habe ich dem Agenten das chrome-devtools-mcp zur Verfügung gestellt. Dies lässt sich leicht so konfigurieren, dass es Chromium unter Linux verwendet, was meine bevorzugte Option ist:

   "chromium-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@latest",
        "--headless=true",
        "--executable-path=/usr/bin/chromium",
        "--chrome-arg=--no-sandbox",
        "--chrome-arg=--disable-dev-shm-usage"
      ]
    },

Der gesamte Lauf stützte sich auf DeepSeek 4.1 flash, sowohl für den Treiber- als auch für die Sub-Agenten.

Ich habe term-llm.com verwendet, um es im TUI-Modus zu steuern:

Ergebnisse:

Beobachtungen

Die Aufgabenstellung (Brief) ist entscheidend. Wenn du eine großartige Aufgabenstellung hast, werden die Ergebnisse großartig sein; wenn du eine schlechte hast, bist du dem LLM ausgeliefert. Eine großartige Aufgabenstellung beschreibt die Struktur und Farben, gibt Beispiele und so weiter.


DeepSeek 4.1 flash war in diesem Test sehr leistungsfähig und sehr günstig. Bei 99 % Cache-Reads und nur 2,8 Mio. gelesenen Tokens hätte dies außerhalb der Spitzenzeiten etwa 1,52 oder zu Spitzenzeiten **3,04 ** gekostet. Astra ist deutlich token-effizienter, daher ist dieser Vergleich unfair, aber zur Einordnung: Astra-Pricing für eine ähnliche Anzahl an Tokens würde 325 $ kosten.

Auch konservativ geschätzt und unter Berücksichtigung der Token-Effizienz würde ich schätzen, dass man ein Design wie dieses mit Astra für 50–100 Dollar umsetzen könnte. Es für 1,50 Dollar zu bekommen, ist bei den aktuellen API-Kosten unmöglich.

Ich habe dies mit meinem OpenCode go-Plan ausgeführt und habe nicht einmal ein kleines Loch in meinem 10-Dollar-monatlich-Plan festgestellt:

Ein paar Dinge haben mich bei diesem Lauf beeindruckt: Er konnte stundenlang unbeaufsichtigt laufen. Er handelte exakt nach der gleichen Aufgabenstellung in dem OP, gewissenhaft und sorgfältig. Er versuchte, jeden Punkt in der Aufgabenstellung zu adressieren, und testete alles akribisch.

Er hat vieles richtig gemacht und das Design ist solide.

Dennoch ist dies kein GPT 6 Astra; das Design wirkt für mich eher wie ein LLM-Design. Der Abstand, die Schriftarten und die Aufmerksamkeit für Details waren nicht auf Astra-Niveau. Es ist auch sehr deutlich, dass es nicht die gleiche visuelle Präzision hat wie Astra; nach Iteration 1 gab es viele offensichtliche visuelle Fehler, aber im positiven Sinne konnte es die meisten davon korrigieren, wenn man es dazu aufforderte.

Diesen einen Fehler verweigerte es aus irgendeinem Grund zu beheben:

Aber die restlichen Eigenheiten wurden von ihm problemlos behandelt.

Der beeindruckendste Teil des Builds war, wie ordentlich es darauf bestand zu sein:

  • Es erstellte einen Ordner für Belege (Evidence)
  • Es versuchte, das Theme sauber zu engineeringen, in viele Dateien aufzuteilen und sogar zu testen

Insgesamt: Erwarte kein Astra von einem Modell, das 50- bis 100-mal günstiger ist, aber als Werkzeug kann es durchaus sehr interessante Ergebnisse für einen Bruchteil der Kosten liefern.

Im Nachhinein würde ich empfehlen, das Theme direkt in einem dv-Container zu erstellen und dann hochzuladen, da man es sicher im YOLO-Modus ausführen kann und die Einrichtung sehr einfach ist.


Ich werde versuchen, nächste Woche weitere Experimente in dieser Richtung durchzuführen und ein paar weitere Beispiele zu posten. Wenn du eine spektakuläre Aufgabenstellung hast, lass es mich wissen.

Im Allgemeinen nutze ich mehrere LLMs von verschiedenen Anbietern, um Dinge zu bauen, daher könnte ein Beispiel vom Typ „So arbeite ich im Allgemeinen“ interessant sein.

8 „Gefällt mir“

Ich würde so etwas auch gerne sehen :eyes:

2 „Gefällt mir“

Ich habe es ausprobiert, und es scheint, als wäre nur Astra in der Lage, das Aussehen exakt so wiederzugeben, wie es dargestellt wurde, während andere Modelle es nicht so visuell konsistent hinbekamen. Hast du weitere Vorschläge zur Erstellung eigener UI-Elemente?

Für eigene UI-Elemente empfehle ich dringend, in einem dv-Container zu arbeiten. So lässt sich in Codebeispielen viel leichter nachschlagen, wie es geht.

1 „Gefällt mir“