peopleforce-mcp
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., "@peopleforce-mcpWho is on vacation next week in the Engineering team?"
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.
A Model Context Protocol (MCP) server that connects Claude, Cursor, Claude Desktop, and any MCP-compatible LLM client to the PeopleForce HRIS / ATS.
27 read-only tools cover the PeopleForce v3 REST API — employees, time-off, recruitment, and all reference data — so your AI assistant can answer HR questions grounded in live company data without bouncing you back to the web app.
Built and maintained by Empat — a Ukrainian custom software development company. We ship this connector as open source to make AI-assisted HR automation a commodity for every PeopleForce customer.
Why this exists
PeopleForce is one of the fastest-growing HRIS platforms in Eastern Europe, but as of 2026 it has no official MCP connector. That means Claude, Cursor, and other LLM agents can't answer questions like:
"Who is on vacation next week in the Back-end department?"
"How many people are currently on probation?"
"List all open Senior iOS vacancies we haven't filled for 30+ days."
"What leave balance does
jane.doe@example.comhave left this quarter?"
peopleforce-mcp fixes that. It is a minimal, read-only, fetch-based TypeScript server that lives on GitHub and plugs into any MCP client in a couple of commands.
Features
✅ 27 tools across employees, time-off, recruitment, tasks, assets, and reference data.
✅ Read-only by design — the 0.x line never mutates your PeopleForce data.
✅ Clone & run — no registry accounts required, deploy from GitHub in under a minute.
✅ Actionable errors — 401 tells you to check your key, 404 tells you the endpoint isn't on v3.
✅ Built-in pagination plus a
find_employee_by_emailworkflow tool that paginates for you.✅ Escape hatch —
api_requestlets your agent hit any v3 GET endpoint not yet modelled.✅ Node.js 18 / 20 / 22 — covered by CI.
✅ Typed end-to-end, smoke-tested over stdio.
Quick start
1 — Create a PeopleForce API key
PeopleForce → Settings → Open API keys → Generate.
Pick the Company API key (full read access to employee data). Optionally restrict it to your IP range on the PeopleForce allow-list.
2 — Clone and build once
Requires Node.js 18 or newer and git.
git clone https://github.com/EmpatDevelopment/peopleforce-mcp.git ~/peopleforce-mcp
cd ~/peopleforce-mcp
npm install
npm run buildThat produces ~/peopleforce-mcp/dist/index.js, which is the only file your MCP client needs to launch.
3 — Register with your MCP client
Claude Code
claude mcp add peopleforce --scope user \
--env PEOPLEFORCE_API_KEY=your_key_here \
-- node "$HOME/peopleforce-mcp/dist/index.js"Claude Desktop — edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"peopleforce": {
"command": "node",
"args": ["/absolute/path/to/peopleforce-mcp/dist/index.js"],
"env": { "PEOPLEFORCE_API_KEY": "your_key_here" }
}
}
}Cursor — paste the same JSON into ~/.cursor/mcp.json under mcpServers.
Detailed per-client guides with screenshots-friendly JSON snippets are in examples/.
Configuration
All configuration is passed via environment variables.
Variable | Default | Purpose |
| required | Your PeopleForce Company API key. |
|
| Override if PeopleForce hosts you on a non-default endpoint. |
|
| Per-request timeout. Slow PeopleForce responses are aborted and retried. |
|
| Max automatic retries for |
|
| Base for exponential backoff with full jitter. Retry-After headers are honoured. |
4 — Keeping it up to date
cd ~/peopleforce-mcp && git pull && npm install && npm run buildRestart your MCP client after each update.
5 — Ask something
"How many people are on probation right now, and which departments are they in?"
The model will call peopleforce_list_employees with status=probation, paginate through the results, and summarise.
Tool reference
Every tool is prefixed with peopleforce_ and is read-only. All list tools accept page (≥ 1) and per_page (≤ 100).
Employees
Tool | Purpose |
| Paginated roster; filter by |
| Full profile by numeric |
| Looks up an employee by work or personal email; paginates internally. |
| Position / role history for one employee. |
| Documents attached to one employee. |
| Assets assigned to one employee. |
Time-off & calendar
Tool | Purpose |
| Filter by |
| Vacation, sick, optional holiday, etc. |
| Official company holidays. |
Recruitment / ATS
Tool | Purpose |
| Open & closed jobs. |
| Candidates in the pipeline. |
| Pipelines and their stages. |
| Where candidates came from. |
Reference data
list_departments, list_positions, list_locations, list_divisions, list_teams, list_job_levels, list_job_profiles, list_legal_entities, list_employment_types, list_genders, list_skills, list_competencies, list_assets, list_tasks.
Escape hatch
api_request — raw GET against any /api/public/v3/<path> with an optional query object. Use it when the endpoint you need isn't modelled above, and consider opening a PR to promote it to a first-class tool.
Security
This server requires a PeopleForce Company API key, which is effectively read access to your entire employee database. Read SECURITY.md for full guidance — tl;dr:
Store it only in
PEOPLEFORCE_API_KEY(env var or your MCP client's encrypted config).Never commit it; never paste it into chat, Slack, or Notion.
Rotate immediately if leaked (PeopleForce → Settings → Open API keys → Revoke + Generate).
Restrict to allow-listed IPs where your MCP client runs.
Development
git clone https://github.com/EmpatDevelopment/peopleforce-mcp.git
cd peopleforce-mcp
npm install
npm test # unit + stdio smoke tests (no PeopleForce account required)
npm run build
PEOPLEFORCE_API_KEY=xxx node dist/index.js # run locallyFull contribution guide: CONTRIBUTING.md.
FAQ
Does it write to PeopleForce? No. 0.x is read-only by design. Mutating tools would be opt-in via a future feature flag.
Does it store my data anywhere? No. The server is a stateless stdio proxy between your MCP client and the PeopleForce API. Requests never leave the process.
Is it rate-limited? PeopleForce rate-limits the API itself. The server surfaces any 429 responses as actionable errors; it does not retry automatically.
Which PeopleForce plans are supported? Any plan that exposes the v3 API. The Career key has a narrower scope (vacancies only) and will 404 on most tools — use a Company key.
Can I self-host it? Yes — it's pure Node.js 18+. Run node dist/index.js inside any container with the env var set.
About Empat
Empat is a product-focused custom software development company based in Lviv, Ukraine. Since 2013 we have delivered 300+ projects across 23 markets — including fintech software development, AI software development, SaaS development, and custom mobile app development for Y Combinator alumni, Fortune 500 companies, and 19 Forbes 30 Under 30 founders.
Ways we work with clients:
Full product development — Discovery, PoC, MVP, launch, growth.
CTO as a service for early-stage founders.
Dedicated developer hiring and IT staff augmentation (iOS, Android, Flutter, React Native, Node.js, Python, .NET, QA, DevOps, Design).
Product validation and consulting.
Industries we serve: healthcare (remote monitoring, tele-consultations), fintech (payments, banking, commissions), social networks, education, entertainment & gaming, e-commerce.
5.0 on Clutch · Top 100 Fastest Growth 2026 · 300+ delivered products · $380M raised by clients in 2023.
👉 empat.tech — tell us what you're building.
License
MIT © 2026 Empat.
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.
Latest Blog Posts
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/EmpatDevelopment/peopleforce-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server