Zum Inhalt springen

Blog · Das Register verstehen

Was sich im MCP-Register bewegt: 82.491 Änderungen in sieben Tagen, 2.177 neue Einträge

Ein Register, das Werte mit Quelle und Datum führt, muss auch sagen, wann sich ein Wert bewegt hat. Bei tracevero ist das der Änderungsstrom: eine Zeile je Feld, je Eintrag und je Bewegung, mit dem Wert davor und dem Wert danach. Seit dem ersten Lauf sind das 1.101.444 veröffentlichte Zeilen, davon 82.491 in den sieben Tagen vor dem 21.09.2026 und 16.826 in den letzten 24 Stunden. In derselben Woche hat das Register 2.177 Einträge zum ersten Mal gesehen, und bei 23 hat die Quelle den Status von „aktiv" weggenommen. Dieser Beitrag zeigt, wie eine Zeile entsteht, was die vier Zahlen messen und was nicht, und liest an einem Eintrag nach, der am Abrufmorgen 31 Zeilen auf einmal bekommen hat.

Veröffentlicht am · von tracevero · Lesezeit 11 Minuten (2.140 Wörter)

Eine Zeile ist ein Wert, der sich bewegt hat

Der Änderungsstrom ist keine Chronik der Läufe, sondern eine Chronik der Werte. Jede Nacht ruft tracevero das öffentliche MCP-Register ab und vergleicht je Eintrag und je Feld den gelieferten Wert mit dem, der im Register gilt. Nur wenn die beiden verschieden sind, entsteht eine Zeile. Ein Lauf, der 33.977 Einträge liest und bei allen denselben Wert findet, hinterlässt im Strom nichts. Das ist die Regel hinter dem Datum „erhoben am", das der erste Beitrag erklärt hat: Es nennt den Tag, an dem der geltende Wert aufgezeichnet wurde, und dieser Tag ist genau das Datum der letzten Zeile zu diesem Feld.

Jede Zeile trägt dieselben Angaben, und keine davon ist ein Urteil. Sie sagt, welches Feld sich bewegt hat, was vorher galt und was nachher gilt, wann tracevero die Bewegung erkannt hat und wann es sie veröffentlicht hat. Die beiden Zeitpunkte fallen bei der grünen Klasse zusammen; eine Zeile, die eine Prüfung braucht, wird erst nach der Prüfung sichtbar, und der Strom führt ausschließlich veröffentlichte Zeilen. Wer eine Zeile liest, liest also nie eine Vermutung des Registers, sondern immer einen Wert, der so in der Quelle stand.

Was eine Änderungszeile trägt
AngabeBedeutungAm Beispiel „uk.co.hopi/hopi"
FeldDer Schlüssel des Merkmals oder der Rohangabe, die sich bewegt hat.roh_transportarten, eine von 31 Zeilen
Wert vorherDer Wert, der bis dahin galt; leer bei einem neuen Eintrag.leer, weil der Eintrag neu war
Wert nachherDer Wert, den die Quelle geliefert hat, unverändert.streamable-http
Erkannt amDer Lauf, der den Unterschied gefunden hat, in UTC.2026-09-21 01:17
Veröffentlicht amWann die Zeile in den Strom kam; bei grüner Klasse derselbe Zeitpunkt.2026-09-21 01:17
Von der Quelle zur Änderungszeile: fünf Stationen 1. Quelle abgerufen registry.modelcontextprotocol.io, ein Lauf je Nacht 2. Wert verglichen je Feld gegen den geltenden Wert im Register 3. Zeile geschrieben Feld, Wert vorher, Wert nachher, Zeitpunkt 4. Veröffentlicht sofort bei grüner Klasse, sonst nach Prüfung 5. Ausgeliefert Änderungsstrom, Atom-Feed, /v1/aenderungen
Abbildung 1: Eine Zeile entsteht nur an der dritten Station, und nur, wenn der Vergleich einen anderen Wert ergibt. Ein Lauf, der denselben Wert wieder liefert, hinterlässt keine Spur im Strom.

Die vierte Station in Abbildung 1 ist die einzige mit einer Weiche. Eine Zeile bekommt beim Schreiben eine Klasse, und die grüne geht ohne Umweg in den Strom. Alles andere wartet auf eine Prüfung, und bis dahin ist die Zeile für niemanden sichtbar. Deshalb gibt es an der Schnittstelle keinen Filter auf die Klasse: Der Strom kennt nur veröffentlichte Zeilen, und ein Filter auf ein Feld mit einem einzigen Wert sähe aus wie eine Wahl. Eingrenzen lässt sich der Strom nach Art, nach Feld und nach einem einzelnen Eintrag, auf der Seite wie unter /v1/aenderungen, und jeden dieser Ausschnitte gibt es unter Beobachten als Atom-Feed ohne Konto.

Vier Zahlen über sieben Tage, und was jede misst

„1.101.444 Änderungen seit dem ersten Lauf" belegt, dass hier etwas läuft, und beantwortet keine der Fragen, die ein Leser daran hat. Die Bestandszahlen nennen deshalb vier Zahlen aus den letzten Tagen, und jede ist gemessen und nicht aus einer anderen gerechnet.

Die vier Zahlen vom 21.09.2026
ZahlWertWoran gemessen
Zeilen in 24 Stunden16.826veröffentlichte Zeilen mit Veröffentlichungsdatum im Fenster
Zeilen in sieben Tagen82.491dieselbe Zählung über sieben Tage
Erstmals gesehen in sieben Tagen2.177Einträge nach dem Tag, an dem das Register sie zum ersten Mal las
Nicht mehr „aktiv" in sieben Tagen23Zeilen am Feld Registerstatus mit einem Wert nachher, der nicht „aktiv" ist
Die Fenster hinter den vier Zahlen 2026-09-14 Beginn des Siebentagefensters 2026-09-20 Beginn des 24-Stunden-Fensters 2026-09-20 Beispieleintrag laut Quelleeingetragen 2026-09-21 jüngste Zeile des Stroms, 01:17 UTC 2026-09-21 Datenstand gebaut, 01:30 UTC 2026-09-21 für diesen Beitrag abgerufen
Abbildung 2: Die Tagesgrenzen laufen in UTC, weil der Dienst keine andere Zone kennt. Die jüngste Zeile des Stroms gehört zum Beispieleintrag; sie und der Bau des Datenstands liegen am Abrufmorgen dreizehn Minuten auseinander.

Die dritte Zahl wird bewusst nicht aus dem Strom gezählt. Ein neuer Eintrag erzeugt eine Zeile je Feld, das die Quelle liefert; beim Beispiel weiter unten sind es 31. Zählte man neue Einträge über ihre Zeilen, stünde ein Vielfaches da, und die Zahl hinge davon ab, wie viele Felder ein Manifest füllt. Gezählt wird stattdessen das Datum, an dem das Register einen Eintrag zum ersten Mal gesehen hat: 2.177 Einträge, das sind 6,4 % des Bestands, in einer Woche.

Die vierte Zahl ist die kleinste und die am leichtesten zu überschätzende. 23 Einträge haben in sieben Tagen am Feld Registerstatus einen Wert bekommen, der nicht „aktiv" ist. Das ist eine Angabe der Quelle über den Eintrag und keine Messung des Betriebs: tracevero ruft keinen Server auf. Ein Server, der nicht mehr antwortet, aber im Quellregister als aktiv geführt wird, steht in dieser Zahl nicht. Und 16.826 Zeilen in 24 Stunden gegen 82.491 in sieben Tagen (20,4 %) sagen nur, wie sich die Woche auf ihre Tage verteilt hat; was die Quelle an einem Tag ändert, entscheidet die Quelle.

Ein neuer Eintrag, 31 Zeilen: das Beispiel „uk.co.hopi/hopi"

Die jüngste Zeile des Stroms am Abrufmorgen gehörte zum Eintrag uk.co.hopi/hopi, einem entfernten Server für britische Steuer- und Einheitenrechner. Die Quelle führt ihn seit dem 20.09.2026; tracevero hat ihn im Lauf vom 21.09.2026 um 01:17 UTC zum ersten Mal gelesen. Das ist der Normalfall eines neuen Eintrags, und er lässt sich in fünf Schritten lesen.

  1. Alle Zeilen auf einmal. Der Strom führt für den Eintrag 31 Zeilen, alle mit demselben Zeitpunkt und alle mit leerem Wert vorher. Das ist kein Fehler und keine Häufung, sondern die Erstaufnahme: Jedes Feld, das die Quelle liefert, bekommt seine erste Zeile im selben Lauf.

  2. 5 abgeleitete Werte, jeder mit seiner Regel. Ausführungsort „entfernt", weil das Manifest ausschließlich eine Remote-Adresse und den Transport streamable-http führt. Pflicht-Geheimnisse deklariert „nein", Pfadargument vorhanden „nein", Repository-Adresse geführt „nein", jeweils aus einer leeren Rohangabe. Einsatzgebiet „Finanzen", aus Begriffen der Beschreibung an Wortgrenzen gesucht. Für jeden dieser Werte steht die Rohangabe daneben, aus der er entstanden ist.

  3. 26 Selbstauskünfte, davon 25 Rohangaben. Die Version 1.1.0, die Remote-Adresse https://mcp.hopi.co.uk/mcp, die Beschreibung, die Schemafassung des Rohsatzes, das Eintragungs- und das Änderungsdatum der Quelle. 9 der Rohangaben sind gefüllt, 16 sind leer.

  4. Die leeren Zeilen als Auskunft nehmen. 16 Zeilen tragen als Wert nachher „nachweislich nicht vorhanden": Umgebungsvariablen, Pakete, Pfadargumente, Repository. Sie stehen im Strom, weil die Quelle das Feld liefert und es leer ist. Ein Feld, das die Quelle gar nicht liefert, bekäme keine Zeile.

  5. Die beiden Daten auseinanderhalten. Der 20.09.2026 ist das Datum der Quelle, eine Rohangabe wie jede andere. Der 21.09.2026 ist der Tag, an dem tracevero den Eintrag gelesen hat. Die Eintragsseite nennt beide, und sie sind einen Tag auseinander; bei älteren Einträgen können Monate dazwischenliegen, weil das Register seine Felder nicht alle am selben Tag eingeführt hat.

Was der Rohsatz über die Quelle verrät

Die Bestandszahlen zählen neben den abgeleiteten Merkmalen auch Rohangaben aus, so wie die Quelle sie liefert. Zwei davon sagen etwas darüber, wie sich die Quelle selbst bewegt. Die erste ist die Lücke: Wo die Quelle nichts angegeben hat, steht im Register nichts, und zwar gezählt. Abbildung 3 zeigt fünf Rohangaben und wie oft sie fehlen; die vollständige Tabelle steht unter Lücken.

Fünf Rohangaben und wie oft die Quelle sie nicht liefert Pfadargumente 33.876 (99,7 %) Pfadargumente: 33.876 (99,7 %) Paketbezeichner 19.789 (58,2 %) Paketbezeichner: 19.789 (58,2 %) Remote-Adressen 12.950 (38,1 %) Remote-Adressen: 12.950 (38,1 %) Repository 7.931 (23,3 %) Repository: 7.931 (23,3 %) Transportarten 439 (1,3 %) Transportarten: 439 (1,3 %)
Abbildung 3: Einträge ohne Angabe je Rohangabe, gemessen an 33.977 ausgelieferten Einträgen. Eine fehlende Angabe ist keine Änderung; sie erzeugt keine Zeile, bis die Quelle sie eines Tages liefert.

Die Transportarten fehlen bei 439 Einträgen (1,3 %), das Repository bei 7.931 (23,3 %), die Pfadargumente bei 33.876 (99,7 %). Keine dieser Zahlen ist eine Änderung. Eine fehlende Angabe erzeugt keine Zeile, bis die Quelle sie eines Tages liefert; erst dann entsteht eine Zeile mit leerem Wert vorher. Wer den Strom nach einem Feld eingrenzt, sieht deshalb genau die Einträge, bei denen die Quelle dieses Feld erstmals oder erneut gefüllt hat.

Womit der Server gestartet wird, laut Quelle ohne Angabe der Quelle 30.306 (89,2 %) ohne Angabe der Quelle: 30.306 (89,2 %) npx 1.449 (4,3 %) npx: 1.449 (4,3 %) uvx 1.284 (3,8 %) uvx: 1.284 (3,8 %) python 360 (1,1 %) python: 360 (1,1 %)
Abbildung 4: Die vier häufigsten Werte der Rohangabe „Laufzeithinweise", gemessen an 33.977 Einträgen; 20 weitere Werte sind nicht gezeigt. Der größte Balken ist die fehlende Angabe.

Die zweite Rohangabe ist der Startbefehl aus den Laufzeithinweisen. 30.306 Einträge (89,2 %) nennen keinen; 1.449 nennen npx, 1.284 uvx, 360 python, und 20 weitere Werte teilen sich den Rest. Der Balken der fehlenden Angabe ist der größte, und das ist die Auskunft: Für die meisten Einträge sagt das Manifest nicht, womit der Server gestartet wird.

Wo Einträge zusammengehören: Namensräume

Bewegung hat auch eine zweite Richtung: nicht über die Zeit, sondern über den Bestand. Der Bezeichner eines MCP-Servers hat die Form namensraum/name, und alles vor dem ersten Schrägstrich ist der Namensraum. Die Regel dafür trägt die Fassung 1, steht auf der Methodikseite und greift ohne Ermessen. Sie sagt ausdrücklich nicht, wem ein Namensraum gehört; deshalb heißt die Fläche Namensräume und nicht Anbieter.

Die zwölf größten Namensräume ai.smithery 213 ai.smithery: 213 app.wishpool 125 app.wishpool: 125 eu.ansvar 106 eu.ansvar: 106 com.a2awire 101 com.a2awire: 101 io.usefulapi 99 io.usefulapi: 99 ai.getvda 94 ai.getvda: 94 com.mcparmory 76 com.mcparmory: 76 io.tooloracle 61 io.tooloracle: 61 com.jojapi 49 com.jojapi: 49 com.mambabuilt 47 com.mambabuilt: 47 com.thenextgennexus 43 com.thenextgennexus: 43 com.olyport 38 com.olyport: 38
Abbildung 5: Einträge je Namensraum, die zwölf größten von 429 Räumen mit mindestens zwei Einträgen, gezeichnet gegen den größten. Ein Namensraum ist der Teil des Bezeichners vor dem ersten Schrägstrich; wem er gehört, sagt die Regel nicht.
Wie groß die Namensräume sind
RaumgrößeRäumeEinträge darin
genau ein Eintrag8.3638.363
zwei bis neun Einträge3771.074
zehn und mehr Einträge521.769
zusammen8.79211.206

Beide Spalten stehen nebeneinander, weil jede allein etwas anderes sagt. Nach Räumen gezählt liegen 95,1 % bei genau einem Eintrag; nach Einträgen gezählt liegen 15,8 % in den 52 Räumen mit zehn und mehr. Die Verteilung zählt Räume, die als solche gezeigt werden, und nicht Bezeichner, die den Kontonamen eines Menschen tragen; darum ist die Summe der Einträge kleiner als der Bestand. Der größte Raum, ai.smithery, führt 213 Einträge. Was das über den Raum sagt, misst das Register nicht: Ein Raum mit vielen Einträgen ist ein Raum mit vielen Einträgen.

Was der Strom nicht sagt

Vier Dinge stehen bewusst in keiner Zeile, und wer sie hineinliest, liest falsch:

Häufige Fragen

Warum stehen für einen neuen Eintrag so viele Zeilen im Strom?
Weil jedes Feld, das die Quelle liefert, bei der Erstaufnahme seine erste Zeile bekommt, alle im selben Lauf und alle mit leerem Wert vorher. Beim Beispiel sind es 31. Die Zahl der neuen Einträge wird deshalb nicht aus dem Strom gezählt, sondern aus dem Datum des ersten Sehens.
Heißt „nicht mehr aktiv", dass der Server abgeschaltet ist?
Nein. Es heißt, dass die Quelle den Eintrag nicht mehr als aktiv führt. Das ist der Registerstatus, eine Angabe des Quellregisters, und keine Messung des Betriebs. tracevero ruft keinen Server auf.
Kann ich sehen, ob ein Eintrag unverändert geblieben ist?
Ja, aber nicht im Strom, denn dort steht nur, was sich bewegt hat. Die Eintragsseite nennt das Datum des letzten Laufs, der den Eintrag gesehen hat, und je Wert den Tag, an dem der geltende Wert aufgezeichnet wurde. Liegen beide weit auseinander, hat sich der Wert lange nicht bewegt.
Warum gibt es an der Schnittstelle keinen Filter auf die Klasse?
Weil der Strom nur veröffentlichte Zeilen führt und diese per Definition grün verbucht oder von Hand freigegeben sind. Ein Filter auf ein Feld, das nur einen Wert annehmen kann, sähe aus wie eine Wahl und wäre keine.
Wie aktuell sind die Zahlen in diesem Beitrag?
Sie gelten für den Datenstand vom 21.09.2026 und wurden am 21.09.2026 abgerufen. Die vier Fensterzahlen ändern sich mit jedem Lauf; die Befehle im Quellenblock ziehen sie neu, und die Bestandszahlen zeigen sie laufend.

Quellen und Befehle

Alle Zahlen dieses Beitrags stammen aus tracevero selbst, Datenstand 21.09.2026, abgerufen am 21.09.2026. Jede Zeile nennt den Befehl, der sie neu zieht.

  1. Bestand, veröffentlichte Änderungen mit den vier Fenstern, Raumklassen der Namensräume
    Abrufbefehl anzeigencurl -s https://api.tracevero.com/v1/kennzahlen
  2. Die Namensräume mit mindestens zwei Einträgen, die größten zuerst, mit der Regel
    Abrufbefehl anzeigencurl -s https://api.tracevero.com/v1/namensraeume
  3. Alle Änderungszeilen des Beispieleintrags
    Abrufbefehl anzeigencurl -s "https://api.tracevero.com/v1/aenderungen?eintrag=uk-co-hopi-hopi&grenze=200"
  4. Der Beispieleintrag mit Quelle, Erhebungsdatum und Vertrauensgrad je Wert
    Abrufbefehl anzeigencurl -s https://api.tracevero.com/v1/eintrag/mcp_server/uk-co-hopi-hopi
  5. Fehlende Angaben und Startbefehle
    Abrufbefehl anzeigencurl -s https://tracevero.de/kennzahlen

Weiter zur Anwendung

Alle Beiträge

tracevero · https://tracevero.de/blog/was-sich-im-mcp-register-bewegt