loading…
Search for a command to run...
loading…
Connects Claude Desktop to the Paylocity API to manage employee records, pay statements, and company headcount data through natural language. It includes automa
Connects Claude Desktop to the Paylocity API to manage employee records, pay statements, and company headcount data through natural language. It includes automated data protection that redacts sensitive information like SSNs and bank account numbers before reaching the model.
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.
git clone <this-repo>
cd payolocity-mcp
npm install
npm run build
You'll need two sets of API keys from your Paylocity admin:
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).
Open your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd 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.
Quit and reopen Claude Desktop. The Paylocity tools will appear automatically.
Once connected, you can ask Claude things like:
| 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 |
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.
All API responses are scrubbed before reaching Claude:
***-**-1234)This happens at the server level — Claude never sees the raw data.
Run in your terminal:
claude mcp add paylocity-mcp-server -- npx CSA PROJECT - FZCO © 2026 IFZA Business Park, DDP, Premises Number 31174 - 001
Security
Low riskAutomated heuristic from public metadata — not a security guarantee.