HR WORKS MCP Server — Personalverwaltung & Lohn für KI-Agenten
HR WORKS via MCP an jeden KI-Agenten anbinden. 31 vorgefertigte Tools auf der v2 REST API: Mitarbeiter, Abwesenheiten, Krankheit, Arbeitszeiten, Projekte, Bewerber. Die Freiburger HR-Plattform, KI-tauglich.
Pre-built adapter available on AnythingMCP Cloud
Skip the self-hosted setup — install this adapter in one click with a free trial. No credit card required.
Install on Cloud — Free TrialHR WORKS für KI-Agenten
HR WORKS (vormals HRworks) ist die SaaS-HR-/Lohnplattform aus Freiburg, eingesetzt von ~20.000 KMU im DACH-Raum. Die v2 REST API legt den vollen operativen Datenbestand offen — Mitarbeiter, Abwesenheiten, Krankheiten, Arbeitszeiten, Homeoffice, Projekte, Bewerber, Organisationseinheiten, Feiertage, Kostenstellen — und AnythingMCP packt alles in einen drop-in MCP-Adapter mit 31 vorgefertigten Tools.
Warum ein MCP-Adapter für HR WORKS
HR WORKS bietet keinen langlebigen API-Key. Stattdessen wird {accessKey, secretAccessKey} an /v2/authentication gepostet und ein 15-minütiger JWT zurückgegeben, der dann als Authorization: Bearer <token> auf jeden weiteren Aufruf gesetzt wird. Diese kurze Token-Lebensdauer in Kombination mit per-Tenant-Rate-Limits und dem Dual-Identifier-Muster (Personalnummer oder Username auf den meisten Endpunkten) bringt fast jede DIY-Integration zum Stolpern.
Der AnythingMCP-Adapter erledigt:
- Den Bearer-Token-Vertrag (Sie liefern den Token, der Adapter sendet ihn auf jedem Aufruf)
- Sowohl Produktion als auch die
api.demo-hrworks.de-Sandbox überHRWORKS_BASE_URL - Die optionalen
personIdentifierType-/usePersonnelNumbers-Parameter, wo zutreffend - Die 1-Jahres-Maximalintervall-Regel auf Listing-Endpunkten
- Einen Live-Integrationstest, der beweist, dass der Bearer-Header wirklich injiziert wird (
InvalidBearerTokenErrorstattMissingAuthorizationHeaderError)
Schnelleinrichtung
Schritt 1: AnythingMCP deployen
git clone https://github.com/HelpCode-ai/anythingmcp.git
cd anythingmcp && docker compose up -d
Schritt 2: JWT aus HR WORKS holen
In der HR-WORKS-Verwaltung: Einstellungen → API → Access Key erzeugen für accessKey + secretAccessKey. Dann Token tauschen:
curl -X POST https://api.hrworks.de/v2/authentication \
-H 'Content-Type: application/json' \
-d '{"accessKey":"YOUR_ACCESS_KEY","secretAccessKey":"YOUR_SECRET_ACCESS_KEY"}'
Antwort: {"token": "eyJ..."}. Token-Lebensdauer ~15 Minuten — für Kurz-Workflows reicht der gleiche Token; für lang laufende Agenten diesen Adapter in einen Proxy mit automatischem Refresh wickeln.
Schritt 3: Adapter importieren
http://localhost:3000/connectors/store öffnen, HR WORKS importieren und JWT in HRWORKS_TOKEN einfügen.
Für Sandbox zusätzlich HRWORKS_BASE_URL=https://api.demo-hrworks.de setzen und Sandbox-Credentials nutzen.
Schritt 4: KI-Agent verbinden
{
"mcpServers": {
"hrworks": {
"url": "http://localhost:4000/mcp"
}
}
}
Verfügbare Tools (31)
Konnektivität & Konfiguration
| Tool | Was es zurückgibt |
|------|-------------------|
| hrworks_health_check | API-Erreichbarkeit — keine Auth nötig |
| hrworks_list_organization_units | Alle aktiven Organisationseinheiten |
| hrworks_get_organization_unit | Vollständiger Org-Unit-Datensatz |
| hrworks_list_permanent_establishments | Betriebsstätten |
| hrworks_list_holidays | Feiertage pro Region/Jahr |
| hrworks_list_cost_centers | Im Mandanten konfigurierte Kostenstellen |
Personen
| Tool | Was es zurückgibt |
|------|-------------------|
| hrworks_list_persons | Mitarbeiter-Verzeichnis mit Filtern |
| hrworks_get_person | Vollständiger Mitarbeiter-Datensatz |
| hrworks_list_persons_master_data | Stammdaten (HR-relevante Attribute) |
| hrworks_get_persons_today | Snapshot der heute Aktiven |
| hrworks_list_present_persons | Aktuell anwesende Personen (Büro/Remote) |
| hrworks_get_leave_account | Urlaubskonto-Stand pro Person |
Abwesenheiten & Zeit
| Tool | Was es zurückgibt |
|------|-------------------|
| hrworks_list_absences | Abwesenheiten über ein Datumsintervall |
| hrworks_list_absence_types | Konfigurierte Abwesenheitsarten |
| hrworks_list_vacation_types | Urlaubsarten-Katalog |
| hrworks_list_sick_leaves | Krankmeldungen über ein Datumsintervall |
| hrworks_list_sick_leave_types | Krankheitskategorien |
| hrworks_list_remote_work | Homeoffice-/Remote-Einträge |
| hrworks_list_working_times | Arbeitszeiteinträge (max. 1 Jahr / 31 Tage bei interval=days) |
| hrworks_list_time_recording_regulations | Geltende Zeiterfassungs-Regelungen |
Projekte & Recruiting
| Tool | Was es zurückgibt |
|------|-------------------|
| hrworks_list_projects | Projekte mit Status |
| hrworks_get_project | Vollständiger Projekt-Datensatz |
| hrworks_list_project_customers | An Projekte gehängte Kunden |
| hrworks_list_job_applications | Offene Bewerbungen |
| hrworks_list_posts | Stellenanzeigen |
| hrworks_get_post | Vollständige Anzeige inkl. Beschreibung |
| hrworks_list_applicants | Bewerber in der Pipeline |
| hrworks_get_applicant | Vollständiger Bewerber-Datensatz |
KI-Agent Anwendungsfälle
- „Wer ist nächste Woche im Engineering im Urlaub?" — Manager-Selfservice für Abwesenheiten
- „Wie viele Krankheitstage hatte das Lager in Q1?" — HR-Analytik
- „Zeige Arbeitszeit-Summen für Jane Doe im März 2026" — Überstunden / Lohn-Vorbereitung
- „Liste aktive Bewerber für die Berliner Frontend-Stelle" — Recruiter-Handoff
- „Welche Mitarbeiter waren heute im Freiburger Büro anwesend?" — Facility-/Sicherheits-Sicht
Identifier-Konventionen
Die meisten personenbezogenen Endpunkte akzeptieren entweder die HR-WORKS-Personalnummer oder den Username. Nutzen Sie die optionalen personIdentifierType-/usePersonnelNumbers-Parameter, wenn der vorhandene Identifier nicht der Default ist — der Adapter reicht sie durch.
Datumsintervalle: 1-Jahres-Maximum
hrworks_list_absences, hrworks_list_sick_leaves, hrworks_list_remote_work und hrworks_list_working_times benötigen ISO beginDate/endDate (YYYY-MM-DD). Die HR-WORKS-API begrenzt die Spanne auf 1 Jahr (oder 31 Tage bei interval=days). Für längere Zeiträume jahresweise paginieren und client-seitig aggregieren.
Token-Refresh — bekannte Limitierung
Dieser Adapter sendet einen einzigen statischen Bearer-Token. Wenn der JWT abläuft (~15 Min), antwortet die API mit 401 und Sie müssen einen frischen Token re-importieren. Für lang laufende Workflows einen Cron einrichten, der per /v2/authentication einen neuen Token holt und die HRWORKS_TOKEN-Env-Var des Konnektors über die AnythingMCP-Admin-API aktualisiert.
Nächste Schritte
- HR WORKS mit Claude verbinden
- HR WORKS mit ChatGPT verbinden
- Personio MCP Guide — alternative DACH-HR-Anbindung
- Kenjo HR MCP Guide — alternative DACH-HR-Anbindung