# Rippling MCP Server MCP server for [Rippling](https://www.rippling.com/) API integration. Access employees, departments, teams, payroll, devices, and apps for HR and IT management. ## Setup ```bash 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`: ```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: 1. Register as a Rippling partner 2. Implement OAuth installation flow 3. Exchange authorization code for access token See [Rippling Developer Docs](https://developer.rippling.com/documentation) for details. ## Required Scopes Depending on which tools you use, request appropriate scopes: - `employee:read` - List/get employees - `department:read` - List departments - `team:read` - List teams - `payroll:read` - Access payroll data - `device:read` - List devices - `app:read` - List apps - `company:read` - Company info - `leave: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") ```