Summary
Access HR WORKS, the German HR/payroll platform: employees, absences, sick leaves, remote work (home office), working times, time accounts, wage payments, personnel files, projects, applicants, organization units, holidays and cost centers via the v2 REST API.
Guided setup
Connect HR WORKS to Microsoft Copilot in 2 minutes
Start a free trial on AnythingMCP Cloud, connect HR WORKS in the guided setup, then add your MCP URL to Microsoft Copilot. No code and no server to run.
No credit card · 7-day trial · Self-host alternative available
Try asking
Example prompts for HR WORKS
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → HR WORKS, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
HR WORKS + Microsoft Copilot
Access HR WORKS, the German HR/payroll platform: employees, absences, sick leaves, remote work (home office), working times, time accounts, wage payments, personnel files, projects, applicants, organization units, holidays and cost centers via the v2 REST API.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
HRWORKS_ACCESS_KEY, HRWORKS_SECRET_ACCESS_KEY
Step 1 — Get credentials
- In HR WORKS, open Administration → API and create an API key pair: an access key and a secret access key.
- Paste the access key into
HRWORKS_ACCESS_KEYand the secret access key intoHRWORKS_SECRET_ACCESS_KEY, then install the connector. - Start with
hrworks_list_organization_unitsorhrworks_list_personsto check that the key pair works.
Tokens are handled for you: HR WORKS issues tokens that last about 15 minutes. The connector exchanges your key pair for a token, renews it before it expires and logs in again after a 401, so long chats and scheduled runs keep working.
What it does: 48 tools that read employees and their master data, organization units, holidays, absences, sick leaves, remote work (home office), working times and time accounts, leave accounts, available working hours, personnel files, wage payments, travel expense reports, projects, applicants and job postings, cost centers and cost objectives. Three tools write: hrworks_create_working_times records working times or breaks, hrworks_update_working_times changes existing ones, and hrworks_delete_working_times deletes recorded ones (switched off at install). HR WORKS processes all three in the background and returns a job id, which hrworks_get_working_times_job checks. The AI confirms the people, dates and times with you before it writes. All other tools only read.
Totals and balances: hrworks_list_time_accounts returns target hours, worked hours and the overtime balance per month, and hrworks_list_leave_accounts the vacation entitlement and the approved, planned and expiring days of many people at once. hrworks_get_absences_accumulated, hrworks_get_sick_leaves_accumulated and hrworks_get_remote_work_accumulated count the days per person in a period instead of listing every entry, and hrworks_get_available_working_hours returns the hours people are available after absences, for capacity planning.
Confidential data: master data, personnel files, wage payments and sick leaves are personal, payroll and health data. Put the connector only on an MCP server used by people who may see this data, or switch those tools off.
Date ranges: absences, sick leaves, remote work, the totals and available working hours take beginDate and endDate (YYYY-MM-DD) and cover at most one year per call, or 31 days with interval=days. Working times are stricter: at most 31 days touching at most two calendar months per call, so the AI asks month by month. Travel expense reports also need beginDate and endDate.
People: most person tools take the personnel number or the HR WORKS username, and personIdentifierType or usePersonnelNumbers tell HR WORKS which one you mean. The wage payments of one person take the person's UUID, which hrworks_get_person and hrworks_list_persons_master_data return.
Already installed? The new tools reach a connector you installed earlier through its catalog update: open the connector in AnythingMCP and, under Catalog update available, check the list of new tools and click Apply update. Your credentials and any tools you added yourself stay as they are. Note also that hrworks_list_travel_expense_reports now needs beginDate and endDate, and that hrworks_list_working_times takes at most 31 days within two calendar months per call.
Sandbox: to test against the HR WORKS demo at https://api.demo-hrworks.de, change the connector's base URL and the login URL in its auth settings to the demo host.
Limits: most lists return 50 entries per page; when there are more, the AI asks for the next page. HR WORKS sets rate limits per account.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
HR WORKStools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
hrworks_health_check | Check whether the HR WORKS API is reachable |
hrworks_list_organization_units | List all active organization units (Organisationseinheiten) of the company with their uuid, number and name |
hrworks_get_organization_unit | Return the data of a specific organization unit |
hrworks_list_present_persons | List all persons currently 'in the office' for a given organization unit |
hrworks_list_permanent_establishments | List all permanent establishments (Betriebsstätten) of the company with id and name |
hrworks_list_holidays | List company holidays for a given year and (optionally) country |
hrworks_list_persons | List all persons (employees) in the company |
hrworks_get_person | Return the base data of a specific person (employee) |
hrworks_list_persons_master_data | Return the current master data (full personal data, contract details, addresses, bank info, etc.) for one or more persons |
hrworks_get_persons_today | Return day-related objects (working hours, attendance, absences) for the current day for one or more persons |
hrworks_get_leave_account | Return the leave account (vacation balance) of a single person up to a reference date |
hrworks_list_absences | List absences (vacation, parental leave, etc.) for one or more persons over a date interval |
hrworks_list_absence_types | List all absence types (vacation, parental leave, special leave, etc.) configured for the customer account, with their keys for use as… |
hrworks_list_vacation_types | List vacation types defined for the customer account (subset of absence types focused on vacation/leave) |
hrworks_list_sick_leaves | List sick leaves (Krankheitstage) for one or more persons over a date interval |
hrworks_list_sick_leave_types | List all sick leave types configured for the customer account with their keys (used as filter values for hrworks_list_sick_leaves) |
hrworks_list_remote_work | List remote work / home office records for one or more persons over a date interval |
hrworks_list_working_times | List logged working times (time tracking) for one or more persons over a date interval |
hrworks_list_time_recording_regulations | List all time-recording regulations configured for the customer (defines which working time types are allowed per regulation) |
hrworks_list_projects | List time-tracking projects of the company |
hrworks_get_project | Return the data of a specific time-tracking project by id |
hrworks_list_project_customers | List the customers used for project time tracking |
hrworks_list_job_applications | List job applications |
hrworks_list_posts | List all recruiting posts (job postings) of the company |
hrworks_get_post | Return the data of a single recruiting post by uuid |
hrworks_list_applicants | List applicants (only those with at least one job application) |
hrworks_get_applicant | Return data of a specific applicant by uuid |
hrworks_list_cost_centers | List all cost centers (Kostenstellen) of the company with their number/id and name |
hrworks_list_cost_objectives | List all cost objectives (Kostenträger) of the company |
hrworks_list_wage_salary_types | List all wage/salary types defined for the customer account (used in payroll exports) |
hrworks_list_travel_expense_reports | List travel expense reports (Reisekostenabrechnungen) in a date interval, optionally for some people |
hrworks_list_time_accounts | Return the time accounts (Arbeitszeitkonto: target hours, worked hours, overtime balance) of people for one or more months |
hrworks_list_leave_accounts | Return the leave accounts (vacation entitlement, approved, requested, planned and expiring days) of several people at once, up to a… |
hrworks_get_available_working_hours | Return the working hours people are available in a date interval (target hours minus absences), summed or split by day, week or month |
hrworks_get_absences_accumulated | Return the number of working days of absence per absence type (vacation, special leave, ...) for each person in a date interval, instead of… |
hrworks_get_sick_leaves_accumulated | Return the number of working days of sick leave per sick leave type for each person in a date interval |
hrworks_get_remote_work_accumulated | Return the number of remote work (home office) days for each person in a date interval |
hrworks_get_person_master_data | Return the current master data of one person: name, contact data, address, organization unit, employment, contract and similar fields |
hrworks_list_personnel_file_entries | List the entries of one person's digital personnel file (Personalakte), optionally filtered by category, creation date, attached documents… |
hrworks_list_person_wage_payments | List the wage payments (Lohnzahlungen: wage type, amount, period) recorded for one person |
hrworks_list_wage_payments | List wage payments across all people, optionally only for one wage type (see hrworks_list_wage_salary_types) |
hrworks_create_working_times | Record working times or breaks for one or more people |
hrworks_update_working_times | Change working times that already exist in HR WORKS, with the same item format as hrworks_create_working_times |
hrworks_get_working_times_job | Return the status and result of a create or update of working times, by the job id those tools returned |
hrworks_get_working_time_status | Return whether a person is clocked in right now and, if so, the running working time: start, type (working time, business errand, doctor's… |
hrworks_list_onboarding_documents | List the onboarding documents (Onboarding-Dokumente) of new employees: name, join date, organization unit, superior, status and the… |
hrworks_get_onboarding_document | Return one onboarding document by id, with all the data the new employee entered (address, bank account, tax and social security data… |
hrworks_delete_working_times | Delete recorded working times |
Example prompts
- "Show the overtime balance of everyone in the Sales organization unit for September and October 2026."
- "How many vacation days do Anna Becker and Jonas Weber have left this year, and how many are already planned?"
- "How many working hours does the development team have available in November, week by week?"
- "Count the sick days and home office days per person in the warehouse team for the third quarter."
- "Record working time for personnel number 1042 yesterday from 8:00 to 16:30 with a break from 12:00 to 12:30, then check that HR WORKS accepted it."
- "Which payroll-relevant entries were added to Jonas Weber's personnel file this year?"
FAQ
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
Was this guide helpful?