Oops, an error occurred! Request: 0b03887fc5b44

Am 17. April 2026 hat Cloudflare isitagentready.com gestartet — eine Art Lighthouse für KI-Agenten. Vier Dimensionen werden gemessen: Discoverability, Content, Bot Access Control und eine zusammengefasste Kategorie für API-, Auth-, MCP- und Skill-Discovery. In seiner Auswertung von 200.000 Top-Websites fasst Cloudflare den Zustand des Webs so zusammen: nicht bereit.

Heute Abend, 19. April 2026, um 20:21 Uhr:

  • Discoverability: 3/3
  • Content: 1/1
  • Bot Access Control: 3/3
  • API, Auth, MCP & Skill Discovery: 6/6
  • Gesamt: 100 / 100 — Level 5 “Agent-Native”

Der Scan ist öffentlich reproduzierbar: isitagentready.com/moselwal.de. Wer den Score anzweifelt, kopiert die URL und scannt selbst nach.

Diesen Artikel schreibe ich aus zwei Gründen. Erstens, weil nichts davon aus Lehrbüchern kopiert werden kann — der Großteil der Stack-Komponenten ist Eigenentwicklung der Moselwal. Zweitens, weil wir Teile davon als Open Source zurückgeben werden, und ich möchte, dass klar ist, woher das kommt.

Die Bausteine im Detail

1. Content Signals in der robots.txt

Die klassische robots.txt kennt nur Ja oder Nein. Das ist zu grob für eine Welt, in der „Ich will in Perplexity auftauchen" und „mein Content darf in ein GPT-Training wandern" zwei völlig unterschiedliche Entscheidungen sind. Cloudflare hat dafür das Content-Signals-Protokoll spezifiziert.

Unsere Datei:

 

User-Agent: *
Allow: /
Sitemap: moselwal.de/sitemap.xml
Sitemap: moselwal.de/en/sitemap.xml

Content-Signal: ai-train=no, search=yes, ai-input=yes 

 

Übersetzt: Kein Training auf unseren Inhalten. KI-Suche erlaubt. Agent-Input bei konkreten Nutzerfragen erlaubt.

Das ist der einzige Baustein in diesem Artikel, der in keiner Weise Moselwal-Eigenentwicklung ist — zwei Zeilen Text, fertig. Aber er zählt für einen der drei Bot-Access-Control-Punkte.

2. Markdown Content Negotiation — eigene TYPO3-Extension

HTML ist für Browser optimiert. Für einen Agenten ist alles außer dem Text Ballast. Der entstehende Standard dafür: Der Agent sendet einen Accept: text/markdown-Header, die Website antwortet mit der Markdown-Version derselben URL. Wer mag, probiert es aus:

 


$ curl -H "Accept: text/markdown" moselwal.de
# Moselwal Digitalagentur

> IT-Dienstleister für den deutschen Mittelstand. Seit 2012.
...
 

 

Das Feature haben wir als eigene TYPO3-Middleware gebaut. Sie hängt sich in den Response-Pipeline, prüft den `Accept`-Header, extrahiert den Inhalt aus den gerenderten ContentBlocks und liefert ihn als Markdown aus. Für TYPO3 13 und 14. Kein Fremd-Package, keine Cloudflare-Worker-Magie.

Den Effekt sieht man in der Dateigröße: Die HTML-Variante der Startseite wiegt rund 70 Kilobyte. Die Markdown-Variante ist ein Bruchteil davon. Für Agenten, die pro Token abrechnen, ist das direkt Geld.

3. Ein eigener MCP-Server als TYPO3-Extension auf Basis von hauptsacheNet
 

Das Model Context Protocol (MCP) ist der Standard, den Anthropic Ende 2024 für die Kommunikation zwischen KI-Agenten und externen Systemen geöffnet hat. Claude, OpenAI, Google und andere nutzen ihn inzwischen. Er beantwortet die Frage: Wie stellt ein System einem Agenten Werkzeuge zur Verfügung, die er aufrufen kann?

Für TYPO3 existiert bereits ein exzellenter MCP-Server: hauptsacheNet/typo3-mcp-server von Marco Pfeiffer und seinem Team. Das ist das Fundament — und es ist richtig gut. Der Server deckt Backend-Content-Management über KI ab: Seiten anlegen, Records bearbeiten, Übersetzungen, alles über TYPO3 Workspaces, damit nichts ungewollt live geht.

Was uns gefehlt hat: TYPO3-14-Unterstützung und ein Frontend-MCP-Server, der Agenten öffentlichen Zugriff auf die Website-Inhalte gibt — Navigation, Seiteninhalte, Suche. Beides haben wir selbst gebaut:

$ curl moselwal.de/.well-known/mcp/server-card.json
{
 "serverInfo": {
   "name": "Moselwal Digitalagentur MCP Server",
   "version": "0.9.7"
 },
 "description": "TYPO3 CMS content access via MCP — search, navigation, page content",
 "url": "https://moselwal.de/mcp",
 "transport": { "type": "streamable-http" },
 "capabilities": { "tools": true }
} 

 

Drei Tools — navigation, page-content, search. Self-describing via Input-Schemas. Ein MCP-fähiger Client entdeckt das ohne unsere Hilfe.

Die Arbeitsteilung ist also: hauptsacheNet für Backend-Redaktion via KI, Moselwal für öffentliche Frontend-Discovery via KI. Beides sind MCP-Server, beides sind TYPO3-Extensions, beides ergänzt sich ohne Konkurrenz.

4. OAuth 2.1 mit PKCE — eigene Implementierung

Ein offen zugänglicher Agent-API ist ein Angriffsvektor. Unser MCP-Zugriff läuft deshalb über einen OAuth-2.1-Flow mit PKCE — genau so, wie es die MCP-Spec fordert:

 

$ curl moselwal.de/.well-known/oauth-authorization-server
{
 "issuer": "https://moselwal.de",
 "authorization_endpoint": "https://moselwal.de/mcp_oauth/authorize",
 "token_endpoint": "https://moselwal.de/mcp_oauth/token",
 "registration_endpoint": "https://moselwal.de/mcp_oauth/register",
 "response_types_supported": ["code"],
 "grant_types_supported": ["authorization_code"],
 "code_challenge_methods_supported": ["S256"],
 "token_endpoint_auth_methods_supported": ["none", "client_secret_post"]
} 

 

Dynamische Client-Registrierung nach RFC 7591, PKCE mit SHA-256, Authorization-Code-Flow. Kein geheimer API-Key, der geleakt werden kann. Kein Basic-Auth.

Diese Komponente ist ebenfalls Eigenentwicklung. Es gibt zwar generische OAuth-Pakete für TYPO3, aber keines, das den exakten MCP-OAuth-2.1-Profil-Zuschnitt mit Dynamic Client Registration sauber abdeckt. Also haben wir es gebaut — klein, fokussiert, mit HashiCorp Vault als Key-Backend.

5. WebMCP: Tools direkt im Browser — eigene Content-Block-Integration

MCP wird klassisch server-zu-server gesprochen. Seit Anfang 2026 experimentieren Chrome, Edge und Claude in Chrome mit WebMCP — Tools, die im Browser selbst registriert werden. Wenn ein Agent im Browser moselwal.de besucht, bekommt er automatisch Werkzeuge zur Hand:

 

// Vereinfacht aus unserer webmcp.js
navigator.modelContext.registerTool({
 name: "navigation",
 description: "Get the site navigation tree as structured JSON",
 inputSchema: {
   type: "object",
   properties: {
     maxDepth: { type: "integer", default: 4 }
   }
 }
});

navigator.modelContext.registerTool({
 name: "page-content",
 description: "Get structured content of a specific page",
 inputSchema: {
   type: "object",
   properties: {
     pageId: { type: "integer" },
     slug:   { type: "string" }
   }
 }
});

navigator.modelContext.registerTool({
 name: "search",
 description: "Search content on this website",
 inputSchema: {
   type: "object",
   properties: {
     query: { type: "string" },
     limit: { type: "integer", default: 10 }
   },
   required: ["query"]
 }
});
 

 

Bonus: Über navigator.modelContext.provideContext() reichen wir zwei Kontext-Ressourcen mit — page-meta und site-info. Der Agent weiß sofort, dass er eine deutsche Seite mit englischer Variante vor sich hat.

Das Script wird von einer eigenen TYPO3-Extension erzeugt, die je nach Seitentyp und Content-Block-Konstellation die passenden Tools registriert. Also nicht statisch — sondern dynamisch aus dem CMS heraus. Für eine Kontaktseite könnten künftig zusätzlich Tools wie submit_contact_form erscheinen, für einen Produktkatalog product_search. Das ist der Teil, an dem wir aktuell noch bauen.

6. Agent-Skills-Index

Damit Agenten nicht raten müssen, welche Skills unsere Seite beherrscht, liegt unter /.well-known/agent-skills/index.json ein maschinenlesbares Verzeichnis — drei Einträge, alle als webmcp-tool klassifiziert. Ein Link-Header im HTML-Response (rel="mcp-server-card") zeigt zusätzlich auf die Server-Card. Beides von unserer MCP-Extension mitgeliefert.

7. Web Bot Auth — Ed25519-Signaturen

Wenn umgekehrt unser eigener Agent demnächst auf andere Seiten zugreift, sollen die Betreiber ihn zweifelsfrei identifizieren können. Dafür haben wir einen Ed25519-Schlüssel unter /.well-known/http-message-signatures-directory hinterlegt — der IETF-Draft für Web Bot Auth.

 

$ curl moselwal.de/.well-known/http-message-signatures-directory
{
 "keys": [
   {
     "kty": "OKP",
     "crv": "Ed25519",
     "x": "x0Iu0T4Xn1dOLBXrGSbK8C0eaVmzEgGrBn-RfETa0nA"
   }
 ]
}

 

Jede signierte HTTP-Anfrage lässt sich auf uns zurückführen, ohne dass wir mit Username-Passwort-Paaren hantieren. Die gleiche Idee wie Cosigns Keyless-Signing, nur für HTTP-Traffic.

8. llms.txt — mit einem Augenzwinkern

Der Vollständigkeit halber: Wir haben eine llms.txt. Ich bin persönlich nicht überzeugt von dem Format — es hat keine offizielle Unterstützung der großen Anbieter, OpenAI nennt es „Rauschen", die Praxis spricht eher für MCP und strukturierte Schema-Daten. Aber: Es kostet nichts, es schadet nichts, und für den Cloudflare-Content-Score zählt es. Also ist es drin.

Was das alles in Summe ergibt

Der Stack hinter dem Score besteht aus einer klassischen `robots.txt`, einer `llms.txt`, einem Schema-Markup-Block — und sieben Moselwal-eigenen TYPO3-Extensions beziehungsweise -Middlewares:

Ich nenne das bewusst im Detail, weil der Cloudflare-Score auf den ersten Blick wie eine Sammlung fertiger Open-Source-Pakete aussieht, die man irgendwo herunterladen und zusammenstecken könnte. Kann man nicht. Fast alles ist “Handarbeit” - und fast alles davon ist TYPO3-spezifisch. Für andere CMS gibt es vergleichbare Bausteine, aber in Summe ist der Reifegrad, den TYPO3 mit dem hauptsacheNet-Server plus unseren Erweiterungen erreicht, im CMS-Markt sehr weit vorne.

Was wir als Open Source zurückgeben werden

Ein Teil dieses Stacks wird in den kommenden Monaten Open Source:

Rollout für bestehende Upgrade-Kunden

Moselwal-Kunden mit aktivem Upgrade-Vertrag müssen sich um nichts kümmern. In den kommenden Tagen beginnen wir mit dem Rollout des Agent-Readiness-Stacks in Ihre Umgebungen — Content Signals, Markdown-Endpoint, MCP-Server, OAuth, WebMCP-Tools, Web Bot Auth und Agent-Skills-Index. Das läuft gestaffelt, ohne Downtime, ohne Zutun der Redaktion. Nach dem Rollout erreicht Ihre Website denselben Cloudflare-Score, den moselwal.de heute hat — und das, ohne dass auch nur eine Redaktionssitzung darüber stattfinden müsste.

Wer noch keinen Upgrade-Vertrag hat, aber früher als 2027 agent-ready sein möchte: Eine Mail an support@moselwal.de genügt. Wir suchen darüber hinaus Pilotkunden aus dem Mittelstand, die einzelne Stack-Komponenten unter produktiven Bedingungen mit uns erproben würden.
 

Was das für Sie bedeutet

Für die meisten Hidden Champions ist „Agent Readiness" aktuell kein akutes Thema. 2027 wird es das sein, spätestens. Bis dahin entscheidet sich, welche Zulieferer, Dienstleister und Produktanbieter in den Antworten auftauchen, die Einkäufer und Entscheider über ihre KI-Assistenten abrufen. Wer dann nicht maschinenlesbar ist, existiert für die Maschine nicht.

Drei Schritte zum Einstieg:

Wer tiefer einsteigen will, für den ist der MCP-Server das eigentliche Differenzierungsmerkmal. Ein gut gebauter MCP-Server macht aus einer statischen Website eine aufrufbare API — ohne dass Redakteure etwas Neues lernen müssen und ohne dass Sie ein separates Agent-Portal aufbauen müssen.

Häufige Fragen

Ist ein 100/100-Score wirklich aussagekräftig — oder nur Symbolik?+

Der Score misst, ob die öffentlich bekannten Standards für KI-Agenten-Interaktion korrekt implementiert sind. Er misst nicht, ob die dahinterliegende Website sinnvolle Inhalte bietet oder ob der MCP-Server unter Last stabil läuft. Der Score ist also eine notwendige, keine hinreichende Bedingung. Wer 100/100 hat, hat seine Hausaufgaben gemacht. Wer weniger hat, definitiv nicht.

Ersetzt Agent Readiness klassisches SEO?+

Nein, es ergänzt es. Google wird nicht verschwinden, aber ein wachsender Teil der Suchanfragen läuft über KI-Assistenten. Die strukturierten Daten, die wir für Agenten optimieren, helfen auch Google — FAQ-Schema, Organization-Schema, saubere Semantik. Der MCP-Server und die WebMCP-Tools sind die zusätzliche Ebene, die klassisches SEO nicht abdeckt.

Wie lange dauert die Umsetzung in einem bestehenden TYPO3-Projekt?+

Für Upgrade-Kunden von uns: wenige Tage Rollout-Zeit, ohne Projektaufwand auf Kundenseite. Für Neuprojekte, die wir von null agent-ready aufbauen: zwischen zwei und sechs Wochen, je nach Umfang und Integrationsanforderungen. Die reine Basis (Content Signals, Markdown, Schema-Daten) lässt sich in Stunden erledigen; der vollständige Stack mit MCP-Server, OAuth und WebMCP ist der größere Brocken.

Was kostet ein agent-ready TYPO3?+

Für Bestandskunden mit Upgrade-Vertrag ist der Rollout Teil des Vertrags — keine zusätzlichen Kosten. Für Neuprojekte richtet sich der Preis nach Umfang und liegt typischerweise zwischen 5.000 und 15.000 Euro für die Agent-Readiness-Ebene als Addon zu einem bestehenden TYPO3. Bei Neukonzeption einer Website fließt es in das Projektangebot ein.

Funktioniert der Stack auch mit einem anderen CMS?+

Die Konzepte sind CMS-unabhängig — Content Signals, OAuth, Markdown Negotiation, Schema-Daten lassen sich überall umsetzen. Unsere konkreten Extensions sind TYPO3-spezifisch. Für WordPress, Drupal, Neos oder Shopware müssten vergleichbare Komponenten neu gebaut werden. Das lohnt sich, ist aber nicht das, woran wir aktuell arbeiten.

Wie sichere ich mich gegen unerwünschte KI-Nutzung meiner Inhalte ab?+

Die saubere Antwort ist: technisch durch Content Signals und robots.txt, rechtlich durch klare Nutzungsbedingungen auf der Website. Content Signals sind aktuell ein freiwilliges Protokoll — seriöse Anbieter halten sich daran, weniger seriöse nicht. Die IETF-Initiative zu Web Bot Auth wird das perspektivisch verschärfen, weil sich dann jeder zugreifende Bot identifizieren muss. Bis dahin gilt: Signal setzen, dokumentieren, im Ernstfall abmahnen.

Sind MCP-Server ein Sicherheitsrisiko?+

Ein schlecht gebauter MCP-Server ist eines. Ein ordentlich gebauter ist es nicht — weil er nur genau die Tools freigibt, die der Betreiber ausdrücklich freigeschaltet hat, und weil alle Zugriffe über OAuth authentifiziert werden. Unser Ansatz folgt dem Prinzip „Security by Architecture": Der LLM sieht niemals Rohdaten, sondern immer vorgefiltertes Material. Schreibende Tools sind nur mit expliziter Nutzerfreigabe und über TYPO3-Workspaces erreichbar.

Warum gebt ihr Teile des Stacks überhaupt als Open Source zurück, wenn das euer Wertversprechen ist?+

Weil unser Wertversprechen nicht einzelne Code-Zeilen sind, sondern die Umsetzung, der Betrieb, die langfristige Betreuung und die Integration in einen bestehenden TYPO3-Kontext. Die TYPO3-14-Kompatibilität für hauptsacheNet gehört in das Originalprojekt — das ist keine Großzügigkeit, sondern Fairness. Die Markdown-Middleware ist schlank genug, dass sie ohnehin keinen Wettbewerbsvorteil ausmacht. Was kommerziell bleibt, ist das orchestrierte Zusammenspiel aller Komponenten — und der Rollout in reale Kundensysteme.

Woher weiß ich, ob mein Unternehmen das jetzt schon braucht?+

Ehrliche Antwort: Die meisten brauchen es jetzt noch nicht. Aber drei Signale sprechen dafür, früh anzufangen — erstens, wenn Ihre Kunden bereits KI-Assistenten für Recherche und Einkauf einsetzen; zweitens, wenn Ihre Branche technikaffin ist und Mitbewerber sichtbar vorpreschen; drittens, wenn Ihre Marke auf Seriosität und Vorreiterschaft aufgebaut ist. Wer erst 2027 anfängt, wenn es Pflicht wird, verliert das Narrativ — und möglicherweise Sichtbarkeit, die sich nicht so einfach nachholen lässt.

Ein kleiner Selbsttest zum Schluss

Öffnen Sie isitagentready.com und scannen Sie Ihre eigene Website. Wenn das Ergebnis nicht annähernd wie unseres aussieht, ist das kein Bug — sondern eine offene Flanke. Und die Zeit, sie zu schließen, läuft.
 

Kai Ole Hartwig ist Gründer der Moselwal Digitalagentur in Monheim am Rhein und programmiert seit 2002. Danke an Marco Pfeiffer und das hauptsacheNet-Team für `typo3-mcp-server` — ohne diese Grundlage wäre unsere Arbeit nicht möglich gewesen.

WebMCPKI-AgentenTYPO3Agent ReadinessDevSecOpsCloudflareMCP