@imazhar101/mcp-rippling-server
v1.3.0
Published
Rippling MCP server for HR and employee management
Maintainers
Readme
Rippling MCP Server
A Model Context Protocol (MCP) server for Rippling HR platform integration. This server provides tools to interact with Rippling's API for employee management and HR operations.
Features
- Connection Testing: Verify API connectivity and authentication
- Employee Management: List and search employees with pagination
- Employment Roles: Get employment role details for specific users
- Leave Management: Access eligible leave policies and submit requests
- Terminated Employees: List and search terminated employees
- Document Management: Access document folders and contents
- Anniversary Information: Get anniversary email settings
- Action Requests: View and manage requests that need your approval (from team members)
- Interviews & Feedback: Manage interview feedback and ATS integration
- Alerts: Access and filter alerts from the automation system
- Time Off Requests: View your submitted leave requests and their status
- Holiday Calendar: Access company holiday calendar for the current year
- Request Time Off: Submit new time off requests with approval workflow
- Cancel Time Off: Cancel pending time off requests
Tools
rippling_test_connection
Test the connection to Rippling API and retrieve basic information.
rippling_get_employment_roles
Get detailed employment roles and profile information for a specific user by user ID. Includes basic employment data plus detailed additional information and personal information field values.
Parameters:
userId(string, required): The user ID to get employment roles for
rippling_list_employees
List employees with optional search and pagination. Returns simplified employee data including:
- Employee ID
- Full name
- Title
- Department
- Employee number
- Start date
- Role state
Parameters:
page(number, optional): Page number for pagination (default: 1)searchQuery(string, optional): Search query to filter employees by name
rippling_get_eligible_leave_policies
Get eligible leave policies for the current user. Returns available leave policies with their IDs, names, descriptions (HTML stripped), and scheduling constraints including minimum/maximum hours to schedule leave.
Returns:
id: Policy ID to use withrippling_request_time_offnumHours: Number of hours for this policy typecustomName: Display name of the leave policydescription: Policy description with HTML tags removedminHoursToScheduleLeave: Minimum hours that must be scheduled in advancemaxHoursToScheduleLeave: Maximum hours that can be scheduled in advancecountry: Country code for the policyleaveTypeId: Internal leave type identifier
rippling_list_terminated_employees
List terminated employees with optional search and pagination. Returns terminated employee data including termination details.
Parameters:
page(number, optional): Page number for pagination (default: 1)searchQuery(string, optional): Search query to filter terminated employees by name
rippling_get_signed_documents
Get signed documents from Rippling hub API. Returns document metadata including IDs, names, signatures, PDF URLs, and other document properties for the current user's role. Automatically includes all available fields.
Parameters: None - uses the role from your configuration
Returns:
ids: Array of document IDspageSize: Pagination info (null if not paginated)supportsIDBasedPagination: Boolean indicating pagination supportitemsAvailable: Boolean indicating if items are availableitems: Array of document objects with all available fields (archived, companyDocument, createdAt, displayName, finalPdfUrl, id, isAmended, isConfidential, isDeleted, isUploadedDoc, name, signableCompanyDocument, signableDocument, signatureDate, type, updatedAt, uploadedBy, userDisplayName)
rippling_get_anniversary_information
Get anniversary email settings and information from Rippling anniversary app.
rippling_get_action_request_filters
Get filtered action requests that require YOUR APPROVAL or REVIEW from others (not your own submissions). This shows requests from team members or colleagues waiting for you to approve/review, such as leave requests from your team, expense approvals, or other workflow items. Defaults to showing actions pending your review. For your own time off requests, use rippling_time_off_requests instead.
Parameters:
pageSize(number, optional): Number of results per page (default: 30)actionTypes(array, optional): Filter by action types (e.g., LEAVE_REQUEST_APPROVAL)pendingReviewerRoles(array, optional): Role IDs for actions awaiting reviewrequestedByRoles(array, optional): Role IDs for actions that were submitted/requestedsortColumn(string, optional): Column to sort by (default: dateRequested)sortOrder(string, optional): Sort order - "ASC" or "DESC" (default: DESC)includeRoleDetails(boolean, optional): Include role details in the response (default: true)
rippling_get_open_interviews_and_feedbacks
Get open interviews and feedbacks for an employee from ATS. Returns today's interviews, pending interviews/feedbacks, and upcoming interviews.
Parameters:
searchQuery(string, optional): Search query to filter resultstimezone(string, optional): Timezone for the request (default: America/Phoenix)
rippling_update_feedback_form_response
Update (submit) feedback form response for an interview. Used to submit interview feedback with ratings and comments.
Parameters:
feedbackFormResponse(object, required): Complete feedback form response object containing:id(string, required): ID of the feedback form response to updaterole(string, required): Role ID of the person providing feedbacksubmittedBy(string): User ID of the person submitting the feedbackinterview(string, required): Interview ID this feedback is forapplicant(string, required): Applicant ID this feedback is foroverallRating(number, required): Overall rating (1-4 scale)status(string): Status of the feedback (e.g., SUBMITTED)formResponse(object, required): Form response containing answers and commentsowner(string, required): Owner IDmilestone(string): Milestone ID
rippling_get_alerts
Get alerts from Rippling automation system. Returns paginated list of alerts with filtering options for read status.
Parameters:
readStatus(string, optional): Filter alerts by read status - "READ_STATUS_ALL", "READ_STATUS_READ", or "READ_STATUS_UNREAD" (default: READ_STATUS_ALL)pageSize(number, optional): Number of alerts per page (default: 30, max: 100)pageToken(string, optional): Page token for pagination (empty for first page)
rippling_time_off_requests
Get YOUR OWN time off requests (leave requests) that you have personally submitted. Returns a list of only your submitted leave requests with status, dates, duration, and leave type information. For requests that need your approval from others, use rippling_get_action_request_filters instead.
Parameters:
pageSize(number, optional): Number of results per page (default: 30, max: 100)
Returns:
timeOffRequests: Array of your time off requests with:id: Request IDdateRequested: When the request was submittedstatus: Current status (e.g., EXECUTED, PENDING)decision: Approval decision (e.g., APPROVED, DENIED)requestType: Type of request (e.g., LEAVE_REQUEST_APPROVAL)requestSummary: Details including leave policy, dates, duration, balanceroleBeingAffected: Basic info about the employee taking leave
rippling_get_holiday_calendar
Get holiday calendar information from Rippling. Returns holidays and calendar events for the current year only, with options to filter by time admin permissions and payable holidays.
Parameters:
roleId(string, optional): Role ID to get holiday calendar for. If not provided, defaults to your own role IDallowTimeAdmin(boolean, optional): Whether to allow time admin access (default: false)onlyPayable(boolean, optional): Whether to return only payable holidays (default: false)
Returns:
currentYear: The current year (e.g., 2025)holidays: Array of holiday objects for the current yearrequestedFor: Role ID the calendar was requested for
rippling_request_time_off
Submit a new time off request (leave request) to Rippling. Creates a leave request with specified dates, leave policy, and reason. The request will go through the normal approval workflow using your role ID automatically.
Parameters:
leavePolicy(string, required): Leave policy ID for the type of leave being requested. IMPORTANT: Use the exact 'id' field returned fromrippling_get_eligible_leave_policies, not the customName or any other field. This should be the actual policy ID from the get_eligible_policies endpoint (e.g.,679a38907ef7dda5d37625a0)startDate(string, required): Start date of the leave in YYYY-MM-DD format (e.g., '2025-08-26')endDate(string, required): End date of the leave in YYYY-MM-DD format (e.g., '2025-08-26'). Can be the same as startDate for single-day leavereasonForLeave(string, required): Reason or description for the leave requestisOpenEnded(boolean, required): Whether this is an open-ended leave request (true or false)
Returns:
id: ID of the submitted leave requeststatus: Current status of the request (e.g., "PENDING", "APPROVED")actionRequestId: Associated action request ID for approval workflowstartDate: Requested start dateendDate: Requested end datereasonForLeave: Reason provided for the requestnumDays: Number of days requested (e.g., "1.00")numHours: Number of hours requested (e.g., "8.00")leaveTypeName: Human-readable name of leave type (e.g., "Work From Home")policyDisplayName: Display name of the policy (e.g., "WFH Request")requestedByName: Full name of the person who submitted the requestisPaid: Whether this is paid leaveisAutoApproved: Whether the request was automatically approvedcreatedAt: Timestamp when request was createdupdatedAt: Timestamp when request was last updatedfullResponse: Complete API response object with all fields
Usage Workflow:
- First, call
rippling_get_eligible_leave_policiesto get available leave policies and their IDs - Find the appropriate policy using the
idfield (e.g.,679a38907ef7dda5d37625a0) - Then call
rippling_request_time_offwith the policy ID from step 2
Example:
{
"leavePolicy": "679a38907ef7dda5d37625a0",
"startDate": "2025-08-29",
"endDate": "2025-08-29",
"reasonForLeave": "Working remotely for the day",
"isOpenEnded": false
}rippling_cancel_time_off
Cancel a pending time off request in Rippling. This can be used to cancel time off requests that are still pending approval or in progress.
Parameters:
actionRequestId(string, required): The ID of the action request to cancel. This can be obtained from theactionRequestIdfield in the response ofrippling_request_time_offor fromrippling_time_off_requestschannel(string, optional): The channel from which the cancellation is being performed (default: "DASHBOARD")
Returns:
actionRequestId: ID of the canceled action requestchannel: Channel used for the cancellationcanceled: Boolean indicating successful cancellationresponse: Complete API response from the cancellation
Example:
{
"actionRequestId": "68a8bf68eb628f0869e8bbc3",
"channel": "DASHBOARD"
}Configuration
Obtaining Required Values
To get the required Authorization token, Role ID, and Company ID:
Access Rippling Developer Console:
- Go to your Rippling instance
- Navigate to Developer tools/API section
Get Authorization Token:
- In the Developer Console, look for the Bearer token in the Authorization header
- Copy the full token value (starts with "Bearer ")
Get Role ID:
- In the Developer Console network requests, look for
roleparameter - This is typically a UUID format (e.g.,
123e4567-e89b-12d3-a456-426614174000)
- In the Developer Console network requests, look for
Get Company ID:
- In the Developer Console network requests, look for
companyparameter - This is also typically a UUID format
- In the Developer Console network requests, look for
Get User ID:
- Navigate to your profile in Rippling
- The User ID is visible in the profile URL:
app.rippling.com/profile/{USER_ID} - Copy the ID from the URL (e.g.,
67adf91)
Environment Variables
Set the following environment variables:
export RIPPLING_TOKEN="your_rippling_bearer_token"
export RIPPLING_ROLE="your_rippling_role_id"
export RIPPLING_COMPANY="your_rippling_company_id"
export RIPPLING_USER_ID="your_rippling_user_id"Installation
npm install
npm run buildUsage
npx @imazhar101/mcp-rippling-serverAPI Endpoints Used
GET /employment_roles_with_company/{userId}/- Get employment roles for a userPOST /profile/get_fields_data- Get detailed profile field informationPOST /employee_list/find_paginated- List employees with pagination and searchPOST /leave_policies/get_eligible_policies/- Get eligible leave policies for userPOST /action_request/filters/find_paginated/- Get filtered action requests (including time off requests)POST /get_holiday_calendar/- Get holiday calendar informationPOST /leave_requests/- Submit new time off requestsPOST /action_request/cancel- Cancel pending action requests
License
MIT
