# Personio MCP connector

Connect Personio to Elaichi and Claude, ChatGPT, Cursor or any MCP client can look up employees, check time off and absence balances, and update employee records, each person inside their own Personio access, every action logged.

Source: https://elaichi.ai/connectors/personio/

## Facts

| | |
| --- | --- |
| Application | Personio |
| Category | HRIS |
| AI tools | 10 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | Yes |

## What you can ask once Personio is connected

- Who is on time off in Personio next week?
- Show absence balances for the Berlin engineering team.
- List Personio employees who joined in the last month.

## Connect Personio in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Personio.
2. Optionally set Share with, then press Connect.
3. Paste a Personio API key. One person generates a token in Personio and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Personio tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Personio to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Personio to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Personio to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Personio to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Personio tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Personio through Elaichi

### See who is out this week

HR. Ask which employees have time off booked for the coming days and what kind of leave it is, without opening the Personio calendar.

### Set up a new hire before day one

HR. Create the employee record in Personio with name, position, start date and department as soon as the offer is signed.

### Check a team member's remaining leave

Managers. Find out how many vacation days someone has left before you approve their next request.

### Reconcile headcount before payroll runs

Finance. Pull the current list of Personio employees by department and status and compare it against what payroll expects.

### Confirm a starter's details before provisioning

IT. Look up a new employee's role, team and start date in Personio so accounts and equipment are ready on time.

### Clear a withdrawn absence from the calendar

Office management. When someone cancels a trip, remove the time off entry in Personio so the team calendar and balances stay accurate.

## Frequently asked questions

### How do I connect Personio to Claude?

Connect Personio in Elaichi first: Personio signs in with an API key, so you paste the key from your Personio settings and the connection is ready. There is no OAuth application to register and no client ID or secret to generate. Then open Claude, go to Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. Sign in with your Elaichi account and Personio appears in Claude.

### Does Personio work with ChatGPT and Cursor as well as Claude?

Yes. Once Personio is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Personio once and every client you use picks it up.

### What can an AI agent actually do with my Personio data?

With Personio connected, an agent can list your employees, look up a single person's record, create a new employee and update an existing one. It can also list your time off types, show who has time off booked, open a specific absence, remove a time off entry and report remaining absence balances. It cannot do anything in Personio beyond those actions.

### Does connecting Personio give the AI access to every employee record?

No. Every request runs inside the access of the person who connected Personio, so the agent sees only the employees, absences and balances that person's Personio API key can reach. Elaichi can narrow that further, for example by hiding the ability to update or delete, but it can never grant more than Personio itself allows.

### Can my team share one Personio connection?

Yes. One person connects Personio in Elaichi and shares the connection with a team, and nobody else ever handles the Personio API key. Each teammate still signs in to Elaichi as themselves, so the audit log names the actual person behind every employee lookup or change.

### Can I stop an agent from deleting or changing things in Personio?

Yes. Restrictions in Elaichi work per action, so you can allow reading employees and absence balances while blocking the ability to create or update an employee or delete a time off entry. A blocked action is never advertised to Claude, ChatGPT or any other client, so no prompt can reach it.

### What happens to a Personio connection when someone leaves?

Offboarding a person in Elaichi ends their access to Personio at once, in every client they used. If they had shared a Personio connection with a team, that connection keeps working for everyone else. Disconnecting Personio once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client at the same time.

## All 10 Personio tools

Every tool below is callable through https://api.elaichi.ai/mcp once Personio is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Personio employees** (List). List Personio employees with optional filtering. Returns each employee record with type and attributes containing id, first_name, last_name, email, gender, status, position, hire_date, and more. Optional filters: email, attributes, updated_since. When updated_since is used, email, limit, and offset are ignored.
- **Get single Personio employee by ID** (Get). Get a single Personio employee by id. Returns the employee record with type and attributes containing id, first_name, last_name, email, gender, status, position, hire_date, and more. Required: id.
- **Create a Personio employee** (Create). Create a new Personio employee. Returns: id, message. Required: employee (with email, first_name, and last_name). If status is omitted, it is derived from hire_date (active if past, onboarding if future).
- **Update a Personio employee by ID** (Update). Update an existing Personio employee by id. Returns: id, message. Email cannot be updated; only the listed fields are updatable and other attributes are ignored. Required: id.
- **Create a Personio auth** (Create). Request an authentication token from Personio using API client credentials. Returns: token, expires_in, scope. The bearer token is stable for 24 hours.
- **List all Personio time off types** (List). List time-off types in Personio, such as Paid vacation, Parental leave, or Home office. Returns each type's id, name, category, unit, and approval_required.
- **List all Personio time offs** (List). List day-based time-off absence periods in Personio, filterable by date range and employee. Returns each period with id, status, start_date, end_date, days_count, time_off_type, employee, certificate, created_at, and updated_at.
- **Delete a Personio time off by ID** (Delete). Delete a Personio time-off (day-based absence period) by id. Returns: success, data, id, person, starts_from, ends_at, timezone_id, comment, absence_type, approval, created_at, updated_at. Required: id.
- **Get single Personio time off by ID** (Get). Get a Personio time-off (day-based absence period) by id. Returns the time-off period including its id, status, start and end dates, days_count, half-day indicators, time_off_type, employee details, certificate status, created_at, created_by, and updated_at. Required: id.
- **List all Personio absense balance** (List). Retrieve the absence balance for a specific employee in Personio. Returns the absence balance record including its type and attributes object with balance-specific fields. Required: employee_id.
