CharlieHR MCP by usefulapi

io.usefulapi/charliehr

Read CharlieHR team members, leave, allowances, offices, teams and salaries; add team member notes.

Yes, your AI can use this right now.Answered a live MCP handshake in 366 ms with no sign-in needed and exposes 27 tools.
Is this your server? Claim the listing. Verified adds a vendor-confirmed mark on this page and matching app pages.
Claim with Verified — $49/moWant it in front of people comparing Productivity tools? Feature it — $149/mo

Connect it

Settings → Connectors → Add custom connector
URL: https://charliehr.usefulapi.io/mcp

27 tools, pulled live

Pulled straight from the server with tools/list on 2026-10-27.
charliehr_get_companyread-only

The Charlie company the API keys belong to: id, name, subdomain and logo. GET /company.

charliehr_list_officesread-only

List the company's offices: id, name, whether it is the head office, address, timezone, phone and email. GET /offices.

charliehr_get_officeread-only

One office by id. GET /offices/{id}.

charliehr_list_teamsread-only

List the company's teams with the ids of their team members. GET /teams.

charliehr_get_teamread-only

One team by id, with the ids of its team members. GET /teams/{id}.

charliehr_list_team_membersread-only

List the company's team members (employees): name, work and personal email, phone, address, office, manager, teams, job title, start date, employment status and leaving date. Sensitive fields included: date_of_birth, gender, married, personal email, phone and home address. National Insurance numbers, payroll id, starter declaration and student-loan flags are never returned. GET /team_members.

charliehr_get_team_memberread-only

One team member by id with the full profile (contact details, address, office, manager, teams, dates, employment status, job title, notes). Sensitive fields included: date_of_birth, gender, married, personal email, phone, home address and notes. National Insurance numbers (also inside notes), payroll id, starter declaration and student-loan flags are never returned. GET /team_members/{id}.

charliehr_get_team_member_working_locationread-only

Where one team member works on a date (custom overrides win over the default assignment). Defaults to today. GET /team_members/{id}/working_location.

charliehr_get_team_member_working_weeksread-only

The working-week segments of one team member (which days are full_day/morning/afternoon, weekly hours, from/to dates), company defaults and custom overrides. Not paginated. GET /team_members/{id}/working_weeks.

charliehr_list_working_locationsread-only

List the active working locations (the catalog). With a date, instead returns where each active team member works on that date. GET /working_locations.

charliehr_list_leave_requestsread-only

List leave requests of the whole company (id, team member, approver, status, request type, start/end date, amount and units, duration, details). Optionally only those in a date window. GET /leave_requests.

charliehr_get_leave_requestread-only

One leave request by id. GET /leave_requests/{id}.

charliehr_list_team_member_leave_requestsread-only

The leave requests of one team member, optionally only those in a date window. GET /team_members/{id}/leave_requests.

charliehr_list_leave_allowancesread-only

The current holiday allowance of every team member: allowance, used and remaining, in days and hours, with the leave period. GET /leave_allowances.

charliehr_get_team_member_leave_allowanceread-only

The current holiday allowance of one team member (allowance, used, remaining, in days and hours, with the period). GET /team_members/{id}/leave_allowance.

charliehr_list_allowance_adjustmentsread-only

All holiday allowance adjustments of one team member across every leave period (description, days/hours, carryover flag, creator, period). GET /team_members/{id}/allowance_adjustments.

charliehr_list_non_holiday_leave_allowancesread-only

Days taken and limit for each non-holiday leave type (sick, compassionate...) of one team member. GET /team_members/{id}/non_holiday_leave_allowances.

charliehr_list_leave_typesread-only

The enabled leave types (Holiday, Sick...): id, name, deductible, default, auto-approved, sensitive. GET /leave_types.

charliehr_get_leave_typeread-only

One leave type by id. GET /leave_types/{id}.

charliehr_list_company_holidaysread-only

The company's holidays (bank holidays and closures): name, start/end date, duration, deductible. Optionally only those in a date window. GET /company_holidays.

charliehr_list_restricted_datesread-only

The dates on which leave is restricted (e.g. a year-end freeze): name, start/end date, duration. Optionally only those in a date window. GET /restricted_dates.

charliehr_list_salariesread-only

SENSITIVE: the salary records of all team members (job title, pay rate, pay period, frequency, currency, effective date, employment type). Needs API keys with access to salary data. GET /salaries.

charliehr_list_team_member_salariesread-only

SENSITIVE: the salary history of one team member (job title, pay rate, currency, effective date). GET /team_members/{id}/salaries.

charliehr_list_team_member_note_typesread-only

The custom note types (fields such as Employee No. or Laptop Serial Number) with who may see them. GET /team_member_note_types.

charliehr_get_team_member_note_typeread-only

One note type by id. GET /team_member_note_types/{id}.

charliehr_list_team_member_notesread-only

The custom notes (label and content) stored on one team member (the content of a note labelled as a National Insurance number, and NI-number-looking text, is redacted). GET /team_members/{id}/notes.

charliehr_create_team_member_notecan modify

WRITE: add a custom note (a value for one note type, e.g. an employee number) to a team member in Charlie. It is created immediately and visible to whoever the note type's permissions allow. Use charliehr_list_team_member_note_types for the note type id. POST /team_members/{id}/notes.

Alternatives in Productivity

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”