WorkMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WORKMCP_DB | No | Path to the SQLite knowledge database. | ~/.workmcp/knowledge.db |
| WORKMCP_HN_BASE | No | Override the Hacker News search API base URL. | |
| WORKMCP_OFFLINE | No | If set to 1, use only the local memory and make no network requests. | 0 |
| WORKMCP_LANGUAGE | No | Language used for ESCO. | de |
| WORKMCP_ESCO_BASE | No | Override the ESCO API base URL. | |
| WORKMCP_KLDB_SOURCE | No | Default source file for KldB import. | |
| WORKMCP_ESCO_VERSION | No | ESCO version to use, e.g. v1.2.1. If unset, the API default is used. | |
| WORKMCP_ONET_VERSION | No | O*NET version to use, e.g. 31_0. Detected automatically by default. | |
| WORKMCP_ADZUNA_APP_ID | No | Adzuna application ID. Together with WORKMCP_ADZUNA_APP_KEY, enables Adzuna salary histograms. | |
| WORKMCP_ADZUNA_APP_KEY | No | Adzuna application key. Together with WORKMCP_ADZUNA_APP_ID, enables Adzuna salary histograms. | |
| WORKMCP_TTL_JOBS_HOURS | No | Cache TTL in hours for job listings. | 6 |
| WORKMCP_ESCO_ONET_SOURCE | No | Default source file for ESCO-to-O*NET crosswalk import. | |
| WORKMCP_KLDB_ISCO_SOURCE | No | Default source file for KldB-to-ISCO crosswalk import. | |
| WORKMCP_TTL_DETAILS_HOURS | No | Cache TTL in hours for job details. | 24 |
| WORKMCP_TTL_SIGNALS_HOURS | No | Cache TTL in hours for automation signals. | 24 |
| WORKMCP_TTL_REFERENCE_DAYS | No | Cache TTL in days for occupations and reference data. | 30 |
| WORKMCP_STORE_PERSONAL_DATA | No | If set to 1, store contact fields from job listings. Default removes personal data before storage. | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_jobsA | Stellensuche in der Jobbörse der Bundesagentur für Arbeit (größter Stellenbestand in Deutschland). Speichert jede Anzeige im Gedächtnis und meldet im Delta neue, geänderte und nicht mehr enthaltene Anzeigen gegenüber der letzten identischen Suche. Details mit get_job_details(refnr). |
| get_job_detailsA | Volltext und Details einer BA-Stellenanzeige (Beschreibung, Branche, Fertigkeiten, Vergütung). Nicht mehr vorhandene Anzeigen werden im Gedächtnis als 'verschwunden' markiert. Kontaktpersonen werden vor dem Speichern entfernt (Datenminimierung). |
| search_arbeitnowA | Stellen von Arbeitnow (kostenlos, ohne Schlüssel; aggregiert ATS-Feeds wie Greenhouse, Personio, Recruitee). Gefiltert wird lokal über die abgerufenen Seiten; alle abgerufenen Stellen werden gespeichert. |
| get_ats_jobsA | Offene Stellen direkt aus dem Bewerbermanagement eines Arbeitgebers (öffentliche Job-Board-APIs ohne Login). Unterstützt Greenhouse, Lever, Ashby, Workable, Recruitee, Personio (XML), SmartRecruiters, BambooHR und Workday. Liefert Primärdaten wie Abteilung, Seniority, Anstellungsart. Das Delta zeigt neue und geschlossene Stellen seit dem letzten Abruf. |
| adzuna_salaryA | Gehaltsverteilung (Histogramm), Top-Arbeitgeber und optional Gehaltsverlauf aus Adzuna-Inseraten. Optional: braucht einen kostenlosen Adzuna-Developer-Key (WORKMCP_ADZUNA_APP_ID/_APP_KEY). Für amtliche Medianentgelte nach Beruf get_salary (Entgeltatlas) verwenden. |
| search_occupationB | Berufe finden: BERUFENET (mit KldB-Zuordnung), ESCO-Berufe, KldB-Systematik und O*NET-Titel. |
| get_occupationB | Profil eines Berufs bzw. einer Berufsklasse mit Klassifikation, Aufgaben, Skills und Verknüpfungen. |
| get_tasksB | Kanonische Aufgabenliste eines Berufs: O*NET Task Statements (Core/Supplemental) und BERUFENET-Tätigkeiten. Die Zuordnung läuft über BERUFENET→KldB→ISCO→ESCO→O*NET (Crosswalks müssen importiert sein). |
| get_skillsC | Skills eines Berufs: ESCO essential/optional plus Häufigkeiten aus gespeicherten BA-Stellenanzeigen. |
| crosswalkA | Übersetzt Berufscodes zwischen KldB 2010, ISCO-08, ESCO, O*NET und BERUFENET (auch über mehrere Stufen). |
| get_salaryC | Amtliche Medianentgelte (mit Quartilen) nach Beruf aus dem Entgeltatlas der BA. |
| get_role_contextA | Rollenkontext in einem Aufruf: Zuordnung, Aufgaben (BERUFENET/O*NET), Skills (ESCO), Gehalt (Entgeltatlas) und Marktsignal (offene Stellen laut BA). |
| find_automation_signalsC | Automatisierungssignale aus Hacker News (Berichte, wie Tätigkeiten automatisiert wurden). |
| commoncrawl_lookupA | Common-Crawl-Index nach archivierten Seiten (z. B. Karriereseiten) durchsuchen und optional Text laden. |
| import_reference_dataA | Referenzdaten importieren bzw. aktualisieren. Wiederholte Importe ergänzen neue/geänderte Einträge und markieren entfallene (z. B. zwischen O*NET-Releases). |
| record_extractionA | Vom Modell oder von Fachexperten extrahierte Aufgaben, Skills und Automatisierungsbewertungen versioniert im Graphen speichern. Liefert Vorschläge passender kanonischer Aufgaben (Deduplizierung). |
| rememberA | Eigene Daten (interne Rollenprofile, Expertenfeedback) versioniert im Gedächtnis speichern oder ergänzen. |
| search_knowledgeB | Offline-Suche im Gedächtnis (auch zur Zuordnung freier Aufgabentexte zu kanonischen Aufgaben). |
| get_changesC | Änderungsprotokoll des Gedächtnisses: was ist neu, geändert, verschwunden oder wieder aufgetaucht. |
| get_historyB | Alle gespeicherten Versionen eines Datensatzes mit feldgenauen Änderungen. |
| knowledge_statsA | Überblick über das Gedächtnis: Datensätze je Quelle, Versionen, Graph-Knoten/-Kanten, letzte Abrufe. |
| graph_neighborsB | Nachbarn eines Knotens im Job-Graphen (Berufe, Aufgaben, Skills, Stellen, Branchen, Regionen ...). |
| export_knowledgeB | Graph exportieren: JSON, Neo4j-Cypher, GraphML oder als Archivy-Wissensdatenbank (Markdown-Notizen). |
| check_sourcesA | Erreichbarkeit aller Datenquellen von diesem Rechner aus prüfen (HTTP-Status und Latenz je Quelle). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| rollen_analyse | Leitfaden: Rolle → Aufgaben → Automatisierungspotenzial (mit Quellen und Gedächtnis). |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Tools mostly target distinct sources or actions: search_jobs (BA), search_arbeitnow, and get_ats_jobs are separated by source, and get_salary (official median) vs adzuna_salary (histogram) is explained in descriptions. Slight overlap remains between search_knowledge and get_changes/get_history, and between find_automation_signals and commoncrawl_lookup, but boundaries are mostly clear.
Dominant verb_noun snake_case pattern (search_jobs, get_job_details, import_reference_data, export_knowledge) is applied consistently. Minor deviations exist with noun-first/source-prefixed names (adzuna_salary, commoncrawl_lookup, graph_neighbors, knowledge_stats) and single verbs (crosswalk, remember), but the convention stays readable.
24 tools is heavy and sits in the borderline range, though the server spans several sub-domains (job search, occupation/task/skill data, salary, knowledge graph, change tracking, export). Each tool maps to a real operation, but the surface is large enough to burden tool selection.
Coverage is broad: multi-source job search and details, occupation/task/skill lookups, salary data, crosswalks, versioned memory storage, change/history tracking, graph traversal, export, and source health checks. Minor gaps like no explicit delete/forget tool for stored records and no direct occupation-to-job matching helper, but agents can work around these.