PeopleHR MCP Server
for AI Agents
Connect your AI agent to StackOne's PeopleHR MCP server and give it 58 MCP tools out of the box. Auth, tool execution, and security all managed.
Coverage
58 Agent Actions
Create, read, update, and delete across PeopleHR — and extend your agent's capabilities with custom actions.
Authentication
Agent Tool Authentication
Per-user OAuth in one call. Your PeopleHR MCP server gets session-scoped tokens with zero credentials stored on your infra.
Agent Auth →Security
Agent Protection
Every PeopleHR tool response scanned for prompt injection in milliseconds — 88.7% accuracy, all running on CPU.
Prompt Injection Defense →Performance
Max Agent Context. Min Cost.
Free up to 96% of your agent's context window to enhance reasoning and reduce cost, on every PeopleHR call.
Tools Discovery →What is the PeopleHR MCP Server?
A PeopleHR MCP server lets AI agents read and write PeopleHR data through the Model Context Protocol — Anthropic's open standard for connecting LLMs to external tools. StackOne's PeopleHR MCP server ships with 58 pre-built actions, fully extensible via the Connector Builder — plus managed authentication, prompt injection defense, observability, and agent execution runtime. Connect it from MCP clients like Claude Desktop, Claude Code, Cursor, Goose, and VS Code, or from agent frameworks like OpenAI Agents SDK, LangChain, and Vercel AI SDK.
All PeopleHR MCP Tools
Every action from PeopleHR's API, ready for your agent. Create, read, update, and delete — scoped to exactly what you need.
Employees
- Create Employee
Create a new employee record
- List Employees
Retrieve a list of all employees
- Get Employee
Retrieve details for a specific employee by ID. Use list_employees first to find the EmployeeId.
- Update Employee
Update an existing employee's details. Requires EmployeeId, ReasonForChange, and all core fields (name, gender, dates, job role, location, department with effective dates). Use get_employee first to retrieve current values.
Absences
- Create Absence
Add a new unplanned absence record (sick leave, personal leave) for an employee. DurationType codes: 1=Days, 2=Hours, 3=Half Day. Use list_employees to find the EmployeeId first.
- Get Absences
Retrieve unplanned absence records (sick leave, personal leave) for an employee within a date range. Use list_employees to find the EmployeeId first.
- Update Absence
Update an existing absence record. Requires OldStartDate and OldEndDate from the original record — use get_absences first to retrieve these.
- Delete Absence
Delete an absence record for an employee. Identified by StartDate and EndDate — use get_absences first to find the dates.
Holidays
- Create Holiday
Book a new planned annual leave / vacation for an employee. DurationType codes: 1=Days, 2=Hours, 3=Half Day. Use list_employees to find the EmployeeId first.
- Get Holidays
Retrieve planned annual leave / vacation booking records for an employee, optionally filtered by date range. Use list_employees to find the EmployeeId first.
- Update Holiday
Update an existing planned leave booking for an employee. Requires OldStartDate and OldEndDate from the original booking — use get_holidays first to retrieve these.
- Delete Holiday
Delete a holiday booking for an employee. Identified by StartDate and EndDate of the booking — use get_holidays first to find the dates.
Salarys
- Create Salary
Create a new salary record for an employee. Use list_employees to find the EmployeeId first. Deductions and Entitlements can be empty arrays [] if not applicable.
- Get Salary
Retrieve salary details for an employee, with optional history. Use list_employees to find the EmployeeId first.
- Delete Salary
Delete a salary record for an employee. Identified by EffectiveFrom date — use get_salary first to find it.
Documents
- Upload Document
Upload a document to an employee's record. Requires base64-encoded file content in the File field and a Category (e.g. "General", "Contract").
- List Documents
Retrieve all documents for an employee. Use list_employees to find the EmployeeId first.
- Get Document
Retrieve a specific employee document by DocumentId. Use list_documents first to find the DocumentId.
Timesheets
- Create Timesheet
Create a new timesheet entry for an employee
- Get Timesheets
Retrieve timesheet records for an employee. Use list_employees to find the EmployeeId first.
- Update Timesheet
Update an existing timesheet entry for an employee
- Delete Timesheet
Delete a timesheet entry for an employee. Identified by TimesheetDate — use get_timesheets first to find the date.
Appraisals
- Create Appraisal
Create a new appraisal record for an employee
- Get Appraisal
Retrieve a specific appraisal record by AppraisalId. Use get_appraisals_by_employee first to find the AppraisalId.
- Update Appraisal
Update an existing appraisal record
- Delete Appraisal
Delete an appraisal record. Requires AppraisalId — use get_appraisals_by_employee first to find it.
Benefits
- Create Benefit
Add a new benefit record for an employee
- Get Benefit
Retrieve a specific benefit record by its BenefitId. Use get_benefits_by_employee first to find the BenefitId.
- Update Benefit
Update an existing benefit record for an employee
- Delete Benefit
Delete a benefit record for an employee. Requires BenefitId — use get_benefits_by_employee first to find it.
Qualifications
- Create Qualification
Add a new qualification record for an employee
- Get Qualification
Retrieve a specific qualification record by QualificationId. Use get_qualifications_by_employee first to find the QualificationId.
- Update Qualification
Update an existing qualification record for an employee
- Delete Qualification
Delete a qualification record for an employee. Requires QualificationId — use get_qualifications_by_employee first to find it.
Trainings
- Create Training
Add a new training record for an employee
- Get Trainings
Retrieve all training records for a specific employee. Use list_employees to find the EmployeeId first.
- Update Training
Update an existing training record for an employee
- Delete Training
Delete a training record for an employee. Requires TrainingId — use get_trainings first to find it.
Holiday Entitlements
- Get Holiday Entitlement
Retrieve current year holiday entitlement (remaining allowance) for a specific employee. Use list_employees to find the EmployeeId first.
- Update Holiday Entitlement
Update the current year holiday entitlement for a specific employee. Requires EntitlementThisYear value and ReasonForChange.
Next Year Holiday Entitlements
- Get Next Year Holiday Entitlement
Retrieve next year's holiday entitlement (future year allowance) for a specific employee. For current year, use get_holiday_entitlement instead.
- Update Next Year Holiday Entitlement
Update next year's holiday entitlement for a specific employee. For current year, use update_holiday_entitlement instead.
Maternity/Paternitys
- Create Maternity/Paternity
Add a new maternity/paternity record for an employee
- Get Maternity/Paternity
Retrieve a specific maternity/paternity record by MaternityPaternityTxnId. Use get_maternity_paternity_by_employee first to find the ID.
- Update Maternity/Paternity
Update an existing maternity/paternity record for an employee
- Delete Maternity/Paternity
Delete a maternity/paternity record. Requires MaternityPaternityTxnId — use get_maternity_paternity_by_employee first to find it.
Right To Works
- Create Right To Work
Add a new right to work / visa / work permit record for an employee. DocumentId here means the document reference number (e.g. passport number), not a database ID.
- Get Right To Work
Retrieve right to work / visa / work permit details for a specific employee. Use list_employees to find the EmployeeId first.
- Update Right To Work
Update an existing right to work record for an employee
- Delete Right To Work
Delete a right to work record. Requires RightToWorkTxnId — use get_right_to_work first to find it.
Other (8)
- Add Employee Image
Upload a profile image for an employee. Requires EmployeeId, image filename (e.g. photo.png), and base64-encoded image data.
- Get Appraisals By Employee
Retrieve all appraisal / performance review records for an employee. Use list_employees to find the EmployeeId first.
- Get Benefits By Employee
Retrieve all benefit records for a specific employee. Use list_employees to find the EmployeeId first.
- Get Qualifications By Employee
Retrieve all qualification records for a specific employee. Use list_employees to find the EmployeeId first.
- Get Work Pattern
Retrieve details of a specific work pattern by WorkPatternId. The WorkPatternId can be found in the employee detail response from get_employee.
- Get Maternity/Paternity By Employee
Retrieve all maternity/paternity leave records for a specific employee. Use list_employees to find the EmployeeId first.
- Update Employee ID
Change an employee's ID to a new value
- Mark Employee As Leaver
Mark an employee as a leaver with a leaving date and reason. Use list_employees to find the EmployeeId first.
PeopleHR AI Agent Use Cases
Connect your AI agent to PeopleHR and help your team scale the HR operations they run by hand today.
Use StackOne to connect your AI agent to your HRIS, identity management, and LMS to automate employee onboarding.
ViewUse StackOne to connect your AI agent to your HRIS, knowledge base, and messaging tools to automate HR policy Q&A.
ViewUse StackOne to connect your AI agent to your HRIS, identity management, and ITSM to automate employee offboarding and deprovisioning.
ViewSet Up Your PeopleHR MCP Server in Minutes
One endpoint. Any framework. Your agent is talking to PeopleHR in under 10 lines of code.
Agent Frameworks
{
"mcpServers": {
"stackone": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://api.stackone.com/mcp?x-account-id=<account_id>",
"--header",
"Authorization: Basic <YOUR_BASE64_TOKEN>"
]
}
}
}Check More HRIS / HCM MCP Servers
162+ actions
128+ actions
127+ actions
123+ actions
120+ actions
117+ actions
111+ actions
Platform Resources
MCP Code Mode: Keeping Tool Responses Out of Agent Context
Anthropic's code_execution processes data already in context. Custom MCP code mode keeps raw tool responses in a sandbox. 14K tokens vs 500.
11 min
Comparing BM25, TF-IDF, and Hybrid Search for MCP Tool Discovery
Benchmarking BM25, TF-IDF, and hybrid search for MCP tool discovery across 916 tools. The 80/20 TF-IDF/BM25 hybrid hits 21% Top-1 accuracy in under 1ms.
10 min
Indirect Prompt Injection Defense for MCP Tools: A Technical Guide
MCP tools that read emails, CRM records, and tickets are indirect prompt injection vectors. Here's how we built a two-tier defense that scans tool results in ~11ms.
12 min
MCP vs A2A: Architecture, Security, and When to Use Each
MCP vs A2A: what each protocol standardizes, how they differ, their shared security risks including indirect prompt injection, and when to use one, both, or a hybrid architecture.
12 min
MCP vs API: What 200+ Connector Builds Taught Us
MCP wraps APIs, it doesn't replace them. After building 200+ connectors that serve both, here's when each approach wins.
14 min read
PeopleHR MCP Server FAQ
Does StackOne have a PeopleHR MCP server?
PeopleHR MCP server vs direct API integration — what's the difference?
How does PeopleHR authentication work for AI agents?
origin_owner_id.Are PeopleHR MCP tools vulnerable to prompt injection?
What is the context bloat of a PeopleHR agent and how do I avoid it?
Can I limit which actions my PeopleHR agent can access?
Can I create custom agent actions for my PeopleHR MCP server?
When should I NOT use a PeopleHR MCP server?
What AI frameworks and AI clients does the StackOne PeopleHR MCP server support?
Put your AI agents to work
All the tools you need to build and scale AI agent integrations, with best-in-class connectivity, execution, and security.