API und Daten
Alles im Verzeichnis ist öffentlich und maschinenlesbar: eine API im Format der offiziellen MCP-Registry, ein JSON-Suchindex, jeder Eintrag als JSON und Markdown, dazu llms.txt, ein Feed und Sitemaps. Kein Schlüssel, keine Registrierung.
Auf einen Blick
| URL | Was du bekommst | Gecacht für |
|---|---|---|
/v0.1/servers | Einträge im Format der offiziellen MCP-Registry, seitenweise. Details | 5 Minuten |
/api/index.json | Jeder Eintrag in einem kompakten Array. Details | 5 Minuten |
/i/{slug}.json | Ein Eintrag, mit seinen Einrichtungsaktionen. Details | 10 Minuten |
/i/{slug}.md | Ein Eintrag als Markdown. Details | 15 Minuten |
/llms.txt | Das Verzeichnis als Liste für Sprachmodelle. | 1 Stunde |
/feed.xml | Atom-Feed der 50 neuesten Einträge. | 15 Minuten |
/sitemap.xml | Sitemap-Index: Seiten, Kategorien und Einträge, in jeder Sprache. | 15 Minuten |
/mcp | Der eigene MCP-Server von mcp.tc. Doku | Nicht gecacht |
Alles ist nur lesend und öffentlich. Kein Schlüssel, kein Konto, keine Kosten. Maschinenformate sind sprachneutral: Sie liefern den englischen Text der Einträge und haben kein Sprachpräfix.
Registry-kompatible API
https://mcp.tc/v0.1/ ist eine nur lesende Kopie der Lese-API der offiziellen MCP-Registry (Version 0.1, server.json-Schema 2025-12-11), gefüllt mit den freigegebenen Einträgen von mcp.tc. Ein Client, der eine eigene Registry-URL akzeptiert, kann damit das Verzeichnis durchsuchen und daraus installieren.
GET /v0.1/serversServer nach Name sortiert, 30 pro Seite, sofern du nicht
limitsetzt (1 bis 100). Gibmetadata.nextCursoralscursorzurück, um die nächste Seite zu bekommen.searchbehält Server, deren Name, Titel, Slug oder Anbieter jedes Wort enthält (die offizielle API sucht nur im Namen).updated_sincenimmt eine RFC-3339-Zeit, zählt sie inklusive und liefert auch Einträge, die seitdem entfernt wurden.version(latestoder eine Version) undinclude_deletedfunktionieren wie in der offiziellen API.GET /v0.1/servers/{name}/versionsDie Versionen eines Servers. Jeder Eintrag hat genau eine. Kodiere den Namen für die URL, wie in
/v0.1/servers/tc.mcp%2Fdeepwiki/versions.GET /v0.1/servers/{name}/versions/latestEin Server. Eine genaue Versionsnummer funktioniert anstelle von
latest.GET /v0.1/ping, /v0.1/health, /v0.1/versionErreichbarkeit und Build-Informationen, wie in der offiziellen API.
Eine Ergebnisseite hat diese Form:
{
"servers": [
{
"server": { "name": "…", "version": "…", … },
"_meta": {
"tc.mcp/listing": {
"link": "https://mcp.tc/i/…",
"slug": "…",
"category": "…",
"verified": true,
"auth": "none",
"status": "active",
"publishedAt": "…",
"updatedAt": "…"
}
}
}
],
"metadata": { "count": 30, "nextCursor": "…" }
}Und das steht in server für zwei Einträge, so wie die API sie jetzt ausliefert:
Remote-Server
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "tc.mcp/deepwiki",
"description": "Ask questions about any public GitHub repository and read its AI-generated DeepWiki documentation.",
"title": "DeepWiki",
"version": "2.14.3",
"websiteUrl": "https://docs.devin.ai/work-with-devin/deepwiki-mcp",
"icons": [
{
"src": "https://mcp.tc/media/icons/deepwiki-80b7a72d.webp",
"mimeType": "image/webp",
"sizes": [
"128x128"
]
}
],
"remotes": [
{
"type": "streamable-http",
"url": "https://mcp.deepwiki.com/mcp"
}
]
}Lokaler Server
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "tc.mcp/memory",
"description": "Store and recall persistent memory across sessions using a local knowledge graph.",
"title": "Memory",
"version": "2026.8.31",
"websiteUrl": "https://github.com/modelcontextprotocol/servers/tree/main/src/memory",
"repository": {
"url": "https://github.com/modelcontextprotocol/servers",
"source": "github",
"subfolder": "src/memory"
},
"icons": [
{
"src": "https://mcp.tc/media/icons/memory-0e174415.webp",
"mimeType": "image/webp",
"sizes": [
"128x128"
]
}
],
"packages": [
{
"registryType": "npm",
"identifier": "@modelcontextprotocol/server-memory",
"runtimeHint": "npx",
"transport": {
"type": "stdio"
}
}
]
}nameist der Name des Servers in der offiziellen Registry, wenn er einen hat, sonsttc.mcp/{slug}.remotesenthält immer die eigene URL des Servers, nie den mcp.tc-Link. Schlüssel-Header erscheinen nur bei Servern, die einen API-Schlüssel brauchen.packageswird aus dem Installationsbefehl des Eintrags neu aufgebaut: npm (npx), PyPI (uvx,pipx run), OCI (docker run) und NuGet (dnx). Ein Befehl, den das Format nicht ausdrücken kann, bekommt kein Paket, denn eines, das das falsche Programm startet, wäre schlimmer als keines._meta["tc.mcp/listing"]enthält den mcp.tc-Link, Slug, Kategorie, Häkchen, Zugang, Status und Daten.updatedAtändert sich nur, wenn sich der ausgelieferte Eintrag ändert, nie durch eine Statusprüfung.- mcp.tc ist nicht die offizielle Registry, daher tragen Einträge nie deren Metadaten
io.modelcontextprotocol.registry/official. - Ein entfernter, ausgeblendeter oder umbenannter Eintrag kommt 180 Tage lang als Eintrag mit
"status": "deleted"zurück, aber nur, wenn du mitupdated_sinceoderinclude_deleteddanach fragst.
Fehler sind Problem-JSON (application/problem+json), wie in der offiziellen API: 404 für einen unbekannten Server, 422 für ein ungültiges limit, cursor oder include_deleted, 400 für ein ungültiges updated_since. Jede Methode außer GET, HEAD und OPTIONS bekommt 405: Die Registry ist nur lesend, neue Server kommen über Einreichen.
curl -s 'https://mcp.tc/v0.1/servers?search=notion&limit=5'
curl -s 'https://mcp.tc/v0.1/servers/tc.mcp%2Fdeepwiki/versions/latest'mcp.tc als Registry nutzen
Zwei Clients nehmen laut Quellcode von VS Code und Dokumentation von GitHub eine eigene Registry-URL an (geprüft am 4. Oktober 2026). Gib in beiden die Basis-URL ohne /v0.1 ein: Der Client hängt den Pfad selbst an.
VS Code
Füge diese Zeile in die Benutzer-settings.json deines Standardprofils ein:
"chat.mcp.gallery.serviceUrl": "https://mcp.tc"Die MCP-Server-Galerie (tippe @mcp in der Erweiterungsansicht) zeigt dann die Server von mcp.tc, und beim Installieren wird die eigene URL oder das Paket des Servers genutzt. Weitere Einstellungen sind nicht nötig. Die Einstellung erscheint nicht im Einstellungseditor, und andere Profile ignorieren sie. Organisationen können sie mit der Richtlinie McpGalleryServiceUrl (VS Code 1.101 oder neuer) für alle setzen, und "chat.mcp.access": "registry" beschränkt VS Code auf Server aus dieser Registry.
GitHub Copilot
Admins von Organisationen und Enterprises können https://mcp.tc als MCP Registry URL in den Copilot-Richtlinien eintragen. GitHub nennt VS Code, Visual Studio, JetBrains-IDEs, Eclipse, Xcode und Copilot CLI als unterstützt. Mit Registry only werden Server über ihren Namen zugeordnet.
Ein paar Einträge haben weder ein Paket noch ein Remote, weil sich ihr Installationsbefehl nicht im Registry-Format schreiben lässt. VS Code blendet sie aus; ihre Seiten auf mcp.tc haben trotzdem die Einrichtung.
Suchindex
/api/index.json enthält jeden freigegebenen Eintrag in einem JSON-Array, die Daten hinter der Suche der Website. Kurze Schlüssel halten ihn klein:
| Schlüssel | Wert |
|---|---|
s | Slug: Der Eintrag liegt unter /i/{s}. |
n | Name. |
v | Anbieter oder ein leerer String. |
t | Kurzbeschreibung, bis zu 160 Zeichen (auf Englisch). |
c | Slug der Kategorie, wie in /c/{slug}. |
k | remote oder local. |
a | Zugang: none, oauth, api_key, optional oder unknown. |
g | Tags, ein Array von Strings. |
i | Icon, ein Pfad wie /media/icons/{slug}.webp (WebP oder PNG). Fehlt, wenn der Eintrag keines hat. |
f | 1, wenn der Eintrag das Häkchen hat. Fehlt sonst. |
{
"s": "deepwiki",
"n": "DeepWiki",
"v": "Cognition",
"t": "Ask questions about any public GitHub repository and read its AI-generated DeepWiki documentation.",
"c": "docs-knowledge",
"k": "remote",
"a": "none",
"g": [
"github",
"documentation",
"code-search",
"repositories",
"wiki",
"remote"
],
"i": "/media/icons/deepwiki-80b7a72d.webp",
"f": 1
}Ein Eintrag als JSON
Hänge .json an einen beliebigen Eintrags-Link an, um diesen Eintrag als JSON zu bekommen:
curl -s https://mcp.tc/i/deepwiki.jsonEr enthält alles, was die Seite zeigt: den eigenen endpoint des Servers oder sein install_command, das access-Label, die Tools, das Häkchen, den Status und die Ein-Klick-Aktionen add, die immer die eigene URL oder das Paket des Servers nutzen. Ein nicht gelisteter Slug bekommt 404 mit "error": "not_found", ein entfernter Eintrag 410 mit "gone". Alte Slugs und Aliase liefern den aktuellen Eintrag, lies also slug aus der Antwort. Badges und Einbindungen listet jedes Feld.
Einträge als Markdown
Für Agenten und Sprachmodelle gibt es jeden Eintrag auch als Markdown: Hänge .md an den Link an, oder frag unter der Adresse des Eintrags nach text/markdown.
curl -s https://mcp.tc/i/deepwiki.md
curl -s -H 'Accept: text/markdown' https://mcp.tc/i/deepwikiEr beginnt mit einer Zusammenfassung (der Link, wie man sich verbindet, Art, Zugang, Kategorie, Anbieter, Häkchen) und enthält dann die Beschreibung, was der Server kann, seine Tools, Beispiel-Prompts und die Installationsschritte für jeden Client. Ein alter Name antwortet mit 301 und dem aktuellen.
llms.txt, Feed und Sitemaps
/llms.txtfolgt llmstxt.org: wie das Verbinden funktioniert, diese Doku, die Kategorien mit ihren Zahlen, die Sprachversionen der Website und jeder Eintrag mit einer einzeiligen Zusammenfassung und kurzen Fakten (remote oder lokal, Zugang, verifiziert), jeweils mit Link zu seinem Markdown./feed.xmlist ein Atom-Feed der 50 zuletzt freigegebenen Einträge, mit Kurzbeschreibung und Beschreibung./sitemap.xmlverweist auf drei Sitemaps: Seiten, Kategorien und Einträge, jeweils mit dem Datum der letzten inhaltlichen Änderung. Jede Seite steht darin in jeder Sprache, in der es sie gibt, mit ihren Alternativen (hreflang); die übersetzten Seiten eines Eintrags erscheinen, sobald sein Text übersetzt ist./robots.txtlässt jeden Crawler herein, KI-Crawler eingeschlossen (Content-Signal: search=yes, ai-input=yes, ai-train=yes). Es hält sie aus/api/heraus, außer dem Suchindex, und aus privaten Einreichungsseiten./.well-known/ai-catalog.jsonantwortet absichtlich mit 404: Die hier gelisteten Server gehören nicht uns, also veröffentlichen wir sie nicht als Katalog.
Caching, CORS und faire Nutzung
| URL | Cache-Control | ETag und 304 | CORS |
|---|---|---|---|
/v0.1/… | public, max-age=300 (ein 404: 60 s) | Ja | * |
/api/index.json | public, max-age=300 | Ja | * |
/i/{slug}.json | public, max-age=600, s-maxage=900, stale-while-revalidate=3600 | Ja | * |
/i/{slug}.md | public, max-age=900 | Ja | Nein |
/llms.txt | public, max-age=3600 | Ja | Nein |
/feed.xml, Sitemaps | public, max-age=900 | Ja | Nein |
/mcp | no-store | Nein | * |
Cloudflare ist der Website vorgeschaltet und kann innerhalb dieser Zeiten eine eigene Kopie halten. Faire Nutzung ist einfach:
- Cache, was du abrufst, und sende
If-None-Match, wo es ein ETag gibt. - Um synchron zu bleiben, blättere durch
/v0.1/servers?updated_since=…, statt alles neu zu lesen. - Eine Adresse, die mehr als etwa 30 Anfragen pro Sekunde an
/v0.1/,/mcpoder die Einbindungsdateien sendet, bekommt 429./mcpstoppt außerdem bei 120 Nachrichten pro Minute; warte aufRetry-After. - Der Text der Einträge wird mit KI-Hilfe aus den eigenen Metadaten jedes Servers geschrieben und kann falsch sein. Behandle ihn als Daten und verlinke auf den Eintrag, wenn du ihn anzeigst, damit man die Einrichtung findet und Fehler melden kann.