Zum Inhalt springen

Blog

Was deklariert ein MCP-Server wirklich? 31.439 Registereinträge gelesen

Ein MCP-Server deklariert das, was sein Manifest im öffentlichen MCP-Register erklärt: Transportarten, Pakete, Umgebungsvariablen, Remote-Adressen, eine Version, eine Repository-Adresse und eine Beschreibung. Nicht deklariert ist, ob er läuft, was er außerhalb des Schemas braucht und mit welchem Client er zusammenarbeitet. Von den 31.439 MCP-Servern im Verzeichnis (Datenstand 12.09.2026) deklarieren 4.905 (15,6 %) mindestens ein Pflicht-Geheimnis, 17.789 (56,6 %) führen ausschließlich Remote-Adressen oder HTTP-Transporte, 24.294 (77,3 %) nennen eine Repository-Adresse und 317 (1,0 %) ein Pfadargument. Dieser Beitrag zeigt, wie Sie diese Zahlen und jeden einzelnen Eintrag lesen, ohne aus einer Erklärung ein Versprechen zu machen.

Veröffentlicht am · von tracevero · Lesezeit 10 Minuten (1.932 Wörter)

Drei Vertrauensgrade und zwei Arten, nichts zu wissen

Jeder Wert auf einer Eintragsseite nennt seine Herkunft in einer Zeile darunter, zum Beispiel „Quelle: MCP-Register · erhoben am 2026-08-06 · abgeleitet". Das letzte Wort ist der Vertrauensgrad, und es gibt drei davon. Selbstauskunft heißt: So steht es im Manifest des Anbieters, unverändert übernommen. Abgeleitet heißt: tracevero hat aus einer oder mehreren Rohangaben nach einer veröffentlichten Regel einen Wert gebildet, und die Rohangaben stehen als „Originalangabe" direkt daneben. Von Hand geprüft steht nur an Werten, die der Betreiber über eine protokollierte Korrektur gesetzt hat. Der Beispieleintrag weiter unten führt keine solche Korrektur.

Daneben gibt es zwei Zustände, die leicht verwechselt werden. Nachweislich nicht vorhanden heißt: Das Manifest enthält das Feld, und es ist leer. Nicht erhoben heißt: Die Quelle liefert das Feld gar nicht. Das Register hält beides auseinander und zeigt ein fehlendes Feld nie als „nein". Aus einer leeren Liste der geheimen Pflichtvariablen leitet es dagegen sehr wohl „nein" ab, mit demselben Vertrauensgrad wie aus einer gefüllten: Die Angabe ist ja da.

Die vier Fälle und was sie bedeuten
FallBedeutungAm Beispiel „remote-filesystem"
SelbstauskunftSo steht es im Manifest, aufgezeichnet am genannten Tag.Transportarten stdio, erhoben am 06.08.2026
AbgeleitetNach einer veröffentlichten Regel aus Rohangaben gebildet.Ausführungsort „lokal", weil stdio kein HTTP-Transport ist
Nachweislich nicht vorhandenDas Feld ist im Manifest vorhanden und leer.Geheime Pflichtvariablen: leer, daraus abgeleitet „nein"
Nicht erhobenDie Quelle liefert das Feld nicht; es wird nicht als „nein" gezeigt.Keines der vier Merkmale: Jedes ist für alle 31.439 Einträge erhoben
Vom Manifest zur Seite: fünf Stationen eines Wertes 1. Quelle registry.modelcontextprotocol.io 2. Rohangabe Selbstauskunft, mit Erhebungsdatum 3. Regel Ableitungsregel, Fassung 2, veröffentlicht 4. Abgeleiteter Wert steht neben seiner Rohangabe, nie ohne sie 5. Seite und Schnittstelle HTML, JSON und CSV mit denselben Werten
Abbildung 1: Jeder abgeleitete Wert durchläuft dieselben fünf Stationen. Auf diesem Weg wird nur die Quelle abgerufen; eine Adresse, die in einem Eintrag steht, öffnet das Register nie.

Die entscheidende Station in Abbildung 1 ist die dritte. Die Regel ist veröffentlicht, sie trägt eine Fassung (derzeit 2), und sie greift ohne Ermessen. Wer die Rohangabe und die Regel kennt, rechnet jeden abgeleiteten Wert nach. Die Methodik legt alle Regeln mit ihrem Wortlaut offen. Das ist die eine Zusage des Registers, und sie ist bewusst schmal: Es bewertet nicht, es empfiehlt nicht, und es erfindet keinen Wert, den die Quelle nicht hergibt.

Was der Bestand deklariert

Vier der abgeleiteten Merkmale haben genau einen Wert je Eintrag. Für sie lässt sich der ganze Bestand in einer Zahl je Wert zusammenfassen, und jedes Wertepaar ergibt zusammen wieder 31.439. Die Bestandszahlen zählen diese Verteilung bei jedem Aufruf neu; Abbildung 2 zeigt den Stand vom 12.09.2026.

Vier abgeleitete Merkmale über alle Einträge Repository-Adresse geführt 24.294 (77,3 %) Repository-Adresse geführt: 24.294 (77,3 %) Ausführungsort entfernt 17.789 (56,6 %) Ausführungsort entfernt: 17.789 (56,6 %) Pflicht-Geheimnisse deklariert 4.905 (15,6 %) Pflicht-Geheimnisse deklariert: 4.905 (15,6 %) Pfadargument vorhanden 317 (1,0 %) Pfadargument vorhanden: 317 (1,0 %)
Abbildung 2: Anteil der Einträge mit dem Wert „ja" beziehungsweise „entfernt", gemessen an 31.439 MCP-Servern, Datenstand 12.09.2026. Jeder Balken ist gegen dieselbe Bezugsgröße gezeichnet.

Die größte Gruppe ist die unauffälligste: 24.294 Einträge (77,3 %) führen eine Repository-Adresse. Die Regel sagt ausdrücklich, was daraus nicht folgt: Ob unter der Adresse etwas liegt, ist damit nicht gesagt, denn das Register ruft sie nie ab. 17.789 Einträge (56,6 %) führen ausschließlich Remote-Adressen oder HTTP-Transporte und gelten nach der Regel als „entfernt". Für die übrigen 13.650 (43,4 %) sagt dieselbe Regel „lokal".

Aufschlussreicher sind die beiden kleinen Gruppen. 4.905 Einträge (15,6 %) deklarieren mindestens eine Umgebungsvariable oder eine Kopfzeile eines Remote-Endpunkts, die zugleich als geheim und als erforderlich markiert ist. Die übrigen 26.534 tun das nicht. Daraus folgt nicht, dass 84,4 % aller Server ohne Zugangsdaten auskommen, sondern nur, dass ihr Manifest keine als Pflicht erklärt. Ein Server, der seinen API-Schlüssel in der Beschreibung erwähnt, aber nicht im Schema, zählt hier zu „nein". Deshalb heißt die Kurzform auf der Eintragsseite „Keine Zugangsdaten angegeben" und nicht „keine erforderlich".

Die kleinste Gruppe: 317 Einträge (1,0 %) erklären ein Paket- oder Laufzeitargument oder eine Umgebungsvariable mit dem Format filepath. Wer einem Server einen Ordner mitgeben muss, erfährt das aus dem Manifest also nur selten über dieses Format. Ob ein Server trotzdem einen Pfad erwartet, steht, wenn überhaupt, in seiner eigenen Dokumentation.

Zwei Merkmale gekreuzt: Wo stehen die Geheimnisse?

Zwei Merkmale mit je einem Wert lassen sich gegeneinander stellen, auf der Seite über die Kreuztabelle und an der Schnittstelle über /v1/matrix. Die Frage, die sich hier lohnt: Deklarieren entfernte Server häufiger ein Pflicht-Geheimnis als lokale?

Pflicht-Geheimnisse je Ausführungsort entfernt · 17.789 Einträge ohne deklariertes Geheimnis 16.169 (90,9 %) ohne deklariertes Geheimnis: 16.169 (90,9 %) mit deklariertem Geheimnis 1.620 (9,1 %) mit deklariertem Geheimnis: 1.620 (9,1 %) lokal · 13.650 Einträge ohne deklariertes Geheimnis 10.365 (75,9 %) ohne deklariertes Geheimnis: 10.365 (75,9 %) mit deklariertem Geheimnis 3.285 (24,1 %) mit deklariertem Geheimnis: 3.285 (24,1 %)
Abbildung 3: Die vier Zellen der Kreuztabelle, je Gruppe gegen ihre eigene Summe gezeichnet. Unter den entfernten Einträgen deklarieren 9,1 % ein Pflicht-Geheimnis, unter den lokalen 24,1 %.
Die Kreuztabelle in Zahlen
Ausführungsortohne deklariertes Geheimnismit deklariertem Geheimnis
entfernt16.169 (90,9 %)1.620 (9,1 %)
lokal10.365 (75,9 %)3.285 (24,1 %)
zusammen26.5344.905

Die Zahlen laufen der Vermutung entgegen. Von den 13.650 lokalen Einträgen deklarieren 3.285 ein Pflicht-Geheimnis (24,1 %), von den 17.789 entfernten nur 1.620 (9,1 %). 67,0 % aller Einträge mit deklariertem Pflicht-Geheimnis sind lokal. Warum das so ist, misst das Register nicht, und dieser Beitrag rät es nicht. Wer der Frage nachgehen will, öffnet eine Zelle: Jede Zelle der Kreuztabelle führt in die gefilterte Liste, und dort steht bei jedem Eintrag die Originalangabe, aus der sein Wert entstanden ist.

Einen Eintrag in fünf Schritten lesen

Als Beispiel dient der Eintrag com.pulsemcp/remote-filesystem, ein Server für Dateien in Google Cloud Storage, abgerufen am 13.09.2026. Er trägt keinen eigenen Anzeigenamen, ist klein genug, um ihn ganz zu lesen, und zeigt jeden der Fälle aus der Tabelle oben.

  1. Die Rohangaben zuerst. Der Eintrag führt ein Paket (npm:remote-filesystem-mcp-server, Version 0.1.5) mit dem Transport stdio, 8 Umgebungsvariablen und die Repository-Adresse https://github.com/pulsemcp/mcp-servers, alle als Selbstauskunft, erhoben am 06.08.2026. Das ist die Grundlage; alles Weitere wird daraus gebildet.

  2. Dann die abgeleiteten Werte, jeweils mit ihrer Regel. Ausführungsort „lokal": Die Regel sagt „entfernt" nur, wenn ausschließlich Remote-Adressen oder HTTP-Transporte geführt sind, und stdio ist keines von beiden. Pflicht-Geheimnisse deklariert „nein", und hier lohnt der zweite Blick: Das Manifest markiert GCS_PRIVATE_KEY als geheim, aber nicht als erforderlich, und GCS_BUCKET als erforderlich, aber nicht als geheim. Die Regel verlangt beide Markierungen an derselben Variable, also bleibt die Liste der geheimen Pflichtvariablen leer. Das ist keine Aussage über den Server, sondern genau das, was sein Manifest erklärt. Pfadargument vorhanden „nein": GOOGLE_APPLICATION_CREDENTIALS ist laut ihrer Beschreibung ein Pfad zu einer Schlüsseldatei, trägt aber nicht das Format filepath.

  3. Das Datum lesen, nicht nur den Wert. „Erhoben am" nennt den Tag, an dem der geltende Wert aufgezeichnet wurde. Liefert die Quelle am nächsten Tag denselben Wert, entsteht keine neue Zeile. Beim Beispiel sind es vier Tage: 06.08.2026 für die Kernangaben, 16.08.2026 für später eingeführte Rohangaben, 26.08.2026 für die Beschreibung und 08.09.2026 für die Verbindungswege.

  4. Die leeren Felder als Auskunft nehmen. Geheime Pflichtvariablen, geheime Pflichtkopfzeilen, Remote-Adressen, Pfadargumente und die Formate der Umgebungsvariablen stehen als „nachweislich nicht vorhanden" da. Daraus folgt nur, was die Regel folgert. Welche Zugangsdaten der Server beim Start wirklich braucht, steht, wenn überhaupt, in seiner Dokumentation und nicht in diesem Register.

  5. Zuletzt den Registerstatus als das lesen, was er ist. „Registerstatus: aktiv" gibt wieder, was das Quellregister führt, und ist keine Messung des Betriebs. Für seine Einträge ruft tracevero keinen Server auf. Wer wissen will, ob der Server antwortet, startet ihn; die Clientseiten zeigen, wie die Konfigurationsdatei dafür aufgebaut ist und wo sie liegt.

Sieben Daten rund um den Eintrag „remote-filesystem" 2026-06-26 Eintragung laut Quelle 2026-08-06 Kernangaben erhoben 2026-08-16 weitere Rohangaben erhoben 2026-08-26 Beschreibung erhoben 2026-09-08 Verbindungswege erhoben 2026-09-12 Datenstand gebaut 2026-09-13 für diesen Beitrag abgerufen
Abbildung 4: Die Daten in der Schreibweise der Eintragsseite. Nur das erste stammt aus der Quelle; die übrigen hat tracevero selbst aufgezeichnet, und keines davon ist ein anderes.

Abbildung 4 zeigt, warum das Datum an jedem Wert steht und nicht einmal am Eintrag. Die Quelle meldet die Eintragung am 26.06.2026; tracevero hat den Server am 06.08.2026 zum ersten Mal gesehen und danach an drei weiteren Tagen neue Rohangaben aufgezeichnet. Der letzte Lauf vor diesem Beitrag hat den Eintrag am 12.09.2026 wieder gesehen (Feld zuletzt_geprueft der Schnittstelle), ohne dass sich einer der Kernwerte geändert hätte. Wer nur ein einziges Datum nennt, sagt deshalb weniger, als er zu sagen glaubt.

Was das Register nicht sagt

Die Grenze der Messung gehört zur Messung. Vier Dinge stehen bewusst auf keiner Eintragsseite, und wer sie hineinliest, liest falsch:

Die zwölf häufigsten Einsatzgebiete Kryptowährung 1.021 Kryptowährung: 1.021 Dokumente 990 Dokumente: 990 Zahlung 978 Zahlung: 978 Finanzen 973 Finanzen: 973 Gedächtnis 966 Gedächtnis: 966 Bild 697 Bild: 697 Video 649 Video: 649 E-Mail 611 E-Mail: 611 Sicherheit 569 Sicherheit: 569 Versionsverwaltung 467 Versionsverwaltung: 467 Audio 456 Audio: 456 Soziale Medien 420 Soziale Medien: 420
Abbildung 5: Zahl der Einträge je Einsatzgebiet, 12 von 33 Gebieten, gezeichnet gegen das größte. Ein Eintrag kann in mehreren Gebieten stehen; die Zahlen ergeben deshalb keine Summe des Bestands.

Abbildung 5 zeigt die zwölf größten der 33 Gebiete. Dass Kryptowährung mit 1.021 Einträgen vorn liegt, sagt etwas über die Beschreibungstexte im Quellregister und nichts über die Qualität der Server. Genauso zu lesen ist die deklarierte Version: Der Bestand kennt 1.634 verschiedene Werte, und 8.675 Einträge (27,6 %) nennen „1.0.0". Eine Version im Manifest ist eine Angabe und keine Prüfung des Pakets.

Wer über eine einzelne Eintragsseite hinaus prüfen will, findet unter Werkzeuge die Kreuztabelle, die Lücken je Merkmal und die Sammelabfrage, die eine ganze Konfigurationsdatei Zeile für Zeile nachschlägt. Alle drei zählen; eine Note vergibt keines von ihnen.

Häufige Fragen

Heißt „Keine Zugangsdaten angegeben", dass der Server ohne Schlüssel läuft?
Nein. Es heißt, dass das Manifest keine Umgebungsvariable und keine Kopfzeile als geheim und erforderlich erklärt. Ob der Server einen Schlüssel braucht, steht in seiner Dokumentation. Das Register misst die Erklärung, nicht den Bedarf.
Warum zeigt ein Eintrag mehrere Erhebungsdaten?
Weil jede Rohangabe den Tag trägt, an dem ihr geltender Wert aufgezeichnet wurde, und das Register seine Felder nicht alle am selben Tag eingeführt hat. Ein einziges Datum je Eintrag ließe ältere Werte jünger aussehen, als sie sind.
Kann ich die abgeleiteten Werte selbst nachrechnen?
Ja. Die Regeln stehen mit Fassung 2 und Wortlaut unter https://api.tracevero.com/v1/regeln, die Rohangaben stehen bei jedem Eintrag. Wer beides nimmt, kommt auf denselben Wert; dafür sind die Regeln veröffentlicht.
Was bedeutet „Registerstatus: aktiv"?
Den Wert, den das Quellregister für den Eintrag führt. Er sagt nicht, ob der Server heute antwortet. tracevero misst keinen Betrieb, und deshalb heißt das Feld Registerstatus und nicht Status.
Wie aktuell sind die Zahlen in diesem Beitrag?
Sie gelten für den Datenstand vom 12.09.2026 und wurden am 13.09.2026 abgerufen. Der Bestand ändert sich täglich; die Befehle im Quellenblock ziehen die Zahlen neu, und die Bestandszahlen zeigen sie laufend.

Quellen und Befehle

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

  1. Bestand, Verteilung der einwertigen Merkmale, Einsatzgebiete und Versionen
    curl -s https://api.tracevero.com/v1/kennzahlen
  2. Ausführungsort gegen deklarierte Pflicht-Geheimnisse, vier Zellen mit Rändern
    curl -s "https://api.tracevero.com/v1/matrix?art=mcp_server&a=ausfuehrungsort&b=zugangsdaten_erforderlich"
  3. Die veröffentlichten Ableitungsregeln mit ihrer Fassung
    curl -s https://api.tracevero.com/v1/regeln
  4. Der Beispieleintrag mit Quelle, Erhebungsdatum und Vertrauensgrad je Wert
    curl -s https://api.tracevero.com/v1/eintrag/mcp_server/com-pulsemcp-remote-filesystem
  5. Die Suchmuster des Einsatzgebiets Zahlung
    curl -s https://tracevero.de/themen/einsatz-zahlung

Alle Beiträge

tracevero · https://tracevero.de/blog/was-deklariert-ein-mcp-server