MCP server for HR data: current German values for AI agents
A language model only knows HR values up to its knowledge cutoff. A model whose knowledge ends in late 2024 knows at most the German minimum wage of €12.82, while €14.60 applies from January 1, 2027. An MCP server gives the assistant tools that return the value in force on a given date, with its legal basis and source.
Why AI assistants quote outdated HR values
A language model learns from text up to a cutoff date. Anthropic lists that date for each model in its models overview, as the reliable knowledge cutoff and the training data cutoff. Whatever is decided afterwards is not in the model.
German HR values change all the time, and new rates are often published months before they apply. The Fifth Minimum Wage Adjustment Ordinance (Fünfte Mindestlohnanpassungsverordnung), which sets €14.60 from January 1, 2027, dates from November 5, 2025. A model whose knowledge ends in late 2024 knows at most the rate of €12.82 from January 1, 2025 and a mini-job limit (Minijob-Grenze) of €556. Both sound plausible, and both are wrong for 2027.
Deadlines add a second problem. A model that calculates a notice period under Section 622 of the German Civil Code (BGB) on its own can miscount at month ends or at the start of the period. The use case on notice periods in an HR chatbot shows how a chatbot hands this to a calculator instead.
Late-2024 knowledge versus the value in force
| Value | Latest stage known with a late-2024 cutoff | Stage from January 2027 |
|---|---|---|
| Minimum wage per hour | €12.82 from January 1, 2025 | €14.60 from January 1, 2027 |
| Mini-job limit per month | €556 | €633 |
| Legal basis | Vierte Mindestlohnanpassungsverordnung vom 24. November 2023 (BGBl. 2023 I Nr. 321), Stufe 2 | Fünfte Mindestlohnanpassungsverordnung vom 5. November 2025 (BGBl. 2025 I Nr. 268), Stufe 2 |
Source: Fifth Minimum Wage Adjustment Ordinance of November 5, 2025, Federal Law Gazette 2025 I No. 268
What an MCP server changes
The Model Context Protocol (MCP) is an open protocol that lets an AI application discover and call tools on a server. According to the specification, tools are model-controlled: the model decides when it needs one and receives the result in its context. Instead of quoting a value from memory, it looks it up for the right reference date.
The model's knowledge stays the same, but the origin of the number changes. A value from a tool comes with a valid-from date, a legal basis and a source the assistant can cite. If a value has not been officially published yet, the tool says so instead of guessing.
In HR, the origin matters twice. A chatbot that gives employees a wrong mini-job limit or notice period gives wrong information on behalf of the employer. An answer with a legal basis and a link can be checked, by the HR team as well as by the employees themselves.
How Quellenkontor solves it
The MCP server at mcp.quellenkontor.dev/v1 offers one tool per dataset, named after the pattern hr_datensatz, such as hr_mindestlohn for the minimum wage or hr_kuendigungsfrist for notice periods. There is also hr_verlauf for every stage of a table since 2015. All tools are read-only and marked as such, so many clients call them without asking the user first.
Every result starts with a ready-to-cite sentence, which is also in the field zitat: value, validity, legal basis and source URL. The same data as in the REST API follows. The assistant can quote the sentence as is and does not have to rephrase any number. The citation sentences are in German, as are the legal sources they point to.
If a value is not yet fully fixed by law for a reference date, the response carries vorlaeufig: true (provisional) and the citation starts with a caveat. If a tool returns kein_wert (no value), the value has not been published yet. A weekly run checks all values against the official sources, and the page on our review process describes the steps.
The result follows the specification: the data comes as structured content in structuredContent and also as JSON text, as the specification recommends for structured results. In the _meta field, the server reports the quota limit, usage and plan after every call, so an application can warn before the quota runs out.
The rules the server sends along
- Call a tool as soon as an answer needs an HR value, even if the model believes it knows it.
- Convert relative dates such as next year or from July into a calendar date and state that date in the answer.
- Ask for missing details, such as purchase date, date of birth, start of training or federal state.
- For questions about a whole year, check mid-year changes with
hr_verlaufand the parametersvonandbis. - Use the
zitatwhen it answers the question, and always name the source with its URL. - With
vorlaeufig: trueorkein_wert, say that the value is not yet official. - Germany only: the values do not apply to Austria, Switzerland or other countries.
Follow-up questions instead of guesses
Some answers depend on details the chat does not contain. The minimum training allowance for apprentices (Mindestausbildungsvergütung) depends on the year training started (Section 17(2) of the Vocational Training Act, BBiG). If an agent calls hr_mindestausbildungsverguetung for the second year of training without a start date, the server rejects the call with the code parameter_fehlt and explains why it needs the date. The company car calculator needs the purchase date of an electric car, because the reduction depends on it.
Such errors come back as a tool result with isError: true. This is how the MCP specification handles input errors: the model can then correct the call or ask the user. Calls with invalid arguments do not count against the Quellenkontor quota.
One more point matters for HR teams: the tools need no names and no employee IDs, only details such as start date, date the notice was received or federal state. For the statutory retirement age, the year of birth is enough instead of the full date of birth, and the answer then covers the whole cohort.
Error cases and server responses
| Situation | Server response |
|---|---|
| Argument missing, wrongly formatted or unknown | Result with isError: true, a message and the parameter concerned |
| No value for the reference date | Result with isError: true and code kein_wert |
| Key missing or blocked | HTTP 401 with a WWW-Authenticate header and JSON-RPC error -32001 |
| Quota used up | Result with isError: true, code kontingent_erreicht and the current status in _meta |
| Unknown tool | JSON-RPC error -32602 |
A tool call on the wire
The prompt quellenkontor_regeln
The server sends its rules when the connection is set up, in the instructions field of the response to initialize. Not every application passes these instructions on to the model. That is why the same text is available as the prompt quellenkontor_regeln, which clients fetch with prompts/get.
If you build your own chatbot, copy the rules into its system prompt. The text is ready to copy in the documentation under system prompt for your bot.
Load only the tools a bot needs
A payroll bot does not need public holidays, and a vacation planning bot does not need contribution rates. With a query string on the address, the server returns only part of the tools: ?bereiche= with the areas lohn (wages), sozialversicherung (social insurance), steuer (tax), fristen (deadlines) and kalender (calendar), or ?werkzeuge= with individual tool names. This saves tokens and lowers the risk that the model picks a similar-sounding tool.
Areas you can select
| Area | Example tools |
|---|---|
| lohn (wages and floors) | hr_mindestlohn, hr_pflegemindestlohn, hr_mindestausbildungsverguetung, hr_sachbezugswerte |
| sozialversicherung (social insurance) | hr_rechengroessen, hr_beitragssaetze, hr_uebergangsbereich, hr_minijob_abgaben |
| steuer (tax and travel) | hr_steuerfreie_betraege, hr_reisekosten_inland, hr_sfn_zuschlaege, hr_dienstwagen |
| fristen (deadlines and leave) | hr_kuendigungsfrist, hr_urlaubsanspruch, hr_mutterschutz, hr_pausen |
| kalender (calendar) | hr_feiertage, hr_arbeitstage |
Setup in Claude Code, Cursor and VS Code
You need an API key, which the server expects in the Authorization header. In Claude Code, a single terminal command is enough. Claude Code can also load servers from a .mcp.json file in the project and expands environment variables there, so the key does not have to be in the file.
Cursor reads servers meant to be available everywhere from ~/.cursor/mcp.json in your home directory. Put the key there and never commit that file to a repository.
VS Code reads .vscode/mcp.json in the project. With an entry under inputs, VS Code asks for the key when the server first starts and stores it securely. Other clients and testing with the MCP Inspector are covered in the MCP server guide.
Five steps to your own HR agent
- Create an API key in your account and store it as an environment variable.
- Add the server with a suitable selection, such as
?bereiche=lohn,sozialversicherungfor a payroll bot. - Copy the rules from
quellenkontor_regelninto the system prompt if your client does not pass them on. - Test the agent with the example questions below and check that it names the source and the reference date.
- Mark answers with
vorlaeufig: trueas provisional in your own interface.
Limits
The server expects a key in the header. Clients that only connect to remote MCP servers via OAuth, such as Claude in the browser and ChatGPT, sign in through the browser instead and receive their own key. The MCP specification describes OAuth 2.1 for this but explicitly makes authorization optional.
The values apply to Germany only. The tables go back to 2015, public holidays and working days cover 2015 to 2035. Every tool call with a result counts like a REST API query. The server provides values and deadlines, and payroll itself stays the job of your payroll software. What this is good for in practice is shown on the page solution for AI agents and HR chatbots.
Example questions the server helps with
- What is the German minimum wage from January 1, 2027, and what does it mean for the mini-job limit? Tool
hr_mindestlohn. - Employment began on March 1, 2017, and the employer's notice was received on November 10, 2026: when does employment end? Tool
hr_kuendigungsfrist. - How many working days does January 2027 have in Bavaria? Tool
hr_arbeitstage. - Which stages did the minimum wage have in 2022? Tool
hr_verlaufwithvonandbis. - What is the taxable benefit of an electric company car? The agent first asks for the purchase date and then calls
hr_dienstwagen.
The server's calculators apply the law schematically. Employment contracts, collective agreements and individual circumstances can lead to different results, and the answers are not legal advice.
Frequently asked questions
Which protocol versions does the server support?
Versions 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05. It answers with the version the client requests, otherwise with the newest one.
Does listing the tools count against the quota?
No. The methods initialize and tools/list are free, and only tool calls that return a result are counted.
Can I test the server without an AI application?
Yes, with the MCP Inspector, the protocol's official testing tool. Start it with npx @modelcontextprotocol/inspector, choose the Streamable HTTP transport, enter the address and set the Authorization header with your key.
Does the server keep sessions?
No. Every request is a separate JSON-RPC call via POST, and no Mcp-Session-Id header is needed.
Does the server cover countries other than Germany?
No. All values and calculators apply to Germany only, and the server's rules tell the agent so explicitly.
Sources
- Fifth Minimum Wage Adjustment Ordinance (Fünfte Mindestlohnanpassungsverordnung) of November 5, 2025, Federal Law Gazette 2025 I No. 268
- Fourth Minimum Wage Adjustment Ordinance (Vierte Mindestlohnanpassungsverordnung) of November 24, 2023, Federal Law Gazette 2023 I No. 321
- Notice of the mini-job earnings limit under Section 8(1a) SGB IV of November 30, 2023, Federal Gazette BAnz AT 07.12.2023 B1
- Section 8 SGB IV: marginal employment and the mini-job earnings limit
- Section 622 BGB: notice periods for employment relationships
- Section 17 BBiG: apprentice pay and minimum training allowance
- Model Context Protocol specification 2025-11-25: overview
- Model Context Protocol specification 2025-11-25: tools
- Model Context Protocol specification 2025-11-25: authorization
- Anthropic: models overview with reliable knowledge cutoff and training data cutoff
- Claude Code documentation: connecting MCP servers
- Cursor documentation: Model Context Protocol
- Visual Studio Code documentation: MCP configuration