Paylocity MCP Server
This server connects Claude to the Paylocity HR/Payroll API to manage and query employee and company data, with built-in sensitive data redaction (SSNs, bank account/routing numbers, and company FEIN are automatically masked before reaching Claude).
Search & Retrieve Employees — Find employees by name, job title, email, or employee ID; retrieve full profiles including personal info, job/department, pay rate, tax setup, benefits, addresses, and emergency contacts.
Payroll & Financial Data — View pay statement history by year (gross/net pay, hours, taxes, deductions, earnings breakdowns) and get direct deposit account info with sensitive numbers redacted.
Update Employee Records — Modify personal info (name, address), job details (title, department, cost center, supervisor), compensation (pay rate, salary), employment status (active, terminated, leave), and benefit setup.
Add Earnings — Add one-time or recurring earnings such as bonuses, commissions, stipends, or overtime.
Add Employees — Create new employee records directly (bypassing onboarding) or initiate a self-service onboarding workflow for new hires.
Company Insights — Retrieve a workforce summary with total headcount and breakdowns by status, department, job title, and reporting relationships.
Custom Fields — Pull custom profile fields like t-shirt size.
Click on "Deploy 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., "@Paylocity MCP Server show me the company headcount by department"
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.
Paylocity MCP Server
An MCP (Model Context Protocol) server that connects Claude Desktop to the Paylocity API. Sensitive data like SSNs and bank account numbers are automatically redacted before reaching Claude.
Setup
1. Install
git clone <this-repo>
cd payolocity-mcp
npm install
npm run build2. Get your Paylocity API credentials
You'll need two sets of API keys from your Paylocity admin:
WebLink API Key (Client ID + Client Secret) — used for employee details, pay statements, and write operations
NextGen API Key (Client ID + Client Secret) — used for the employee directory search
Both come as password-protected zip files from Paylocity. Ask your Paylocity admin or implementation contact for access.
You'll also need your Company ID — the numeric ID Paylocity assigned to your company (e.g. 348353).
3. Configure Claude Desktop
Open your Claude Desktop config file:
Mac:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the paylocity server to mcpServers:
{
"mcpServers": {
"paylocity": {
"command": "node",
"args": ["/full/path/to/payolocity-mcp/dist/server.js"],
"env": {
"PAYLOCITY_CLIENT_ID": "your-weblink-client-id",
"PAYLOCITY_CLIENT_SECRET": "your-weblink-client-secret",
"PAYLOCITY_ENV": "production",
"PAYLOCITY_COMPANY_ID": "your-company-id",
"PAYLOCITY_NEXTGEN_CLIENT_ID": "your-nextgen-client-id",
"PAYLOCITY_NEXTGEN_CLIENT_SECRET": "your-nextgen-client-secret"
}
}
}
}Replace the placeholder values with your actual credentials and the full path to where you cloned the repo.
4. Restart Claude Desktop
Quit and reopen Claude Desktop. The Paylocity tools will appear automatically.
Related MCP server: clio-mcp
What you can do
Once connected, you can ask Claude things like:
"Find Sean Canton in Paylocity"
"What's Jeremy Allen's job title and department?"
"Show me the company headcount by department"
"Pull pay statements for employee 76 for 2025"
"What are the direct deposit accounts for employee 1?"
Available tools
Tool | Description |
search_employees | Find employees by name, title, email, or ID |
get_employee | Full employee detail (pay, benefits, tax, addresses, contacts) |
get_pay_statements | Pay history with summary and line-item details |
get_direct_deposit | Bank account info (numbers redacted) |
get_company_summary | Headcount and department breakdown |
update_employee | Change address, title, department, pay rate, status |
add_earnings | Add a bonus, commission, or other one-time pay |
add_employee | Create a new employee record (skips onboarding workflow) |
add_onboarding_employee | Start a new hire through the self-service onboarding workflow |
get_employee_custom_fields | Pull custom profile fields (t-shirt size, etc.) added during onboarding |
get_tshirt_size | Shortcut: pull just the t-shirt size for swag/uniform requests |
Not yet supported
These were requested but aren't (currently) reachable via Paylocity's public Open API:
Capability | Status | Notes |
Documents library | Separate API | Paylocity exposes documents through a distinct "Document Partner API" with its own credentials. Needs separate WebLink key with document scopes; not part of the v2 surface we use here. |
Onboarding events / workflow steps | Limited | We can start onboarding (above), but creating arbitrary events on an in-flight workflow isn't exposed. |
Performance reviews | Not in public API | The Performance module's review scores are not exposed via the Open API. Available only through Paylocity's UI exports / Data Exchange reports. |
Surveys | Not in public API | Survey build and response data isn't a public API resource. Same path as Performance — UI / Data Exchange only. |
If your Paylocity contract includes Data Exchange (scheduled report exports to S3/SFTP), pulling Performance and Survey data is doable that way — but it lives outside this MCP server.
Data protection
All API responses are scrubbed before reaching Claude:
SSNs show only the last 4 digits (
***-**-1234)Bank account numbers are masked
Routing numbers are fully redacted
Company FEIN is masked
This happens at the server level — Claude never sees the raw data.
Credentials
WebLink API secrets expire after 365 days
NextGen API secrets expire after 365 days
Check the expiration dates in the zip file names from Paylocity
Available Tools
8 toolsadd_earningsA
Add a one-time or recurring earning to an employee (bonus, commission, stipend, overtime, etc.). Use get_company_codes or check existing earnings for valid earning codes.
Inputs: employeeId (required), earningCode (required), startDate (required), companyId, +7 more.
add_employeeA
Add a new employee to the system (onboarding). Creates the employee record with personal info, job details, and compensation. SSN is required by Paylocity but will not be stored in conversation — pass it directly and it will be sent encrypted. Returns the new employee ID.
Inputs: firstName (required), lastName (required), ssn (required), birthDate (required), +19 more.
get_company_summaryA
Get a high-level workforce summary: total headcount, breakdown by status, department (with names), job title, and reporting relationships.
Inputs: companyId.
get_direct_depositA
Get direct deposit accounts for an employee. Account and routing numbers are redacted — shows account type, status, and name on account.
Inputs: employeeId (required), companyId.
get_employeeA
Get full details for an employee by ID. Returns everything: personal info, job/department, pay rate, tax setup, benefits, addresses, emergency contacts. SSN, FEIN, and bank info are redacted.
Inputs: employeeId (required), companyId.
get_pay_statementsA
Get pay statement data for an employee by year. Returns both summary (gross pay, net pay, hours, direct deposit amounts) and line-item details (each tax, deduction, and earning). Optionally filter to a specific check date.
Inputs: employeeId (required), year (required), companyId, checkDate.
search_employeesA
Search the employee directory by name, job title, email, or employee ID. Returns matching employees with basic info (name, title, department, status, supervisor). Use this first to find someone's employee ID, then use get_employee for full details.
Inputs: query (required), companyId, statusFilter.
update_employeeA
Update an employee's information. Supports changing: personal info (name, address), job details (title, department, cost center, supervisor), compensation (pay rate, salary), employment status (active, terminated, leave), and benefit setup. All changes require an effective date where applicable.
Inputs: employeeId (required), updates (required), companyId.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Each tool targets a distinct domain concept with clear boundaries: employee CRUD (add/get/update/search), earnings management (add), payroll data (pay statements, direct deposit), and company insights. No overlapping functionality between tools like 'add_earnings' and 'update_employee'.
Strict adherence to verb_noun snake_case convention throughout (add_earnings, get_employee, search_employees, update_employee). Pluralization choices logically match the resource type (earnings, statements as collections; employee, deposit as singular records).
Eight tools provide a focused but sufficient surface for core HRIS operations without bloat. The scope covers employee lifecycle management, compensation adjustments, and payroll inquiry—appropriate for a Paylocity integration without attempting to wrap the entire API.
Solid CRUD coverage for employee records and read access to payroll data. Minor gaps exist: direct deposit can be viewed but not updated, and earnings can be added but not removed or modified. However, core 'find employee, view details, update info' workflows are fully supported.
Related MCP Connectors
Connect Claude or Cursor to books, invoices, bills, payroll, and sealed closes.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
Give AI agents 30,000+ safe, token-optimized actions across Workday, SAP, Oracle + hundreds more.
Related MCP Servers
- AlicenseDqualityDmaintenanceA Model Context Protocol server that enables Claude Desktop to access structured employee data and perform HR operations including employee lookups, searches, and global leave requests.31MIT
- AlicenseNot gradedqualityAmaintenanceConnects Claude to Clio practice management, enabling AI-assisted access to matters, contacts, documents, tasks, and billing with audit logging and encryption for law firm compliance.440 npm27MIT
- FlicenseNot gradedqualityDmaintenanceEnables employees to check leave balance, apply for leave, and view leave history through natural language using Claude Desktop.-
- AlicenseCqualityDmaintenanceAutomates HR workflows such as employee onboarding, leave management, and ticket tracking through natural language prompts in Claude Desktop.12MIT