Connect your AI Agents to SAP SuccessFactors in minutes

Merge lets you securely connect your agents to SAP SuccessFactors and thousands of tools instantly

Available tools

get_employee_compensation

Get an SAP SuccessFactors employee's compensation records: pay group, event reason, bonus target, and recurringPayComponents with each component's amount, currency and frequency (e.g. base salary). Use list_users to find the userId.

list_employee_compensation

List SAP SuccessFactors compensation records with their recurring pay components, OData $filter, $orderby and paging (up to 1000 per page; totalcount gives the full count). Use getemployee_compensation for one employee.

get_goal

Get one SAP SuccessFactors goal by ID: name, owner, category, metric, start and due dates, state, percent complete, target, actual and weight. Pass the entityname (Goal<planId>) the goal was listed under. Use list_goals to find goal IDs.

list_goals

List SAP SuccessFactors performance goals with OData $filter, $orderby and paging (totalcount gives the full count). Goals live in Goal<planId> entities that differ by tenant (e.g. Goal1, Goal5). If the entity is not found, ask the user for their goal plan ID instead of trying many names.

create_goal

Create an SAP SuccessFactors performance goal for a user in a goal plan (entity Goal<planId>, e.g. Goal1). Name and owner userId are required; category, metric, start and due dates, target and weight are optional. Use list_goals first to confirm the plan entity and reuse its categories. Needs goal plan permissions (COE0020 means none).

update_goal

Update an SAP SuccessFactors goal. Only the fields passed change: name, state label, percent complete, actual value, category, metric, dates, weight. Pass the same entityname the goal was listed under. Use listgoals to find goal IDs and the state labels the plan uses.

delete_goal

Permanently delete an SAP SuccessFactors goal. This cannot be undone; prefer updategoal to change its state unless the user asked to delete. Pass the entityname (Goal<planId>) the goal was listed under. Use listgoals to find goal IDs.

get_payment_information

Get an SAP SuccessFactors worker's payment information: effective dates, job country, and details with each bank account (owner, account number, bank, routing number, IBAN, BIC, currency, amount or percent split). Optionally limit to one effective date. Use list_users to find the worker ID.

list_payment_information

List SAP SuccessFactors payment information records (worker, effective dates, job country) with OData $filter, $orderby and paging (up to 1000 per page; totalcount gives the full count). Bank account details are left out unless includedetails is true; use getpaymentinformation for one worker's bank details.

get_payroll_results

Get an SAP SuccessFactors employee's payroll runs, newest first and paged (24 per page by default; totalcount gives the full count): pay period, pay date, currency, void flag, and items with each line's wage type and amount (e.g. GROSS, TAXES, NETPAY). Use listusers to find the userId.

list_payroll_results

List SAP SuccessFactors payroll run results (headers: payroll ID, pay period, pay date, currency) with OData $filter, $orderby and paging (up to 1000 per page; totalcount gives the full count). Use getpayroll_results for one employee's line items and amounts.

get_person

Retrieve core personal information for an employee from SAP SuccessFactors by person ID. Returns comprehensive personal data including name, date of birth, gender, marital status, nationality, and preferred language. Essential for HR data management, compliance reporting, and employee profile access.

get_person_emails

Retrieve all email addresses for an employee from SAP SuccessFactors Personal Information. Returns a list of email addresses with type (personal, work) and primary indicator. Essential for employee communications, contact information management, and system integration.

get_person_phones

Retrieve all phone numbers for an employee from SAP SuccessFactors Personal Information. Returns a list of phone numbers with type (cell, home, work), country code, and primary indicator. Essential for employee contact management, emergency communications, and compliance.

get_person_addresses

Retrieve all addresses for an employee from SAP SuccessFactors Personal Information. Returns a list of addresses with type (home, work, mailing) including street address, city, state, zip code, and country. Essential for employee location data, mailing operations, tax compliance, and payroll processing.

get_emergency_contacts

Retrieve all emergency contacts for an employee from SAP SuccessFactors Personal Information. Returns a list of emergency contacts with name, relationship, phone, email, address, and primary indicator. Critical for workplace safety, emergency response procedures, and employee welfare compliance.

list_persons

List SAP SuccessFactors person records (personIdExternal, date of birth, names) with OData $filter, $orderby and paging (up to 1000 per page; totalcount gives the full count). Names cannot be filtered here; use listusers to search by name.

get_position

Get one SAP SuccessFactors position by code: name, job title, department, company, location, pay grade, vacant flag, criticality. Returns the latest record, or the dated one when effectivestartdate (YYYY-MM-DD) is given. Use list_positions to find codes.

list_positions

List SAP SuccessFactors positions with OData $filter, $orderby and paging (up to 1000 per page; total_count gives the full count). Filter on codes, e.g. company eq '1710'. Use vacant eq true to find open positions; incumbent is often empty even when a position is filled.

list_companies

List SAP SuccessFactors companies (legal entities) with code, name, status ('A' active, 'I' inactive) and dates. Paged up to 1000 per page; total_count gives the full count. No server-side filter, so page through and filter the results.

get_company

Get one SAP SuccessFactors company (legal entity) by external code, active or inactive. Returns the latest record, or the dated one when effectivestartdate (YYYY-MM-DD, the record's start date) is given. Use list_companies to find codes.

list_departments

List SAP SuccessFactors departments with code, name, status ('A' active, 'I' inactive), dates and head. Paged up to 1000 per page; total_count gives the full count. No server-side filter, so page through and filter the results; names can repeat across codes.

get_department

Get one SAP SuccessFactors department by external code, active or inactive: name, status, dates, head (userId). Returns the latest record, or the dated one when effectivestartdate (YYYY-MM-DD) is given. Use list_departments to find codes.

get_job_requisition

Get one SAP SuccessFactors job requisition by ID: status, openings, department, location, salary range. Expand 'hiringManager,recruiter' for their IDs and names, or 'jobReqLocale' for the job title. Use listjobrequisitions to find IDs.

list_job_requisitions

List SAP SuccessFactors Recruiting job requisitions with OData $filter, $orderby and paging (up to 1000 per page; total_count gives the full count). Status is internalStatus, e.g. 'Approved', 'Pre-approved', 'Closed'. Expand 'hiringManager', 'recruiter' or 'jobReqLocale' for names and titles.

get_employee_time

Get one SAP SuccessFactors time off record by external code: employee, time type, dates, quantities, approval status, comment. Expand 'timeTypeNav,userIdNav' for the time type and employee names. Use listemployeetimes to find codes.

list_employee_times

List SAP SuccessFactors time off and absence records with OData $filter, $orderby and paging (up to 1000 per page; totalcount gives the full count). userid and filter combine. Expand 'timeTypeNav' for time type names. Use this to find an employee's valid time type codes.

create_employee_time

Create a time off record in SAP SuccessFactors. Time type codes are tenant-specific: call listemployeetimes for this employee first and reuse a code they already have. Depending on tenant setup the record is either pending approval or approved at once; the response shows which.

update_employee_time

Change the comment on an existing SAP SuccessFactors time off record. Only the comment can be changed here: dates, time type and quantities are fixed after creation, and approval goes through approveemployeetime or rejectemployeetime.

delete_employee_time

Delete an employee time/absence record from SAP SuccessFactors. This tool permanently removes a time record and should be used with caution. Typically used for canceling erroneous records or cleaning up test data. Consider updating approval status instead of deletion for audit trail purposes.

approve_employee_time

Approve a pending SAP SuccessFactors time off request through SAP's approval workflow, with an optional approver comment. The employee's own comment is not changed. Fails without changing anything if the record is not PENDING. Find pending requests with listemployeetimes filter approvalStatus eq 'PENDING'.

reject_employee_time

Reject a pending SAP SuccessFactors time off request through SAP's approval workflow, with a required reason recorded on the workflow. The employee's own comment is not changed. Fails without changing anything if the record is not PENDING. Find pending requests with listemployeetimes filter approvalStatus eq 'PENDING'.

get_time_account_balance

Get an employee's SAP SuccessFactors time account balance for one account type. Account types differ from time types: use the TAT form (e.g. 'TATVAC_REC'), not 'VACATION'. An empty result can mean the account type code is wrong rather than no balance.

list_time_account_balances

List an employee's SAP SuccessFactors time account balances for one account type, paged. Account types use the TAT form (e.g. 'TATVACREC'), not 'VACATION' or the TT time type. An empty result can mean the account type code is wrong rather than no balance.

get_user

Get one SAP SuccessFactors employee by userId (not login username): name, email, status ('t' active, 'f' inactive), department, division, location, title, hire date. Pass expand='manager' to get the manager's userId and name. Use list_users to find the userId from a name.

list_users

List employees from SAP SuccessFactors with OData $filter, $select, $orderby and paging (up to 1000 per page; total_count gives the full count). Returns only active users unless the filter names status. Use substringof, not contains; title is not filterable. Use this to find a userId from a name before calling other tools.

create_user

Create an SAP SuccessFactors user. Only userId (unique, permanent) and status are required; name, email, hire date, department, division, location, title, job code, time zone and custom fields are optional. Check the userId is free with getuser first. There is no delete tool; deactivate with updateuser status 'inactive'.

update_user

Update an SAP SuccessFactors user. Only the fields passed change (partial update): username, names, email, status, hire date, department, division, location, title, job code, time zone or custom fields. SAP edits only active users, so field changes are applied before deactivating or after reactivating. Use list_users to find the userId.

validate_credential

Validate SAP SuccessFactors credentials. Verifies credentials during setup.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's SAP SuccessFactors  MCP server

FAQs on using Merge's SAP SuccessFactors  MCP server

Explore other MCP servers built and managed by Merge

weather
Weather
webflow
Webflow
whatsapp
WhatsApp Business
whoop
WHOOP
wikipedia
Wikipedia
wix
Wix
wordpress
WordPress
workday
Workday
x
X
xero
Xero
yelp
Yelp
you_com
You.com
youtrack
YouTrack
youtube
YouTube
zendesk
Zendesk
zendesk_sell
Zendesk Sell
zoho_books
Zoho Books
zohocliq
Zoho Cliq
zohocrm
Zoho CRM
zohodesk
Zoho Desk
zoom
Zoom
zoominfo
ZoomInfo
zoom_phone
Zoom Phone

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now