personio-mcp
Provides integration with Personio's HR platform, enabling management of recruiting (jobs, candidates, applications), employees, time tracking, absences, documents, and custom reports through Personio's public APIs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@personio-mcpShow me all employees on vacation this week."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
personio-mcp
The missing Personio MCP
Note: This is a beta product and is not affiliated with Personio in any way.
MCP server exposing Personio's public APIs as tools:
Recruiting (v2): jobs, job categories, candidates, applications, stage transitions
Employees (v1): list/get/create/update employees, absence balances, attribute catalog, profile pictures
Time tracking (v2): attendance periods and projects (CRUD)
Absences (v1): time-off types, day-based time-offs, hour-based absence periods
Documents (v1): document categories, document uploads
Custom reports (v1): report metadata, report data, column labels
The v1 attendance/project endpoints are deprecated by Personio (sunset 2027-01-31), so this
server uses their v2 successors (/v2/attendance-periods, /v2/projects). All other personnel
endpoints follow the official v1 Personnel Data API.
Base URL: https://api.personio.de
Credentials
OAuth2 client — in Personio: Marketplace > Connected integrations > Create custom integration (requires Core Pro plan). Gives you
client_id/client_secret. Enable the scopes/API resources you need:Recruiting:
personio:recruiting:read(+ write for some flows)Personnel data: employee read/write, absence read/write, attendance read/write, project read/write, document read/write, custom report read Note the integration's company ID — it is required for all personnel-data endpoints.
Recruiting token (only needed for
personio_create_application) — static token under Settings > Integrations > API Credentials. The company ID is visible athttps://{YOUR_COMPANY}.personio.de/configuration/api/credentials/management.
Related MCP server: Employee Management MCP Server
Environment variables
Variable | Required | Purpose |
| yes | OAuth2 client ID |
| yes | OAuth2 client secret |
| recommended | Company ID; sent as |
| for create_application | Static v1 recruiting API token |
| no | Override base URL (default |
Usage
Requires Node.js 20+. Run directly with npx (no install needed):
PERSONIO_CLIENT_ID=... PERSONIO_CLIENT_SECRET=... PERSONIO_COMPANY_ID=... npx -y personio-mcp@latestClient config (e.g. Claude Desktop / opencode)
{
"mcpServers": {
"personio": {
"command": "npx",
"args": ["-y", "personio-mcp@latest"],
"env": {
"PERSONIO_CLIENT_ID": "...",
"PERSONIO_CLIENT_SECRET": "...",
"PERSONIO_COMPANY_ID": "..."
}
}
}
}ChatGPT desktop app
The new ChatGPT desktop app supports local STDIO MCP servers and shares its
MCP configuration with Codex CLI and the IDE extension (stored in
~/.codex/config.toml).
Option A — via config.toml (recommended, since it lets you set env vars)
Add this to ~/.codex/config.toml:
[mcp_servers.personio]
command = "npx"
args = ["-y", "personio-mcp@latest"]
[mcp_servers.personio.env]
PERSONIO_CLIENT_ID = "..."
PERSONIO_CLIENT_SECRET = "..."
PERSONIO_COMPANY_ID = "..."
# Only needed for personio_create_application:
# PERSONIO_RECRUITING_TOKEN = "..."Then restart ChatGPT. Type /mcp in the composer to verify the server connected.
Option B — via the UI
Open Settings, then select MCP servers.
Select Add server.
Enter a name (e.g.
personio), choose STDIO, and set the command tonpx -y personio-mcp@latest.Save, then select Restart.
Note: if you go through the UI, set the credentials in your shell environment so the server can read them at startup — or prefer Option A, which keeps credentials scoped to the server entry.
Tools
Health & recruiting:
personio_health_check— verifies credentials workpersonio_list_jobs,personio_get_jobpersonio_list_job_categories,personio_get_job_categorypersonio_list_candidates,personio_get_candidatepersonio_list_applications,personio_get_application,personio_list_application_stage_transitionspersonio_create_application— submits an application (v1); requires the extra env vars above
Employees:
personio_list_employees— offset-paginated; filter by email / updated_since / attributes[]personio_get_employee,personio_create_employee,personio_update_employeepersonio_get_employee_absence_balancepersonio_list_employee_attributes— attribute catalog incl. custom (dynamic) fieldspersonio_get_profile_picture— returns image content; optional width
Time tracking:
personio_list_attendance_periods— cursor-paginated; rich filters (person, project, dates, status)personio_get_attendance_period,personio_create_attendance_period,personio_update_attendance_period,personio_delete_attendance_periodpersonio_list_projects,personio_get_project,personio_create_project,personio_update_project,personio_delete_project
Absences:
personio_list_time_off_types— includes unit (day/hour) and approval requirementspersonio_list_time_offs,personio_create_time_off,personio_get_time_off,personio_delete_time_off— day-based absencespersonio_list_absence_periods,personio_create_absence_period,personio_delete_absence_period— hour-based absences
Documents:
personio_list_document_categoriespersonio_upload_document— multipart upload; pass text or base64 content (max 30MB)
Custom reports:
personio_list_custom_reports,personio_get_custom_report,personio_list_report_columns
Notes from the Personio API:
v2 endpoints (recruiting, attendance periods, projects) are cursor-paginated; tools return
pagination.next_cursor.v1 personnel endpoints are offset-paginated; tools return
pagination.total_elements/pagination.next_offset.Employees/applications don't expose custom attributes or tags via v2.
Employee emails cannot be changed after creation.
Application creation only works for currently published positions and is rate limited to ~100 applications/min per IP.
Document uploads are limited to ~60 requests/min.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Authenticated, user-scoped MCP connectors for 30+ business systems.
Let AI agents query data and act across all your business apps via MCP.
7 recruiting tools over one MCP endpoint: ATS boards, LinkedIn jobs, profiles, companies, Naukri.
Apideck Unified API MCP — 330 tools across 200+ SaaS connectors (accounting, CRM, HRIS, ATS).
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP Server that provides access to Personio's HR and personnel data through the Personnel API, allowing interaction with employee records, HR systems, and personnel management functions.
- -licenseNot gradedqualityNot gradedmaintenanceEnables interaction with employee management systems through a standardized MCP interface. Supports comprehensive employee operations including CRUD operations, search, filtering by level/status, and data synchronization.
- FlicenseNot gradedqualityDmaintenanceEnables managing freee HR operations like employee data, attendance, leave, and approvals through natural language in MCP-compatible clients such as Claude Desktop.1
- FlicenseNot gradedqualityBmaintenanceEnables managing employee information, tasks (todos), and company policies via MCP tools and resources.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gyopiazza/personio-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server