Skip to main content
Glama
dragosh29

Edays MCP server

by dragosh29

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
EDAYS_SYSTEMNoThe subdomain of your Edays system: acme for https://acme.e-days.co.uk. Required unless EDAYS_BASE_URL is set. Letters, digits and hyphens only; anything else (such as the full host name) stops the server at start-up.
EDAYS_BASE_URLNoOverrides the system URL, e.g. https://acme.e-days.co.uk. Used by the tests.
EDAYS_CLIENT_IDYesThe Api Client user's Client ID, sent in the token request body.
EDAYS_ALLOW_WRITESNoSet to true to register book_absence, update_absence and cancel_absence. Off by default.false
EDAYS_CLIENT_SECRETYesThe Api Client user's Client Secret, sent in the token request body. Never logged or included in an error message.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_usersA

Employees on this Edays system with partner_id (the key other tools take), name, job title, leaver flag, settings template, start dates, FTE and hours per day. GET /api/v2/users is not marked as paged in the documentation; the whole list is fetched (following the edays-pagination-* headers page by page if the system does page it) and filtered locally: query matches part of the name or partner ID, and leavers are skipped unless asked for. Contact and HR details (email, login, phones, address, next of kin, date of birth, payroll and employee numbers, pay) only with include_contact_details.

get_userA

One employee by partner ID, with the groups they belong to (team, location and so on) and their authorisation hierarchy (who approves their requests: step one and step two authorisers and alternates, as partner IDs). Contact and HR details only with include_contact_details.

list_absencesA

Absence records (holiday, sickness and other absence types) across the system or for one user, with status, start and end, duration and the absence_type_id (name it with list_absence_types). Filters are sent to the API as documented: date_from/date_to (datestart/dateend), record_type (1 planned, 2 unplanned), absence_type_id, and on the system-wide endpoint also user_id (Edays GUID), group_id, created_since and modified_since. With partner_user_id the per-user endpoint GET /api/v2/users/{id}/absences is used instead, which documents only the first three filters. Whole API pages of min(100, max_results) records are returned; the note says how to continue. Payroll and employee numbers only with include_contact_details.

get_absenceA

One absence record by its GUID: user, absence type, status, start and end, duration, time unit, created and modified dates. Payroll and employee numbers only with include_contact_details.

list_absence_typesA

The absence types configured on the system (Holiday, Sickness and so on) with their record type (1 planned, 2 unplanned) and booking and calendar-visibility flags. The API also returns Custom Day Groups (record type discriminator 5) and Public Holiday Groups (6) from the same endpoint; they are kept unless record_type filters them out.

get_user_entitlementsB

Entitlement balances for one user. Deducting entitlements (holiday and the like, which count down: annual entitlement, transfers, pending, booked, taken, untaken, remaining, per booking period and element) and summing entitlements (sickness and the like, which count up: year to date, last 6 and 3 months, last 30 days), plus the entitlement pots they belong to. Booking period and time unit numbers are named from the documented lists (Current, MinusOne, PlusOne; Days, Minutes, Hours).

get_user_rotaB

The rota (working pattern) assignments of one user with their start dates, named from the system's rota list, and with include_patterns the public holiday and custom day patterns applied to the user, named from those lists. Up to six API calls.

list_public_holidaysA

The public holiday patterns held in the system (for example 'UK Public Holidays') and, with include_custom_days, the custom day patterns (for example 'Christmas Shutdown'), as id and name. The API lists the patterns only; the dates inside a pattern are not exposed by API V2.

list_groupsA

The group types on the system (Country, Location, Team and so on) and the groups within each (England, Nottingham, Programming), with partner IDs. One call for the types plus one per type for its groups; give group_type_partner_id to fetch a single type.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 9 tools

Disambiguation4/5

Most tools target clearly distinct resources and verbs (list_users vs get_user, list_absences vs get_absence, entitlements vs rota). The main overlap is conceptual: list_absence_types also returns custom day and public holiday groups, blurring its boundary with list_public_holidays, but the descriptions call this out and help steer selection.

Naming Consistency5/5

Every tool follows a predictable get_/list_ + resource pattern in snake_case (list_users, get_user, get_user_rota), including consistent handling of nested resources like user entitlements and rota.

Tool Count5/5

9 tools is well-scoped for an HR/absence domain, each covering a distinct facet (holidays, groups, absence types, users, absences, entitlements, rota) without redundant entries.

Completeness3/5

The surface is entirely read-only: there is no way to book, update, delete, or approve an absence, yet the domain is fundamentally about managing absences, leaving an obvious lifecycle gap. Read coverage of users, absences, entitlements and rota is solid, so an agent can inspect but not act.

Maintenance

ActivityMaintained
ResponsivenessNo issues