MCP server for PeopleForce HR — connect Claude, Cursor, and other LLM clients to the PeopleForce API. 27 read-only tools for employees, time-off, recruitment, and reference data.
PeopleForce MCP demonstrates solid fundamentals: all 19 tools have clear verb-noun naming (list_*, find_*, get_*), complete input schemas with type definitions, and descriptions ranging 50 - 200 chars. Tool annotations (readOnlyHint, destructiveHint, openWorldHint) are present. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Parameter descriptions are minimal (e.g., 'Employee id' lacks context on format or range). Error handling is absent from visible code; no guidance on retryability or recovery. Pagination is well-designed (page/per_page with max 100), but no mention of total counts or cursors. The find_employee_by_email tool shows good composition (internal pagination), but most list_* tools are generic reference data with limited business value for agent reasoning.
Find a single employee by work or personal email. Paginates internally until a match is found. Returns the full employee object or null.
Get a single employee by PeopleForce id. Returns full profile including position, department, manager, custom fields.
List company assets (equipment, devices, etc).
List competencies used in performance reviews.
List all departments with manager and parent info.
List organizational divisions.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nested objects) for downstream tool chaining or data extraction. Responses from list_* and get_* tools are opaque.
Generic reference-data tools (list_genders, list_job_levels, list_competencies, list_assets) lack business context. Descriptions do not explain WHEN an LLM should call them or what agent workflows they enable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
List position history for a specific employee (promotions, role changes, compensation).
List employees with pagination. Only the `status` filter is applied server-side; filter other attributes client-side or use peopleforce_find_employee_by_email.
List employment types (Full-time, Part-time, Contractor, etc).
List gender reference values used in profiles.
List official company holidays.
List job levels (Junior/Middle/Senior/etc).
List job profiles (role descriptions).
List leave/time-off requests. Useful for 'who's on vacation', balance queries, approvals. Supports employee_id and state filters.
List legal entities employees are contracted under.
List office/remote locations.
List all position titles used in the company.
List skills tracked in the skills matrix.
List teams (cross-functional groupings).
Parameter descriptions are minimal. E.g., 'Employee id (numeric)' lacks context on valid range, format, or how to obtain it. 'Items per page (max 100)' does not state the default or minimum.
No error handling or recovery guidance visible in source. Tools do not document retryability, rate limits, or what to do if a resource is not found. LLMs cannot self-correct on failures.
Pagination design lacks total count or next_cursor. LLMs cannot determine if more results exist or how many pages to fetch, risking incomplete data retrieval or excessive API calls.