120 lines
2.7 KiB
Markdown
120 lines
2.7 KiB
Markdown
# 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")
|
|
```
|