CharlieHR MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.19.4Updated Nov 7, 2026

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

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowBusiness & Commerce

Overview

AI-generated overview

Hosted CharlieHR connector that lets an assistant read team members, offices, teams, leave, allowances and salaries, and add a note to a team member.

What you can do
  • Look up the company, its offices and teams, and team member profiles with managers and job details
  • Read working locations and working weeks for team members
  • List leave requests, leave allowances, allowance adjustments, non-holiday leave balances, leave types, company holidays and restricted dates
  • Read salary records and salary history (sensitive, needs salary access)
  • List team member note types and notes, and add a custom note to a team member
  • Check usage, request a feature, upgrade or cancel the subscription
When to use it
Useful when an assistant should answer HR questions from CharlieHR, such as who is on leave next week, how much holiday allowance someone has left, or who is in a given office and who their manager is, without switching tools.
Requirements
Remote MCP endpoint; nothing to install locally. Sign-in is via OAuth: add only the server URL to the client and log in with CharlieHR credentials (a CharlieHR API client id and client secret). A free plan allows 50 tool calls per month; paid plans raise the limit.
Before you install
Replies include sensitive personal data: date of birth, gender, marital status, personal email, phone, home address, notes and salary records. National Insurance numbers and payroll/tax fields are redacted, but other personal data is not. One tool writes: adding a note to a team member is immediate and visible to whoever the note type permits, so confirm before use. Paid plans cost money and are billed through a Stripe checkout link; cancellation runs to the end of the paid period with no…

Installation

In SourceWeft

  1. Open CharlieHR MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fcharliehr/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "charliehr-by-usefulapi": {
      "type": "http",
      "url": "https://charliehr.usefulapi.io/mcp"
    }
  }
}

README

CharlieHR MCP by usefulapi

Use CharlieHR from Claude, Cursor, or any MCP client — read team members, offices, teams, working locations and working weeks, leave requests, leave allowances and adjustments, company holidays and salaries, and add a note to a team member (the write needs an explicit confirmation). National Insurance numbers are removed from replies, and payroll and tax fields are dropped. Hosted, no local install: connect with a CharlieHR API client id and client secret.

Live endpoint: https://charliehr.usefulapi.io/mcp · Homepage: https://usefulapi.io/charliehr

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://charliehr.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http charliehr https://charliehr.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "charliehr": {      "url": "https://charliehr.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your CharlieHR credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/charliehr/

Tools

ToolTypeWhat it does
charliehr_get_companyreadGet company
charliehr_list_officesreadList offices
charliehr_get_officereadGet office
charliehr_list_teamsreadList teams
charliehr_get_teamreadGet team
charliehr_list_team_membersreadList team members
charliehr_get_team_memberreadGet team member
charliehr_get_team_member_working_locationreadGet a team member's working location
charliehr_get_team_member_working_weeksreadGet a team member's working weeks
charliehr_list_working_locationsreadList working locations
charliehr_list_leave_requestsreadList leave requests
charliehr_get_leave_requestreadGet leave request
charliehr_list_team_member_leave_requestsreadList a team member's leave requests
charliehr_list_leave_allowancesreadList leave allowances
charliehr_get_team_member_leave_allowancereadGet a team member's leave allowance
charliehr_list_allowance_adjustmentsreadList a team member's allowance adjustments
charliehr_list_non_holiday_leave_allowancesreadList a team member's non-holiday leave allowances
charliehr_list_leave_typesreadList leave types
charliehr_get_leave_typereadGet leave type
charliehr_list_company_holidaysreadList company holidays
charliehr_list_restricted_datesreadList restricted dates
charliehr_list_salariesreadList salaries
charliehr_list_team_member_salariesreadList a team member's salaries
charliehr_list_team_member_note_typesreadList team member note types
charliehr_get_team_member_note_typereadGet team member note type
charliehr_list_team_member_notesreadList a team member's notes
charliehr_create_team_member_notewriteAdd a note to a team member
charliehr_usage_statusmetaUsage status (free-tier meter)
charliehr_request_featuremetaRequest a missing feature
charliehr_upgrademetaUpgrade to Pro or Pro+
charliehr_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per company)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with charliehr_upgrade (it returns a Stripe Checkout link). Cancel any time with charliehr_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running charliehr_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT © usefulapi. Not affiliated with or endorsed by CharlieHR.

Source: servers/charliehr/README.md at commit 4046075

Tools

27

charliehr_get_company

Get company

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

Takes no parameters.

charliehr_list_offices

List offices

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

Parameterspageper_page

charliehr_get_office

Get office

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

Parametersoffice_idrequired

charliehr_list_teams

List teams

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

Parameterspageper_page

charliehr_get_team

Get team

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

Parametersteam_idrequired

charliehr_list_team_members

List team members

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.

Parameterspageper_page

charliehr_get_team_member

Get team member

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}.

Parametersteam_member_idrequired

charliehr_get_team_member_working_location

Get a team member's working location

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

Parametersdateteam_member_idrequired

charliehr_get_team_member_working_weeks

Get a team member's working weeks

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.

Parametersteam_member_idrequired

charliehr_list_working_locations

List working locations

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

Parametersdatepageper_page

charliehr_list_leave_requests

List leave requests

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.

Parameterspageend_dateper_pagestart_date

charliehr_get_leave_request

Get leave request

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

Parametersleave_request_idrequired

charliehr_list_team_member_leave_requests

List a team member's leave requests

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

Parameterspageend_dateper_pagestart_dateteam_member_idrequired

charliehr_list_leave_allowances

List leave allowances

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

Parameterspageper_page

charliehr_get_team_member_leave_allowance

Get a team member's leave allowance

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

Parametersteam_member_idrequired

charliehr_list_allowance_adjustments

List a team member's allowance adjustments

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.

Parameterspageper_pageteam_member_idrequired

charliehr_list_non_holiday_leave_allowances

List a team member's non-holiday leave allowances

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

Parametersteam_member_idrequired

charliehr_list_leave_types

List leave types

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

Parameterspageper_page

charliehr_get_leave_type

Get leave type

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

Parametersleave_type_idrequired

charliehr_list_company_holidays

List company holidays

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

Parameterspageend_dateper_pagestart_date

charliehr_list_restricted_dates

List restricted dates

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.

Parameterspageend_dateper_pagestart_date

charliehr_list_salaries

List salaries

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.

Parameterspageper_page

charliehr_list_team_member_salaries

List a team member's salaries

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

Parameterspageper_pageteam_member_idrequired

charliehr_list_team_member_note_types

List team member note types

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

Parameterspageper_page

charliehr_get_team_member_note_type

Get team member note type

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

Parametersnote_type_idrequired

charliehr_list_team_member_notes

List a team member's notes

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.

Parameterspageper_pageteam_member_idrequired

charliehr_create_team_member_note

Add a note to a team member

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.

Parameterscontentrequiredteam_member_idrequiredteam_member_note_type_idrequired

Version history

16
  1. v1.19.4LatestNov 7, 2026
  2. v1.18.3Nov 5, 2026
  3. v1.18.2Nov 5, 2026
  4. v1.18.1Nov 4, 2026
  5. v1.18.0Nov 3, 2026
  6. v1.17.1Nov 3, 2026
  7. v1.16.0Nov 1, 2026
  8. v1.14.0Oct 31, 2026
  9. v1.13.0Oct 31, 2026
  10. v1.12.2Oct 30, 2026
  11. v1.12.0Oct 30, 2026
  12. v1.7.0Oct 26, 2026
  13. v1.4.3Oct 25, 2026
  14. v1.4.0Oct 25, 2026
  15. v1.3.0Oct 24, 2026
  16. v1.0.0Oct 23, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations