Der MCP-Server (sinclear-docs-mcp) stellt die Dokumentation der Sinclear Beyond API über das Tool get_documentation bereit. Alle Dateien im docs/-Ordner werden dynamisch gescannt und als Topics verfügbar gemacht.
Der MCP-Server scannt docs/ rekursiv nach .md-Dateien. Jede gefundene Datei wird als Topic verfügbar:
| Datei | Topic-Name |
|---|---|
docs/travel/readme.md |
travel |
docs/CRON.md |
cron |
docs/app/updates.md |
app/updates |
Naming-Regel: Der Topic-Name ergibt sich aus dem Pfad relativ zu docs/, ohne .md-Endung, in Kleinbuchstaben.
| Topic | Quelle | Beschreibung |
|---|---|---|
index |
Generiert | Übersicht aller verfügbaren Topics |
openapi |
openapi.yaml |
Strukturierte OpenAPI-Übersicht |
mcp |
docs/mcp/readme.md |
MCP-Server-Dokumentation |
cron |
docs/CRON.md |
Cron-Job-Übersicht |
Wenn ein Topic angefordert wird, versucht der Server drei Kandidaten:
- Exakter Pfad (z.B.
notifications/list) - Mit
.md-Endung (z.B.notifications/list.md) - Als
readme.mdim Unterverzeichnis (z.B.notifications/list/readme.md)
Die inputSchema des Tools get_documentation enthält alle verfügbaren Topics als enum-Werte, nicht nur die Kern-Themen. Das enum wird zur Laufzeit aus dem docs/-Scan generiert (DocumentationProvider::availableTopics()), damit MCP-Clients jede Datei direkt anfragen können.
Wichtig: Das enum darf nie auf die Kern-Themen (index, openapi, mcp, cron) beschränkt werden. Viele MCP-Clients validieren die Argumente streng gegen das enum und blockieren sonst gültige Anfragen (z.B. notifications/list).
Nach jeder Änderung an der API (Routes, Controllers, DTOs, Services) MUSS sichergestellt werden, dass:
- Die betroffene Dokumentationsdatei in
docs/aktualisiert wird. - Die Datei über den MCP-Server erreichbar ist (
.md-Endung, korrekter Pfad). - Das
index-Topic die Datei korrekt auflistet (automatisch durch Scan).
Wenn eine neue Datei in docs/ angelegt wird:
- Muss sie die
.md-Endung haben. - Wird sie automatisch vom MCP-Server als Topic verfügbar gemacht.
- Sollte der Dateiname deskriptiv und in Kleinbuchstaben sein (z.B.
notifications/list.md). - Unterordner sind erlaubt und erwünscht (z.B.
travel/readme.md).
Wenn in anderer Dokumentation auf MCP-Topics verwiesen wird, muss der korrekte Topic-Name verwendet werden:
notifications/listfür die Benachrichtigungs-Übersichtcronfür Cron-Jobstravelfür Reise-Dokumentation- etc.
Der MCP-Server verwendet keine hardcoded Liste von Topics. Alle Topics werden zur Laufzeit aus dem docs/-Ordner gescannt. Es ist daher nicht nötig, neue Topics manuell zu registrieren.
Das index-Topic wird dynamisch generiert und listet automatisch alle verfügbaren Topics auf. Es muss nicht manuell aktualisiert werden.
Die AGENTS.md-Datei muss immer einen Verweis auf das MCP.md-Dokument enthalten, damit Entwickler die Regeln für die MCP-Server-Pflege kennen.
Bei jeder Änderung an der Dokumentation oder am MCP-Server sollte geprüft werden:
- Sind alle
docs/-Dateien über den MCP-Server erreichbar? - Wird das
index-Topic korrekt generiert? - Funktioniert die Topic-Resolution für alle Dateien?
- Ist das
enumdes Toolsget_documentationdynamisch (availableTopics()), nicht auf Kern-Themen beschränkt? - Enthält
AGENTS.mdden Verweis aufMCP.md? - Test via
php bin/test-mcp.php(gegen laufende API) ausgeführt?
Wenn ein unbekanntes Topic angefordert wird, gibt der Server eine Fehlermeldung mit einer Liste der verfügbaren Topics aus. Die ersten 40 Topics werden angezeigt.