# PeopleForce MCP connector

The PeopleForce connector brings departments, divisions, locations and asset assignments into Claude, ChatGPT, Cursor and the Elaichi Agent, so each person can look up and update PeopleForce records inside their own access, with every change logged.

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

## Facts

| | |
| --- | --- |
| Application | PeopleForce |
| Category | HRIS |
| AI tools | 391 |
| Authentication | Connects with an API key |
| Bring 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 | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once PeopleForce is connected

- Create a Customer Success department under the Revenue division
- Which asset categories do we have in PeopleForce?
- Assign laptop LT-0412 to the new hire in the Kyiv office

## Connect PeopleForce in Elaichi

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

1. Open Connections, choose Add connection, and pick PeopleForce.
2. Optionally set Share with, then press Connect.
3. Paste a PeopleForce API key. One person generates a token in PeopleForce 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 PeopleForce tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## PeopleForce MCP connector for 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.

## PeopleForce MCP connector for 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.

## PeopleForce MCP connector for 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 PeopleForce 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 PeopleForce 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 PeopleForce through Elaichi

### Set up a new department after a reorg

HR. Create the department in PeopleForce, place it under the right division, and update the records that moved, all from a single plain request instead of a dozen forms.

### Hand a laptop to a new starter

IT. Record the asset assignment in PeopleForce the moment the laptop leaves the cupboard, and update it when the machine is swapped or returned.

### Open a new office location

Operations. Add the location to PeopleForce and move the right departments under it without clicking through every page of the settings.

### Keep asset categories tidy before the audit

Finance. List every asset category in PeopleForce, rename the ones that drifted, and remove duplicates before the auditors ask where the equipment sits.

### Check which division a team sits in

People Ops. Ask for a department or division by name and get the PeopleForce record back without opening the org chart.

### Close a location that has shut

Facilities. Update or remove the location in PeopleForce and tidy the asset assignments tied to it, so nothing is left pointing at an empty office.

## Elaichi vs Zapier MCP vs Composio for PeopleForce

All three can connect PeopleForce to an AI assistant, and all three have admin controls. They differ in where access lives and how you pay.

| What to check | Elaichi | Zapier MCP | Composio |
| --- | --- | --- | --- |
| Where the AI connects | One address for the whole organization. Endpoint: https://api.elaichi.ai/mcp | A server per member, created at sign-in. | An MCP endpoint per team, or an SDK. |
| Control over PeopleForce tools | Allow or restrict single PeopleForce tools, per role or user. | App and action restrictions on the account. | Role permissions, down to the action. |
| Record of calls | One audit entry per PeopleForce call. | A History tab of tool calls. | A log of every tool call. |
| Single sign-on | SAML or OIDC, plus SCIM, on Gold. | SAML on Enterprise. | SAML and OIDC on Enterprise. |
| Price | $15 per user per month. | 2 tasks per successful call. | Billed per tool call. |

Sources: Zapier MCP [docs](https://docs.zapier.com/mcp/get-started/quickstart), [security](https://docs.zapier.com/mcp/manage/security), [usage](https://docs.zapier.com/mcp/features/usage); Composio [docs](https://docs.composio.dev/docs/composio-connect), [gateway](https://composio.dev/mcp-gateway), [enterprise](https://composio.dev/enterprise), [pricing](https://composio.dev/pricing). Checked September 2026.

Longer take: [Zapier MCP alternative](/blog/zapier-mcp-alternative/) and [when you don't need an MCP gateway](/blog/when-you-dont-need-an-mcp-gateway/).

## Frequently asked questions

### How do I connect PeopleForce to Claude?

Two steps. In Elaichi, choose PeopleForce and paste in the API key from your PeopleForce account, there is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. Claude signs you in through Elaichi and PeopleForce is ready to ask about.

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

Yes. The PeopleForce connection you make in Elaichi is reached through one endpoint, https://api.elaichi.ai/mcp, and that same address works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect PeopleForce once and every client picks it up.

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

It can look up a department or division in PeopleForce, create or rename one, add or change a location, and record, update or remove asset assignments and asset categories. You ask in plain words, such as create a Support department under the Customer division, and it does the work in PeopleForce. Short concrete asks work better than long sentences.

### Does connecting PeopleForce give the AI everything in my account?

No. Every request to PeopleForce runs as the person who signed in, so the AI sees only the departments, locations and assets that person could already open in PeopleForce. Elaichi can narrow that further with roles and restrictions, and it never widens it.

### Can my team share one PeopleForce connection?

Yes. One person connects PeopleForce in Elaichi and shares it with a team, and nobody else ever handles the API key. Each teammate still signs in as themselves, so the audit log names the person who changed a department or an asset assignment, not a shared account.

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

Yes. Restrictions in Elaichi work per action, so you can allow reading departments and locations in PeopleForce while blocking deletes or updates. A restricted action is never advertised to Claude, ChatGPT or Cursor at all, so no prompt can reach it.

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

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

### Does the PeopleForce MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. PeopleForce is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

### Is Elaichi an alternative to Zapier MCP for PeopleForce?

Yes. Both let Claude, ChatGPT or Cursor use PeopleForce. Zapier MCP fits a team that already automates in Zapier, since each person signs in and acts as themselves in that account. Elaichi fits when IT wants one address for the whole company, per-tool rules by role, and a record of every PeopleForce call.

### How is Elaichi different from Composio for PeopleForce?

Composio gives AI agents tools and sign-in handling across 1,000+ apps, for developers building agents or people using an assistant, billed per tool call. Elaichi gives a company's own people governed access to PeopleForce: one address, restrictions per role or user, and $15 per user per month. Both have role permissions and a log of every call.

## All 391 PeopleForce tools

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

- **Create a PeopleForce department** (Create). Create a department in peopleforce. Returns the created department object including id, name, parent_id, manager_id, created_at, updated_at, and fields (custom fields with values). Required: name.
- **Delete a PeopleForce department by ID** (Delete). Delete a department in peopleforce by id. Returns an empty 204 response on success. Required: id.
- **Get single PeopleForce department by ID** (Get). Get a single peopleforce department by id. Returns: id, name, parent_id, manager_id, created_at, updated_at, fields, applicant, pipeline_state. Required: id.
- **Update a PeopleForce department by ID** (Update). Update a department in peopleforce by id. Returns the updated department object including id, name, parent_id, manager_id, created_at, updated_at, and fields (custom fields with values). Required: id, name.
- **Create a PeopleForce location** (Create). Create a new location in peopleforce. Returns the created location object including id, name, country_code, address, time_zone, holiday_policy_id, created_at, and updated_at. Required: name.
- **Delete a PeopleForce location by ID** (Delete). Delete a location in peopleforce by id. Returns an empty 204 response on success. Required: id.
- **Update a PeopleForce location by ID** (Update). Update an existing location in peopleforce by id. Returns the updated location object including id, name, country_code, address, time_zone, and holiday_policy_id. Required: name and id.
- **Create a PeopleForce division** (Create). Create a new division in peopleforce. Returns the created division including its id, name, created_at, and updated_at. Required: name.
- **Delete a PeopleForce division by ID** (Delete). Delete a division in peopleforce by id. Returns an empty 204 response on success. Required: id.
- **Get single PeopleForce division by ID** (Get). Get a single PeopleForce division by id. Returns: id, name, created_at, updated_at, applicant, pipeline_state. Required: id.
- **Update a PeopleForce division by ID** (Update). Update a PeopleForce division by id. Returns the updated division: id, name, created_at, updated_at. Required: id, name.
- **Create a PeopleForce public asset assignment** (Create). Create an asset assignment in PeopleForce, issuing an asset to a user. Returns the created assignment including id, user_id, asset_id, issued_on, returned_on, created_at, and updated_at. Required: asset_id, user_id, issued_on.
- **Delete a PeopleForce public asset assignment by ID** (Delete). Delete an asset assignment in PeopleForce by id. Returns an empty 204 response on success.
- **Update a PeopleForce public asset assignment by ID** (Update). Update an asset assignment in PeopleForce by marking the asset as returned. Returns the updated assignment including id, user_id, asset_id, issued_on, returned_on, created_at, and updated_at. Required: id, returned_on.
- **Create a PeopleForce public asset assignments v 2** (Create). Create a PeopleForce asset assignment that issues an asset to an employee. Returns the created assignment including id, user_id, asset_id, issued_on, returned_on, created_at, and updated_at. Required: asset_id, user_id, issued_on.
- **Delete a PeopleForce public asset assignments v 2 by ID** (Delete). Delete a PeopleForce asset assignment by id; the assignment is soft-deleted. Returns an empty 204 response on success. Required: id.
- **Update a PeopleForce public asset assignments v 2 by ID** (Update). Update an asset assignment in peopleforce by its id, e.g. to record the asset's return. Returns: id, user_id, asset_id, issued_on, returned_on, created_at, updated_at, applicant, pipeline_state. Required: id, returned_on.
- **Create a PeopleForce public asset assignments v 3** (Create). Create an asset assignment in PeopleForce, issuing a company asset to an employee on a given date. Returns the created assignment: id, asset_id, user_id, issued_on, returned_on, created_at, updated_at. Requires asset_id, user_id, and issued_on.
- **Delete a PeopleForce public asset assignments v 3 by ID** (Delete). Delete an asset assignment in PeopleForce by id (the assignment is soft-deleted). Returns an empty 204 response on success. Required: id.
- **Update a PeopleForce public asset assignments v 3 by ID** (Update). Update an asset assignment in PeopleForce by id, recording the date the asset was returned. Returns the updated assignment: id, asset_id, user_id, issued_on, returned_on, created_at, updated_at. Requires id and returned_on.
- **Create a PeopleForce public asset category** (Create). Create an asset category in PeopleForce. Returns the created category with id, name, icon, created_at, and updated_at. Required: name, icon.
- **Delete a PeopleForce public asset category by ID** (Delete). Delete an asset category in PeopleForce by id. Returns an empty 204 response on success. Required: id.
- **List all PeopleForce public asset categories** (List). List all asset categories in PeopleForce. Returns each category with id, name, icon, created_at, and updated_at.
- **Update a PeopleForce public asset category by ID** (Update). Update an asset category in PeopleForce by id. Returns the updated category with id, name, icon, created_at, and updated_at. Required: id, name.
- **Create a PeopleForce public asset categories v 2** (Create). Create an asset category in Peopleforce. Returns the created category including id, name, icon, created_at, and updated_at. Requires name and icon.
- **List all PeopleForce public asset categories v 2** (List). List all asset categories in Peopleforce. Returns each category with id, name, icon, created_at, and updated_at.
- **Create a PeopleForce public asset categories v 3** (Create). Create an asset category in Peopleforce. Returns the created category's id, name, icon, created_at, and updated_at. Requires name and icon.
- **List all PeopleForce public asset categories v 3** (List). List asset categories in Peopleforce. Returns each category's id, name, icon, created_at, and updated_at.
- **Create a PeopleForce public asset** (Create). Create an asset in Peopleforce. Returns the created asset object including id, name, code, serial_number, price, currency_code, asset_category_id, and asset_assignments. Requires name, code, and asset_category_id.
- **Delete a PeopleForce public asset by ID** (Delete). Delete an asset in Peopleforce by id. Deleting an asset cascades the discard to its existing asset_assignments. Returns an empty 204 response on success. Required: id.
- **Get single PeopleForce public asset by ID** (Get). Get an asset in Peopleforce by id. Returns the asset with its custom fields, including id, name, code, serial_number, price, currency_code, location_id, asset_assignments, and custom_fields. Required: id.
- **List all PeopleForce public assets** (List). List all assets in Peopleforce, returned in stable order by id. Returns asset records including id, name, code, serial_number, price, currency_code, asset_category_id, and asset_assignments.
- **Update a PeopleForce public asset by ID** (Update). Update an asset in Peopleforce by id. Returns the updated asset with its custom fields, including id, name, code, serial_number, price, currency_code, location_id, asset_assignments, and custom_fields. Requires id and name.
- **Create a PeopleForce public assets v 2** (Create). Create an asset in PeopleForce. Returns the created asset record including its id, name, code, serial_number, price, asset_category_id, and asset_assignments. Requires name, code, and asset_category_id.
- **Delete a PeopleForce public assets v 2 by ID** (Delete). Delete an asset in PeopleForce by id. Deleting an asset cascades the discard to its existing asset assignments. Returns an empty 204 response on success. Required: id.
- **Get single PeopleForce public assets v 2 by ID** (Get). Get a single asset in PeopleForce by id. Returns the full asset record including id, name, code, serial_number, description, price, currency_code, location_id, asset_category_id, created_at, updated_at, and asset_assignments. Required: id.
- **List all PeopleForce public assets v 2** (List). List all assets in PeopleForce. Returns each asset record with its id, name, code, serial_number, description, price, currency_code, location_id, asset_category_id, created_at, updated_at, and asset_assignments.
- **Update a PeopleForce public assets v 2 by ID** (Update). Update an asset in PeopleForce by id. Returns the updated asset record including id, name, code, serial_number, price, currency_code, asset_category_id, and asset_assignments. Requires name. Required: id.
- **Create a PeopleForce public assets v 3** (Create). Create an asset in PeopleForce. Returns the created asset including id, name, code, serial_number, price, currency_code, asset_category_id, and asset_assignments (warranty expiry is exposed under the upstream key `warranity_expires_on`). Requires name, code, and asset_category_id.
- **Delete a PeopleForce public assets v 3 by ID** (Delete). Delete an asset in PeopleForce by id. Deleting an asset cascades the discard to its existing asset assignments. Returns an empty 204 response on success. Required: id.
- **Get single PeopleForce public assets v 3 by ID** (Get). Get a single asset in PeopleForce by id. Returns the asset including id, name, code, serial_number, description, price, currency_code, location_id, asset_category_id, and asset_assignments. Required: id.
- **List all PeopleForce public assets v 3** (List). List assets in PeopleForce. Returns assets including id, name, code, serial_number, price, currency_code, asset_category_id, created_at, and updated_at. Results are paginated.
- **Update a PeopleForce public assets v 3 by ID** (Update). Update an asset in PeopleForce by id. Returns the updated asset including id, name, code, serial_number, price, currency_code, location_id, asset_category_id, and asset_assignments (warranty expiry is exposed under the upstream key `warranity_expires_on`). Requires id and name.
- **List all PeopleForce public calendars** (List). List company calendar events in peopleforce. Returns an array of calendar events including type, title, starts_on, ends_on, and a data object with the employee's user_id, first_name, and last_name.
- **List all PeopleForce public calendars v 2** (List). List all calendars in peopleforce. Returns calendar events with type, title, starts_on, ends_on, and a data object containing user_id, first_name, and last_name.
- **List all PeopleForce public calendars v 3** (List). List Peopleforce calendar events. Returns each event's type, title, starts_on, ends_on, and data (user_id, first_name, last_name). Optional: starts_on, ends_on to narrow the returned window.
- **Create a PeopleForce public compensation type** (Create). Create a compensation type in Peopleforce. Returns the created record with: id, name. Required: name.
- **Delete a PeopleForce public compensation type by ID** (Delete). Delete a compensation type in Peopleforce by id. Returns an empty 204 response on success. The type is discarded rather than permanently removed. Required: id.
- **List all PeopleForce public compensation types** (List). List compensation types in Peopleforce. Returns compensation type records with: id, name.
- **Update a PeopleForce public compensation type by ID** (Update). Update a compensation type in Peopleforce by id. Returns the updated record with: id, name. Required: id, name.
- ...and 341 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
