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.
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.
| Angabe | Bedeutung | Am Beispiel „uk.co.hopi/hopi" |
|---|---|---|
| Feld | Der Schlüssel des Merkmals oder der Rohangabe, die sich bewegt hat. | roh_transportarten, eine von 31 Zeilen |
| Wert vorher | Der Wert, der bis dahin galt; leer bei einem neuen Eintrag. | leer, weil der Eintrag neu war |
| Wert nachher | Der Wert, den die Quelle geliefert hat, unverändert. | streamable-http |
| Erkannt am | Der Lauf, der den Unterschied gefunden hat, in UTC. | 2026-09-21 01:17 |
| Veröffentlicht am | Wann die Zeile in den Strom kam; bei grüner Klasse derselbe Zeitpunkt. | 2026-09-21 01:17 |
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.
| Zahl | Wert | Woran gemessen |
|---|---|---|
| Zeilen in 24 Stunden | 16.826 | veröffentlichte Zeilen mit Veröffentlichungsdatum im Fenster |
| Zeilen in sieben Tagen | 82.491 | dieselbe Zählung über sieben Tage |
| Erstmals gesehen in sieben Tagen | 2.177 | Einträge nach dem Tag, an dem das Register sie zum ersten Mal las |
| Nicht mehr „aktiv" in sieben Tagen | 23 | Zeilen am Feld Registerstatus mit einem Wert nachher, der nicht „aktiv" ist |
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.
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.
5 abgeleitete Werte, jeder mit seiner Regel. Ausführungsort „entfernt", weil das Manifest ausschließlich eine Remote-Adresse und den Transport
streamable-httpfü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.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.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.
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.
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.
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.
| Raumgröße | Räume | Einträge darin |
|---|---|---|
| genau ein Eintrag | 8.363 | 8.363 |
| zwei bis neun Einträge | 377 | 1.074 |
| zehn und mehr Einträge | 52 | 1.769 |
| zusammen | 8.792 | 11.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:
- Keine Gesamtzahl je Ausschnitt. Die Schnittstelle nennt für einen eingegrenzten Strom nicht, wie viele Zeilen er hat, sondern nur, ob es weitergeht und ab welchem Versatz. Der Strom lässt sich nicht zählen, ohne ihn zu lesen, und eine Zahl, die man nicht messen kann, wird nicht gedruckt.
- Keine Bewertung einer Änderung. Eine Version, die von 1.0.0 auf 2.0.0 springt, ist eine Zeile wie jede andere. Ob der Sprung etwas bedeutet, entscheidet der Anbieter in seiner Dokumentation.
- Kein Abruf. Eine Zeile am Feld Remote-Adressen sagt, dass das Manifest eine andere Adresse nennt als zuvor. Ob unter der neuen Adresse etwas antwortet, ist damit nicht gesagt, denn das Register öffnet sie nie.
- Keine Zeile ohne Bewegung. Ein Lauf, der 33.977 Einträge unverändert vorfindet, hinterlässt keine Spur. Ein Strom, der an einem Tag leer ist, sagt deshalb „nichts hat sich bewegt" und nicht „nichts wurde gelesen"; den letzten Lauf nennt der Datenstand am Fuß jeder Seite.
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.
- Bestand, veröffentlichte Änderungen mit den vier Fenstern, Raumklassen der Namensräume
Abrufbefehl anzeigen
curl -s https://api.tracevero.com/v1/kennzahlen - Die Namensräume mit mindestens zwei Einträgen, die größten zuerst, mit der Regel
Abrufbefehl anzeigen
curl -s https://api.tracevero.com/v1/namensraeume - Alle Änderungszeilen des Beispieleintrags
Abrufbefehl anzeigen
curl -s "https://api.tracevero.com/v1/aenderungen?eintrag=uk-co-hopi-hopi&grenze=200" - Der Beispieleintrag mit Quelle, Erhebungsdatum und Vertrauensgrad je Wert
Abrufbefehl anzeigen
curl -s https://api.tracevero.com/v1/eintrag/mcp_server/uk-co-hopi-hopi - Fehlende Angaben und Startbefehle
Abrufbefehl anzeigen
curl -s https://tracevero.de/kennzahlen