arbeitsagentur-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ARBEITSAGENTUR_MCP_DB | No | Path to the SQLite case file database. Equivalent to the --db PATH option. | ~/.local/share/arbeitsagentur-mcp/akte.sqlite3 |
| ARBEITSAGENTUR_MCP_TOKENS | No | Path to the Meine BA tokens file. Defaults to meineba-tokens.json next to the case file. |
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 | Search the Jobbörse of the Bundesagentur für Arbeit (jobs, apprenticeships, internships). Returns condensed offers with |
| get_jobB | Full job ad from the Jobbörse: description, locations, employer, contract details, link. |
| search_coursesA | Search further-training courses (Weiterbildungssuche of mein NOW / KURSNET). Results list course offers with up to five dates each; pass a date id to get_course for details such as funding (Bildungsgutschein), costs, contacts and requirements. |
| get_courseB | Details of one course date: content, requirements, certificate, cost, funding options, provider contact. |
| search_professionsA | Find occupations in BERUFENET; returns profession ids for get_profession. |
| get_professionA | BERUFENET occupation profile: tasks, access requirements, pay, training, alternatives. Also returns |
| get_salariesA | Gross monthly salaries from the BA Entgeltatlas (median and quartiles of full-time employees). Useful for judging whether a job offer is reasonable (Zumutbarkeit) and for salary expectations. |
| find_officesB | Find the Agentur für Arbeit, Jobcenter or Familienkasse responsible for an address, with address and web page. |
| overviewA | Dashboard of the case file: alerts, upcoming appointments, open deadlines (Widerspruch, tasks, Vermittlungsvorschläge), application count against the monthly requirement. |
| get_profileA | The customer's stored profile plus the list of fields that can be set. |
| update_profileB | Set or change profile fields (name, address, Kundennummer, benefit type, Bundesland, dates, counselor ...). |
| add_applicationB | Record an application (Bewerbung) or a received Vermittlungsvorschlag in the case file. |
| update_applicationB | Update an application: new status (Eingangsbestätigung, Vorstellungsgespräch, Zusage, Absage ...), dates, notes. |
| list_applicationsC | List recorded applications, newest first, optionally filtered. |
| proof_of_applicationsA | Generate the 'Nachweis der Eigenbemühungen' (list of applications) for a period, to hand in or upload in the eServices. Returns the document; optionally also writes it to a file. |
| add_appointmentB | Record an appointment (Meldetermin, Beratung, ärztlicher Dienst, Maßnahme, Vorstellungsgespräch). Missing an invitation from the agency without a good reason has consequences (rules topic 'termine'). |
| update_appointmentA | Update an appointment: mark as attended (wahrgenommen), cancelled, rescheduled or missed; add outcome notes. |
| list_appointmentsA | List appointments (default: upcoming planned ones). |
| log_correspondenceA | Record a letter, decision, e-mail, call or meeting with the agency / Jobcenter. For an incoming Bescheid the Widerspruch deadline is calculated and tracked automatically. |
| update_correspondenceC | Update a correspondence entry, e.g. mark that a Widerspruch has been filed. |
| list_correspondenceC | List recorded correspondence, newest first. |
| add_taskB | Add a to-do / obligation (e.g. from the Eingliederungsvereinbarung / Kooperationsplan). |
| complete_taskC | Mark a task as done (default today). |
| list_tasksB | List open tasks ordered by due date (optionally including completed ones). |
| delete_entryB | Permanently delete one entry from the case file (e.g. a duplicate). Returns the deleted entry. |
| registration_deadlinesB | Deadlines to register as job-seeking (§ 38 SGB III) and as unemployed (§ 141 SGB III). |
| objection_deadlineB | Last day to file a Widerspruch against a Bescheid (§ 84 SGG, § 37 SGB X), with step-by-step reasoning. |
| calculate_deadlineA | Generic period calculation under § 26 SGB X / § 64 SGG (end moves off weekends and holidays), e.g. a 2-week deadline in a letter from the agency. |
| unemployment_benefit_durationB | Estimate how long Arbeitslosengeld is paid (§ 147 SGB III). |
| public_holidaysC | Public holidays relevant for deadline calculations. |
| rulesB | Plain-language summary of the customer's rights and duties on a topic, with legal references. |
| draft_letterA | Draft a letter to the Agentur für Arbeit / Jobcenter using the profile (sender, Kundennummer, responsible office). The user must check, sign and send it; nothing is sent from here. |
| meineba_statusB | Which Meine BA services are logged in, how long the sessions last, and what each one offers. |
| meineba_login_startA | Start a login to the user's Meine BA account for one service. Returns a link the USER opens in their own browser to sign in on sso.arbeitsagentur.de; never ask for or handle their password. |
| meineba_login_finishA | Complete a login started with meineba_login_start by exchanging the one-time code. |
| meineba_logoutB | End Meine BA sessions and delete the stored tokens. |
| meineba_postfachB | List messages in the user's BA Postfach (erhalten = inbox, gesendet, entwurf, geloescht). |
| meineba_postfach_readC | Read one Postfach message including its history and attachment list. Opening a message may mark it as read. |
| meineba_postfach_attachmentB | Download an attachment of a Postfach message (e.g. a Bescheid as PDF) to a local file (mode 0600). |
| meineba_postfach_recipientsA | Offices the user can write to via the Postfach (Agentur = AA, Jobcenter = JC, ...) and the topics ('bezug') each accepts. Needed before meineba_postfach_send. |
| meineba_postfach_sendA | Send a message to the Agentur für Arbeit / Jobcenter through the user's Postfach. Without confirm=true this only returns a preview. Sent messages are binding communication with the authority and are recorded in the local case file. |
| meineba_termineC | Appointments booked with the Agentur für Arbeit / Jobcenter (Termine in Meine BA). |
| meineba_verlaufB | History of events in the user's account (applications filed, letters, decisions, documents). |
| meineba_verlauf_eintragB | One entry of the Verlauf with details and document links. |
| meineba_antraegeB | Status of the user's applications (Antragsübersicht), e.g. Arbeitslosengeld: what is pending and whether action is expected from the user. |
| meineba_antragB | Details of one application: status, required actions, documents. |
| meineba_leistungenB | Granted benefits and payments as shown in Meine BA. |
| meineba_merklisteB | The user's job watch list in the BA Jobsuche, with notes and application status per job. |
| meineba_merkliste_setzenB | Add a job to the Jobsuche watch list or update its note / application status (BEWORBEN, EINGELADEN, ZUSAGE, ABSAGE). |
| meineba_merkliste_entfernenA | Remove a job from the Jobsuche watch list (its note and status are lost). |
| meineba_gespeicherte_suchenC | Saved job searches (Suchaufträge) with e-mail alerts. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| wochencheck | Weekly review of the case: deadlines, appointments, applications. |
| bescheid_pruefen | Check a Bescheid (decision letter) for deadlines and possible grounds for an objection. |
| kuendigung_erhalten | What to do after receiving a notice of termination. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 51 tools
Most tools target distinct resources and actions, and descriptions help separate subtle pairs such as local case-file appointments vs. Meine BA Termine, or recorded correspondence vs. Postfach messages. However, several closely named tools (e.g., list_applications/meineba_antraege, log_correspondence/meineba_postfach_send) require careful reading to avoid misselection.
All tool names use snake_case, but the set mixes English verb_noun patterns (search_jobs, get_job, add_application) with German verb forms (meineba_merkliste_setzen), noun-only tools (overview, rules, public_holidays), and domain-specific prefixes. The result is readable but not fully predictable.
51 tools is excessive for a single MCP server, even given the broad BA/Jobcenter domain, and likely overwhelms tool selection. Each tool is individually meaningful, but the surface would benefit from being split into focused sub-servers.
The surface covers job/course/profession search, case-file CRUD, deadlines, rules, letters, and Meine BA/Postfach operations with few dead ends. Minor gaps remain: no delete/update for tasks or correspondence, no delete for appointments, and no direct Widerspruch filing tool.