Migrate all repos into monorepo context folders

Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
      Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
      Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)

Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
This commit is contained in:
2026-06-30 20:39:52 +02:00
parent 2f2b295531
commit a5f8fb49ab
1717 changed files with 447332 additions and 0 deletions
+129
View File
@@ -0,0 +1,129 @@
# Awesome Bahn MCP Servers aktualisieren
> **⚠️ README.md NIEMALS direkt bearbeiten!**
> Die README.md wird ausschließlich durch `python3 generate-readme.py` aus `index.json` erzeugt. Direkte Änderungen an der README.md — egal ob manuell, durch LLMs oder Agenten — sind verboten. Änderungen gehören in `index.json`, `header.md` oder `footer.md`.
## Liste ergänzen
> Durchsuche das interne GitLab nach allen MCP Servern, prüfe Stars, letzte Aktivität und Sichtbarkeit. Aktualisiere `index.json` und generiere die README.md. Nur non-private Repos aufnehmen. Sortiere nach Stars absteigend.
## Liste aktualisieren
> Durchsuche das interne Gitlab nach allen Servern in der `index.json`, aktualisiere die Anzahl der Sterne und `last_activity`
Wenn ein Server verschwindet weise darauf hin und entferne ihn. Versuche ihn an anderer Stelle zu finden, da er vielleicht nur umgezogen wurde.
## Neuen MCP Server hinzufügen
> Füge den MCP Server <URL> zur awesome-bahn-mcp-servers Liste hinzu. Prüfe Stars, letzte Aktivität und ob das Repo non-private ist.
## Workflow
Bei jeder Änderung an der Liste — egal ob Auffrischen, Hinzufügen oder Entfernen:
1. **Immer zuerst `index.json` aktualisieren** — das ist die Single Source of Truth
2. **Jeden neuen oder geänderten Server dem User vorstellen** und nach Hinweisen fragen:
- Ist der Server Bahn-spezifisch? Falls nein → `"note": "Nicht Bahn-spezifisch"`
- Nur lokal nutzbar? → `"note": "Nur lokale Nutzung"`
- Nur für proprietäres Wissen? → `"note": "Nur lokales proprietäres Wissen"`
- Richtige Kategorie? User entscheidet
- Sonstige Hinweise? User kann freien Text als `note` vergeben
3. **`python3 generate-readme.py` ausführen** — README.md niemals manuell editieren
4. Neuen Branch erstellen für Änderungen, Benutzer vorher fragen
5. **Immer vor jedem Commit `python3 generate-readme.py` ausführen** — sicherstellen, dass README.md aktuell ist
6. Eigenen Branch erstellen, Merge Request erstellen einen der CODEOWNERS assignen
## Regeln
- Nur Repos mit Sichtbarkeit `internal` oder `public` aufnehmen (nicht `private`)
- Stars und letzte Aktivität via GitLab API abfragen
- Forks standardmäßig ausschließen — via `glab api "projects/<path>"` und `forked_from_project` prüfen
- Forks nur aufnehmen wenn sie eigenen Mehrwert haben (nicht nur zum Listen)
- Playgrounds, leere Repos und Nicht-MCP-Server ausschließen
- Repos die noch in Entwicklung sind (leere Hülle) → `excluded[]` mit Grund
- Alle Texte auf Deutsch, englische Fachbegriffe beibehalten
- Proper Umlauts verwenden (ü, ö, ä, ß)
- Repo-Pfad: `$HOME/work/mcp/awesome-bahn-mcp`
- Remote: `git@ssh.git.tech.rz.db.de:beta/ai/awesome-bahn-mcp-servers.git`
## index.json
Die Datei `index.json` ist die Single Source of Truth. Die README.md wird daraus generiert — niemals manuell editieren.
Struktur:
- `servers[]` — Alle Server mit folgenden Feldern:
- `url` — GitLab URL
- `name` — Anzeigename
- `description` — Kurzbeschreibung
- `stars` — Anzahl der Sterne
- `contributors` — Anzahl der Contributors (optional)
- `commits` — Anzahl der Commits (optional)
- `last_activity` — Datum der letzten Aktivität (YYYY-MM-DD)
- `status` — "legit" für aufgenommene Server
- `category` — Eine der definierten Kategorien
- `note` — Optionaler Hinweis (z.B. "Nicht Bahn-spezifisch")
- `beta``true` für BETA-Team Server (erscheinen mit Badge)
- `official``true` für offizielle DB-Server (erscheinen mit OFFICIAL Badge)
- `false_positives[]` — Repos die kein MCP Server sind und beim nächsten Scan ignoriert werden
- `excluded[]` — Repos die bewusst ausgeschlossen wurden (mit Grund)
Beim Auffrischen der Liste:
1. `index.json` lesen
2. GitLab API durchsuchen: `glab api "projects?search=mcp&per_page=100&page=N"`
3. Zusätzlich Blob-Suche nach MCP-SDK-Nutzung: `glab api "search?scope=blobs&search=modelcontextprotocol&per_page=100"` — findet Repos die das MCP SDK nutzen, aber nicht "mcp" im Namen haben
4. Zusätzlich Blob-Suche nach MCP-Dependencies: `glab api "search?scope=blobs&search=mcp>=&per_page=100"` (Python) und `glab api "search?scope=blobs&search=@modelcontextprotocol/sdk&per_page=100"` (TypeScript) — findet Repos die das MCP SDK als Dependency nutzen
5. Neue Repos gegen `false_positives` und `excluded` prüfen — diese nicht aufnehmen
6. Neue Repos auf Forks prüfen: `glab api "projects/<path>"``forked_from_project`
7. Bestehende Server-Daten (stars, last_activity) aktualisieren
8. Neue Server einzeln dem User vorstellen: `open <url>` ausführen um das Repo im Browser zu öffnen, dann nach Urteil fragen (Kategorie, Notes, aufnehmen oder nicht)
9. `python3 generate-readme.py` ausführen um README.md zu generieren
## Kategorien
- AI und GenAI
- DB-Kontext und Wissen
- Daten und Analytik
- DevOps und Infrastruktur
- Enterprise Architecture und Governance
- Fachspezifisch
- Kommunikation und Zusammenarbeit
- Monitoring
- Produktivität und Automatisierung
- Reisenden-Information (RIS)
- Suche und Code-Analyse
## README generieren
```
python3 generate-readme.py
```
Das Script liest `index.json` und erzeugt `README.md`. Keine externen Abhängigkeiten — nur Python stdlib. BETA-Server (`"beta": true`) und OFFICIAL-Server (`"official": true`) stehen immer oben innerhalb ihrer Kategorie. Community-Server werden nach Kategorie gruppiert und nach Stars absteigend sortiert. Ausgabeformat ist Bullet-Listen (keine Tabellen).
## Troubleshooting
### glab API gibt keine Daten zurück
Prüfe ob `GITLAB_TOKEN` Umgebungsvariable gesetzt ist — diese überschreibt das glab-Token:
```bash
echo $GITLAB_TOKEN
unset GITLAB_TOKEN
glab auth status
```
Falls das Token abgelaufen ist:
```bash
glab auth login --hostname ssh.git.tech.rz.db.de
```
### Server nicht mehr erreichbar (404)
Server aus `servers[]` entfernen und zu `false_positives[]` hinzufügen mit Grund "Repo gelöscht (404 Not Found)".
### Berechtigungsfehler bei glab config
```bash
chmod 600 ~/.config/glab-cli/config.yml
```