2.7 KiB
2.7 KiB
Rippling MCP Server
MCP server for Rippling API integration. Access employees, departments, teams, payroll, devices, and apps for HR and IT management.
Setup
npm install
npm run build
Environment Variables
| Variable | Required | Description |
|---|---|---|
RIPPLING_API_KEY |
Yes | Bearer API key or OAuth access token |
API Endpoint
- Base URL:
https://api.rippling.com/platform/api
Tools
HR / People
- list_employees - List employees with pagination and terminated filter
- get_employee - Get detailed employee information
- list_departments - List all departments
- list_teams - List all teams
- list_levels - List job levels (IC1, Manager, etc.)
- list_work_locations - List office locations
- get_leave_requests - Get time-off/leave requests
Payroll
- get_payroll - Get payroll runs and compensation data
IT
- list_devices - List managed devices (laptops, phones)
- list_apps - List integrated applications
Company
- get_company - Get company information
- list_groups - List custom groups for access control
Usage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"rippling": {
"command": "node",
"args": ["/path/to/mcp-servers/rippling/dist/index.js"],
"env": {
"RIPPLING_API_KEY": "your-api-key"
}
}
}
}
Authentication
Rippling supports two authentication methods:
Bearer API Key
Generate an API key in your Rippling admin settings for server-to-server integrations.
OAuth 2.0
For partner integrations, use OAuth flow:
- Register as a Rippling partner
- Implement OAuth installation flow
- Exchange authorization code for access token
See Rippling Developer Docs for details.
Required Scopes
Depending on which tools you use, request appropriate scopes:
employee:read- List/get employeesdepartment:read- List departmentsteam:read- List teamspayroll:read- Access payroll datadevice:read- List devicesapp:read- List appscompany:read- Company infoleave:read- Leave requests
Examples
List active employees:
list_employees(limit: 50)
List all employees including terminated:
list_employees(include_terminated: true, limit: 100)
Get employee details:
get_employee(employee_id: "emp_abc123")
List engineering department devices:
list_devices(device_type: "laptop", limit: 50)
Get pending leave requests:
get_leave_requests(status: "pending")
Get payroll for date range:
get_payroll(start_date: "2024-01-01", end_date: "2024-01-31")