Lucca MCP server

Prebuilt SnapLogic agentic-tool pipelines that let an LLM read from and act on Lucca, callable as MCP tools via Pipeline Execute. Published in the SnapLogic pattern catalog.

Overview

This tool pack gives an agent access to Lucca's HR suite, covering people, absences, timesheets, expenses, and variable pay, through two parallel tool sets: a Legacy v3 API set (broader, including timesheets and user creation) and a newer Latest API set (cleaner pagination, same people and absence reads). Choose one set per deployment to match the API your Lucca tenant exposes.

For setup instructions, see SnapLogic MCP Server quickstart.

Example Prompts

  • Approve leave request 789
  • Reject leave request 812 with the comment 'clashes with the release week'
  • Approve that holiday request and add a note saying enjoy your break
  • Sign off on leave request 456 for me
  • Approve leave request 789 in Lucca
  • Decline leave request 812 and explain that cover is unavailable
  • Approve this time-off request with a thumbs-up comment
  • Record my decision to approve request 456
  • Submit an expense claim called 'Client lunch - Paris' for item 4521
  • Create a claim for my Paris travel expense line

Tools

Tool Name Functions
LuccaApproveLeaveRequest Approve or reject a leave request with an optional comment (Legacy v3 API).
LuccaApproveLeaveRequestV2 Approve or reject a leave request on the newer Latest API.
LuccaCreateExpenseClaim Create an expense claim from a captured temporary expense item.
LuccaCreateTimeEntry Log a time entry for an employee against an activity.
LuccaCreateUser Create a new employee record in Lucca.
LuccaGetLeaveBalance Retrieve an employee's individual leave records over a date window (Legacy v3 API).
LuccaGetLeaveBalanceV2 List an employee's leave accounts on the newer Latest API.
LuccaGetUser Fetch one employee's full Lucca profile by user id (Legacy v3 API).
LuccaGetUserV2 Fetch one employee record by id on the newer Latest API.
LuccaListDepartments List Lucca departments with hierarchy, optionally under one parent (Legacy v3 API).
LuccaListDepartmentsV2 Page through Lucca departments on the newer Latest API.
LuccaListExpenseClaims List expense claims by owner, status, and declaration date.
LuccaListLeaveRequests List leave requests by owner and status code (Legacy v3 API).
LuccaListLeaveRequestsV2 Page through leave requests by owner and named status on the newer Latest API.
LuccaListTimeEntries List logged time entries by employee and date window.
LuccaListVariableComp List variable compensation items by employee and compensation nature, newest period first.
LuccaSearchUsers Search Lucca employees by email, login, department, or employment status (Legacy v3 API).
LuccaSearchUsersV2 Search Lucca employees by email and department on the newer Latest API.

Set up the MCP Server tools

  1. Download lucca_tools.zip.
  2. In SnapLogic Designer, open the target project space (or create one), then choose Import Project / Import Pipelines and select the downloaded lucca_tools.zip. Designer unpacks each pipeline into the project.
  3. Attach the required account to the connectivity snaps (see Connection Setup).
  4. Expose the project as an MCP server — each pipeline becomes a tool named after its label. New to this? Start with the MCP quickstart, then use the MCP Server Pipeline Builder to generate the server from the imported pipelines.

Configure account

Attach an API Suite account (OAuth 2.0 or Bearer token) to the HTTP Client snap in Designer after import.

These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute.

See the SnapLogic account documentation for this connector: API Suite Account Configuration.

Important: These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute. Credentials live in the SnapLogic account store, never in the pipeline JSON.

LuccaApproveLeaveRequest

Approves or rejects a leave request with an optional comment, defaulting to approve unless the caller explicitly passes false. Use LuccaApproveLeaveRequestV2 for the same action on the newer Latest API.

Parameter Type Default Description
leaveRequestId* string

Id of the leave request to decide on.

approved string

Set to false to reject; anything else (or omitted) approves.

comment string

Optional comment attached to the decision.

* Required parameter.

Try asking:

  • Approve leave request 789
  • Reject leave request 812 with the comment 'clashes with the release week'
  • Approve that holiday request and add a note saying enjoy your break
  • Sign off on leave request 456 for me

LuccaApproveLeaveRequestV2

Approves or rejects a leave request on the Lucca Latest API, with the same approve-by-default behavior and optional comment as LuccaApproveLeaveRequest. Use this version when your Lucca tenant is on the Latest API.

Parameter Type Default Description
leaveRequestId* string

Id of the leave request to decide on.

approved string

Set to false to reject; anything else (or omitted) approves.

comment string

Optional comment attached to the decision.

* Required parameter.

Try asking:

  • Approve leave request 789 in Lucca
  • Decline leave request 812 and explain that cover is unavailable
  • Approve this time-off request with a thumbs-up comment
  • Record my decision to approve request 456

LuccaCreateExpenseClaim

Creates an expense claim in Lucca by combining a title with an existing temporary expense item id, submitting the draft line as a formal claim. This is a Legacy v3 API tool; attach exactly one expense item per call.

Parameter Type Default Description
title* string

Title of the expense claim.

expenseTempItemId* string

Id of the temporary expense item to attach to the claim.

* Required parameter.

Try asking:

  • Submit an expense claim called 'Client lunch - Paris' for item 4521
  • Create a claim for my Paris travel expense line
  • Raise an expense claim titled 'October conference' from temp item 8890
  • Turn expense item 4521 into a submitted claim

LuccaCreateTimeEntry

Logs a time entry for an employee with a start timestamp, optional end time, activity category, and comment. Use it to record work that has not yet been entered, typically after reviewing existing entries with LuccaListTimeEntries.

Parameter Type Default Description
ownerId* string

Employee id the time entry belongs to.

startsAt* string

Entry start timestamp, e.g. 2026-05-12T09:00:00.

endsAt string

Entry end timestamp.

axisSectionId string

Activity axis section id to book the time against.

comment string

Free-text note on the entry.

* Required parameter.

Try asking:

  • Log 9am to 5pm on 12 May for employee 123
  • Record eight hours of project work for user 88 yesterday against axis section 42
  • Book my Tuesday to the client project with the comment 'onsite workshop'
  • Create a time entry starting 2026-05-12T09:00:00 for employee 123

LuccaCreateUser

Creates a new employee record in Lucca with identity and contract details, optionally placing them in a legal entity, department, and role. Use it to complete a new-hire setup end to end, after resolving the department id with LuccaListDepartments.

Parameter Type Default Description
firstName* string

Employee's first name.

lastName* string

Employee's last name.

login* string

Lucca login for the new user.

mail* string

Employee's email address.

dtContractStart* string

Contract start date, e.g. 2026-07-01.

legalEntityId string

Legal entity id the employee belongs to.

departmentId string

Department id to place the employee in.

rolePrincipalId string

Principal role id to assign to the new user.

* Required parameter.

Try asking:

  • Create a Lucca user for Marie Dupont, login mdupont, email [email protected], starting 1 July
  • Onboard a new hire in department 5 under legal entity 1 starting next Monday
  • Add Thomas Bernard to Lucca with a contract start of 2026-09-01
  • Set up a Lucca account for our new engineer and put them in the Engineering department

LuccaGetLeaveBalance

Retrieves individual leave records for an employee over a date window, showing what was taken or booked within a period by account and day. Use LuccaGetLeaveBalanceV2 for the same information on the newer Latest API.

Parameter Type Default Description
ownerId string

Employee id whose leave records to return.

date string

Lucca date filter for the window, e.g. since,2026-01-01 (defaults to since,2026-01-01).

leaveAccountId string

Restrict to a single leave account id.

maxResults string 200

Page size cap on the returned records (default 200).

Try asking:

  • How much leave has employee 123 taken since January?
  • Show me the leave records for user 88 this year
  • What's booked against leave account 4 for employee 123?
  • List every half-day of absence for user 210 since 2026-01-01

LuccaGetLeaveBalanceV2

Lists an employee's leave accounts on the Lucca Latest API, returning the accounts themselves rather than individual dated leave lines. Use the Legacy LuccaGetLeaveBalance when you need dated leave detail; use this when you just want to see which accounts an employee has.

Parameter Type Default Description
ownerId string

Employee id whose leave accounts to return.

limit string 200

Number of leave accounts per page (default 200).

page string 1

1-based page number to fetch (default 1).

Try asking:

  • What leave accounts does employee 123 have?
  • Show me the leave account balances for user 88
  • List the leave accounts in Lucca, 50 per page
  • Fetch page 2 of the leave accounts for employee 210

LuccaGetUser

Retrieves the full profile of a Lucca employee by id, including reporting line, legal entity, and contract dates. Use LuccaGetUserV2 for the same lookup on the newer Latest API.

Parameter Type Default Description
user_id* string

Lucca user id of the employee to retrieve.

* Required parameter.

Try asking:

  • Show me the Lucca profile for user 123
  • Who is employee 4521's manager?
  • What is the contract start date for user 88?
  • Which legal entity does Lucca user 210 belong to?

LuccaGetUserV2

Retrieves a single employee record on the Lucca Latest API, returning the fields the versioned endpoint provides. Use the Legacy LuccaGetUser when you specifically need manager, legal entity, or contract date fields.

Parameter Type Default Description
user_id* string

Lucca employee id to retrieve.

* Required parameter.

Try asking:

  • Pull the employee record for id 123 from Lucca
  • Get details on Lucca employee 4521
  • Show me the full record for employee 88

LuccaListDepartments

Lists Lucca departments with their ids and hierarchy, letting you resolve a department name to the id other tools expect. Filter by parent id to walk one level of the org tree at a time.

Parameter Type Default Description
parentId string

Return only departments whose parent is this id. Omit for the whole list.

maxResults string 200

Page size cap on the returned list (default 200).

Try asking:

  • List all departments in Lucca
  • What are the sub-departments under department 3?
  • Find the department id for Engineering
  • Show me the org hierarchy from Lucca

LuccaListDepartmentsV2

Pages through the Lucca department list on the Latest API without parent-id filtering, returning the full department page. Use it when your tenant is on the Latest API; use LuccaListDepartments for the Legacy version, which supports parent-id filtering.

Parameter Type Default Description
limit string 200

Number of departments per page (default 200).

page string 1

1-based page number to fetch (default 1).

Try asking:

  • List the departments in Lucca
  • Give me the first 50 departments
  • Fetch page 2 of the department list
  • What departments exist in our Lucca tenant?

LuccaListExpenseClaims

Lists Lucca expense claims, filterable by employee, status, and declaration date, so you can answer spend and approval-queue questions. This is a Legacy v3 API tool with no Latest API equivalent.

Parameter Type Default Description
ownerId string

Restrict to claims belonging to one employee id.

statusId string

Claim status to filter by, e.g. Approved.

declaredOn string

Lucca date filter on the declaration date.

maxResults string 100

Page size cap on the returned claims (default 100).

Try asking:

  • Show me the approved expense claims for employee 123
  • What expense claims are still awaiting approval?
  • List all claims declared this quarter with their totals
  • How much has user 88 claimed, and in what currency?

LuccaListLeaveRequests

Lists leave requests in Lucca, filterable by employee and numeric status code, covering absence queues and history questions. Use LuccaListLeaveRequestsV2 for the same listing on the Latest API, where statuses are named strings.

Parameter Type Default Description
ownerId string

Restrict to leave requests belonging to one employee id.

status string

Lucca numeric leave-request status code, e.g. 0 for pending.

maxResults string 100

Page size cap on the returned list (default 100).

Try asking:

  • Show me all pending leave requests
  • What leave has employee 123 booked?
  • List the leave requests waiting for approval
  • How many days is each open leave request in the queue?
  • Give me the last 50 leave requests

LuccaListLeaveRequestsV2

Lists leave requests on the Lucca Latest API, filtered by employee and named status (such as 'pending'), with page-based pagination. Use the Legacy LuccaListLeaveRequests when you need numeric status codes or a total count.

Parameter Type Default Description
ownerId string

Restrict to leave requests belonging to one employee id.

status string

Named leave-request status, e.g. pending.

limit string 100

Number of requests per page (default 100).

page string 1

1-based page number to fetch (default 1).

Try asking:

  • List the pending leave requests in Lucca
  • What leave requests does employee 123 have?
  • Show me approved leave, 100 per page
  • Fetch page 2 of the leave request list

LuccaListTimeEntries

Lists logged time entries for an employee over a date window, showing hours, activity, and comments for each entry. Use it to answer timesheet questions such as what someone logged last week or how a period was filled.

Parameter Type Default Description
ownerId string

Restrict to time entries belonging to one employee id.

startsAt string

Lucca date filter on the entry start, e.g. between,2026-05-01,2026-05-31.

maxResults string 100

Page size cap on the returned entries (default 100).

Try asking:

  • What did employee 123 log in May?
  • Show me this week's time entries for user 88
  • How many hours did user 123 book between 1 and 31 May?
  • List the timesheet entries with their activity and comments for last month

LuccaListVariableComp

Retrieves variable compensation items (bonuses, commissions, and similar pay elements) for one or more employees, returned newest period first. Use it for questions about someone's variable pay history or the latest bonus round.

Parameter Type Default Description
OwnerIds string

Employee id(s) whose variable compensation items to return.

NatureIds string

Compensation nature id(s) to filter by, e.g. bonus or commission types.

limit string 50

Number of items per page (default 50).

page string 1

1-based page number to fetch (default 1).

Try asking:

  • What variable compensation has employee 123 received?
  • Show me the most recent bonus items for user 88
  • List commission payments for this employee, 50 at a time
  • Pull the latest variable pay items across the team

LuccaSearchUsers

Finds Lucca employees by email fragment, login, department, or employment status, returning a list of matching people with their ids. Use it to resolve a person's name to an id before calling the leave, timesheet, or expense tools.

Parameter Type Default Description
mail string

Partial email match — any fragment of the address, e.g. a surname.

login string

Exact Lucca login to match.

departmentId string

Restrict results to a single department id.

formerEmployees string

Employment-status filter passed through to Lucca to include or target former employees.

maxResults string 100

Page size cap on the returned list (default 100).

Try asking:

  • Find the employee whose email contains dupont
  • Look up the Lucca user with login mdupont
  • List everyone in department 5
  • Show me former employees still on record in Lucca
  • Give me the first 20 people whose email mentions martin

LuccaSearchUsersV2

Searches Lucca employees by email and department on the Latest API, using exact email matching and page-based pagination. Use the Legacy LuccaSearchUsers for richer filtering by login or employment status.

Parameter Type Default Description
mail string

Email filter passed to the Latest API.

departmentId string

Restrict results to a single department id.

limit string 100

Number of employees per page (default 100).

page string 1

1-based page number to fetch (default 1).

Try asking:

  • Search Lucca for employees with the email dupont
  • Who is in department 12?
  • Get me page 2 of the employee list, 50 per page
  • Find the employee record for [email protected]