Sage HR MCP server
Sage HR in any MCP client, through Memtro: Sage HR does not publish this server. Memtro's Sage HR connector reads Sage HR through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.
What the model can do
Sage HR (formerly CakeHR): employees with position, team, manager and start date, leavers, teams and positions, time-off policies and requests, who is out of office, recruitment positions and applicants, termination reasons, on/offboarding categories, timesheet projects and documents. Can book time off, create, update, terminate or rehire employees, add applicants, record workdays and clock times, add on/offboarding template tasks, log and decide KIT days, create or close timesheet projects and delete documents. No personal details (birth date, address, phone, identity or pay) are read or written.
Reads
sagehr_list_employeesEmployees in Sage HR: name, work email, position, team, manager (reports_to_employee_id), employment status, employee number and start date.sagehr_list_teamsTeams with their managers' and members' employee ids, and the company's positions (job titles with codes).sagehr_list_time_off_policiesTime-off policies (holiday, sickness and so on): name, unit (days or hours), default allowance, carry-over and how it accrues.sagehr_list_time_off_requestsTime-off requests overlapping a window of under 65 days (default this month): employee id, policy name, status, dates, part of day, hours…sagehr_list_out_of_officeWho is out of office on a day (default today), by name, with the time-off policy, dates and hours.sagehr_list_job_positionsRecruitment positions (open roles): title, status (draft, published, internal, completed, cancelled), team, location, employment type…sagehr_list_applicantsApplicants for one recruitment position: name, email, source, current stage, applied, hired or disqualified dates, tags and average score.sagehr_list_termination_reasonsTermination reasons (id, name, code, voluntary or involuntary), for sagehr_terminate_employee.sagehr_list_boarding_categoriesOnboarding or offboarding task categories (id and title), for sagehr_create_boarding_task.sagehr_list_timesheet_projectsTimesheet projects (id, name, code, dates, hour limit), for closing one.sagehr_list_documentsEmployee documents in Sage HR: id, category, file name, type, size and dates, filtered by employee or category.
Acts, when you ask
These change something in Sage HR. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.
sagehr_create_time_off_requestBook time off in Sage HR for an employee under a time-off policy.sagehr_create_employeeCreate an employee in Sage HR with a work email, first and last name, start date and position title.sagehr_update_employeeChange an employee's first or last name, work start date, location, team, manager (leader_id), position…sagehr_terminate_employeeTerminate an employee in Sage HR with a last working day and a termination reason (ids from sagehr_list_termination_reasons).sagehr_rehire_employeeRehire a terminated employee in Sage HR from a new start day.sagehr_create_applicantAdd an applicant to an open recruitment position in Sage HR (not a closed or completed one).sagehr_create_workdayRecord a worked day in an employee's Sage HR timesheet: start and end time, and an optional break.sagehr_clock_in_outClock an employee in and out on one day in Sage HR (works only when API time clocking is on for their timesheet group).sagehr_create_boarding_taskAdd a task to Sage HR's onboarding or offboarding checklist template.sagehr_create_kit_dayLog a keeping-in-touch (KIT) day, or a run of them, for an employee within a leave under a policy in Sage HR.sagehr_decide_kit_dayApprove, decline or cancel a keeping-in-touch (KIT) day in Sage HR.sagehr_create_timesheet_projectCreate a timesheet project in Sage HR that employees can log time against.sagehr_close_timesheet_projectClose a timesheet project in Sage HR so no more time is logged to it.sagehr_delete_documentPermanently delete an employee document in Sage HR (ids from sagehr_list_documents).
Connect it
First connect Sage HR on Dashboard → Connections, then add Memtro to your client once. The Sage HR tools appear alongside the tools of everything else you have connected; nothing is configured per connector.
Claude Code
The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.
claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...Cursor
Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.
{
"mcpServers": {
"memtro": {
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Claude Desktop
Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…
OpenCode
A remote server in opencode.json.
{
"mcp": {
"memtro": {
"type": "remote",
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Pi
One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.
Any other client
Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.
Who may use it
The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared Sage HR connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.
Ask it like this
- › Who is off next week?
- › Who is out of office today?
- › How many applicants does the senior designer role have, and at what stage?
- › What is the default holiday allowance, and does it carry over?
- › Book 22 and 23 December off for Dan Fletcher under annual leave
Questions
- Is this an official Sage HR MCP server?
- No. It is Memtro's MCP server with Memtro's Sage HR connector behind it: the connector reads Sage HR through its API with the credentials you connect on Dashboard → Connections, and Sage HR publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
- What does it cost?
- Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
- Can it change anything in Sage HR?
- Only when you ask, and only what it has been granted: book time off for an employee under a policy (enters the policy's approval flow); create an employee (welcome email only when asked); update an employee's name, start date, team, manager, location, position, number or approvers; terminate an employee on a last working day; rehire a terminated employee; add an applicant to an open recruitment position (thank-you email only when asked); record a worked day for an employee; clock an employee in and out on a day; add a task to the onboarding or offboarding checklist template; log a keeping-in-touch day, or approve, decline or cancel one; create a timesheet project, or close one; delete an employee document (permanent). Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
- Which clients work?
- Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.