Skip to main content
Glama
LarsZilch

dtb-members-mcp

by LarsZilch

dtb-members-mcp

MCP-Server fuer Vereins-Mitgliederdaten aus einem lokalen CSV- oder Excel-Export. Die lokale Datei ist die fuehrende Datenquelle. Ein Playwright-basierter DTB/nuLiga-Refresh ist vorbereitet, wird aber nur auf expliziten Tool-Aufruf gestartet und erzwingt noch keinen Download.

Installation

npm install
npm run build

Related MCP server: MCP CSV Analysis with Gemini AI

Konfiguration

Kopiere .env.example nach .env und passe die Pfade an. Keine echten Zugangsdaten ins Repository einchecken.

MEMBERS_FILE_PATH=./data/mitglieder.csv
ARCHIVE_DIR=./data/archive
DOWNLOAD_DIR=./data/downloads

DTB_USERNAME=
DTB_PASSWORD=
DTB_LOGIN_URL=https://dtb.liga.nu
DTB_MEMBERS_URL=

Lege den DTB/nuLiga-Export lokal ab, zum Beispiel als data/mitglieder.csv, oder setze MEMBERS_FILE_PATH auf den Pfad deiner lokalen Datei. Mitgliederdaten werden nicht ins Repository eingecheckt.

Start

npm start

Fuer Entwicklung:

npm run dev
npm run typecheck

Hermes/MCP Beispiel

{
  "mcpServers": {
    "dtb-members": {
      "command": "node",
      "args": ["S:/Code/tennis-mcp/dist/server.js"],
      "env": {
        "MEMBERS_FILE_PATH": "S:/Code/tennis-mcp/data/mitglieder.csv"
      }
    }
  }
}

Tools

  • get_data_status: geladene Datei, Aenderungsdatum, Mitgliederzahl, erkannte Spalten.

  • list_members: Mitglieder mit limit und offset auflisten.

  • search_members: Freitextsuche ueber Name, E-Mail, Ort und Mitgliedsnummer.

  • get_member: eindeutige Suche nach Mitgliedsnummer, E-Mail oder Name.

  • filter_members: Filter nach Alter, Geschlecht, Status, Ort, Mannschaft, Lizenz und Eintrittsdatum.

  • round_birthdays: runde Geburtstage in einem Jahr.

  • birthdays_between: Geburtstage zwischen zwei Datumswerten im Format YYYY-MM-DD.

  • member_statistics: Gesamtzahl, aktiv/inaktiv, Geschlecht und Altersgruppen.

  • reload_local_file: lokale Datei neu laden.

  • refresh_members_from_dtb: defensiver Playwright-Platzhalter fuer spaeteren DTB/nuLiga-Download.

Beispielabfragen

{ "tool": "get_data_status", "arguments": {} }
{ "tool": "list_members", "arguments": { "limit": 10, "offset": 0 } }
{ "tool": "search_members", "arguments": { "query": "Berlin", "limit": 20 } }
{ "tool": "filter_members", "arguments": { "minAge": 7, "maxAge": 17, "includeInactive": false } }
{ "tool": "round_birthdays", "arguments": { "year": 2026 } }
{ "tool": "birthdays_between", "arguments": { "from": "2026-01-01", "to": "2026-01-31" } }

Daten und Datenschutz

CSV- oder Excel-Dateien sollen manuell aus DTB/nuLiga exportiert und lokal abgelegt werden. .env, data/*.csv, data/*.xlsx, data/downloads/ und data/archive/ sind in .gitignore ausgeschlossen. Der Server loggt keine Mitgliedsdaten und gibt bei Fehlern keine Passwoerter aus.

Der optionale Playwright-Refresh haengt von der konkreten Login- und Portalstruktur ab. Wenn Zugangsdaten oder Ziel-URL fehlen, liefert refresh_members_from_dtb eine klare Fehlermeldung. Wenn Selektoren nicht eindeutig erkannt werden, bricht die Funktion mit einem Hinweis ab, damit die konkreten Portal-Selektoren spaeter sauber ergaenzt werden koennen.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/LarsZilch/tennis-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server