MCP FactorialHR vs MCP Server Apple Events
A side-by-side look at the MCP FactorialHR and MCP Server Apple Events MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP FactorialHR for workplace & productivity work as a local process; choose MCP Server Apple Events for workplace & productivity as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose MCP FactorialHR when
- You need dedicated capabilities in the Workplace & Productivity domain.
- You prefer a local stdio subprocess transport.
- You want tools like
factorial_discover, factorial_employees, factorial_teams.
Choose MCP Server Apple Events when
- You need dedicated capabilities in the Workplace & Productivity domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: No auth required.
- You have the keys it needs:
EVENTKIT_CLI_TIMEOUT_MS, EVENT_PERMISSION_TIMEOUT_MS. - You want tools like
reminders_tasks, reminders_subtasks, reminders_lists.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Workplace & Productivity | Workplace & Productivity |
| Quality signal | 61/100 · Good | 64/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | No auth required |
| Pricing | Not declared | Free |
| Required env vars | None listed | EVENTKIT_CLI_TIMEOUT_MSEVENT_PERMISSION_TIMEOUT_MS |
| Verified owner | Community listing | Community listing |
| GitHub stars | 3 | 227 |
| Directory activity | 5 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 14 | 5 |
| Full listing | View MCP FactorialHR | View MCP Server Apple Events |
Tools & capabilities
MCP FactorialHR tools 14
factorial_discoverList available FactorialHR tool categories and their actions. Use this first to understand what operations are available.factorial_employeesManage employees: list, get, search, create, update, terminatefactorial_teamsManage teams: list, get, create, update, deletefactorial_locationsManage locations: list, get, create, update, deletefactorial_contractsContract and salary data: list, get with employee, filter by job role/levelfactorial_time_offManage leave requests: list, get, create, update, cancel, approve, reject, view types and allowancesfactorial_attendanceAttendance (registro horario): list/get/create/update/delete shift records, clock_in, clock_out and status for live clocking, gaps and audit to find days that do not match the contract, log_range / log_days to enter many days at once, and list_edit_requests / create_edit_request for days whose timesheet has already been signed off. Without date and time, clock_in and clock_out record the current moment; given both, they record the declared moment instead, for someone who forgot to clock and knows when they started or stopped. A declared moment in the future is refused before anything is sent, and clock_out with a declared moment is refused if nothing is open or if it would close a shift before it started. Bulk writes, writes for another employee and edit requests preview first: the call returns a plan and a confirmation_token, and nothing is written until the identical call is repeated with that token within 15 minutes. audit, gaps and every preview begin with a Data read line saying how much of the window was actually read; audit reports a day Factorial returned nothing for as no_contract_data, and log_range never writes such a day (log_days, which takes explicit dates, will). Times are HH:MM in company local time, applied by Factorial in the company zone; the server never converts. Declared time versus entry time: a shift carries two independent sets of timestamps. The declared working time is date, clock_in, clock_out and, for a shift that crosses midnight, reference_date; these are inputs, and they are what the attendance sheet and the hour totals show. Separately, Factorial sets created_at, updated_at, in_source and out_source on the server to record when and how the record was entered; they are read-only through this API and no action here can set or change them. For example, a record written on 2026-09-07 for 2024-01-02 09:59 comes back with date: 2024-01-02, clock_in: 09:59, created_at of 2026-09-07 and in_source: api; that is the correct and only correct outcome. Both facts are true at once: a backfilled record shows the real working day on the attendance sheet while Factorial's activity log shows it was entered later through the API.factorial_documentsDocument management: list folders, list/get documents, search, download (OAuth2 required for downloads)factorial_job_catalogView job roles and levelsfactorial_projectsProject management: projects, tasks, workers, time records. Full CRUD operations.factorial_trainingTraining programs, sessions, and enrollments. Full CRUD operations.factorial_work_areasManage work areas within locations- +2 more on the listing page
MCP Server Apple Events tools 5
reminders_tasksPriority, tags, subtasks. `startDate` is set via `update`, not `create`; on `read` it scopes the due-date window alongside `endDate`. Cross-list moves unsupported.reminders_subtasksStored in the notes field (human-readable in Reminders.app).reminders_listsRename via `name` → `newName`.calendar_eventsAll-day inferred from date format. Cross-calendar moves unsupported. `span` scopes recurring deletes. `attendees` (update) invites addresses; `occurrenceDate` (delete) excepts one occurrence of a series — both need extra setup, see [Attendees and single occurrences](#attendees-and-single-occurrence…calendar_calendarsWithout a date range, every calendar EventKit reports, with its `source` and write permission. With `startDate`/`endDate`, calendars holding ≥1 event in the window, annotated with an event count.
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
MCP FactorialHR
{
"mcpServers": {
"mcp-factorialhr": {
"command": "npx",
"args": [
"-y",
"@t4dhg/mcp-factorial"
]
}
}
}
MCP Server Apple Events
{
"mcpServers": {
"mcp-server-apple-events": {
"command": "npx",
"args": [
"-y",
"mcp-server-apple-events"
],
"env": {
"EVENTKIT_CLI_TIMEOUT_MS": "YOUR_EVENTKIT_CLI_TIMEOUT_MS_HERE",
"EVENT_PERMISSION_TIMEOUT_MS": "YOUR_EVENT_PERMISSION_TIMEOUT_MS_HERE"
}
}
}
}
Frequently asked questions
MCP FactorialHR is categorized under Workplace & Productivity and uses a local stdio subprocess. MCP Server Apple Events belongs to Workplace & Productivity and uses a local stdio subprocess. Pick MCP FactorialHR for workplace & productivity work and MCP Server Apple Events for workplace & productivity.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
MCP FactorialHR has no declared pricing — check the project's own site. MCP Server Apple Events is listed as free. Auth: no auth required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add mcp-factorialhr and mcp-server-apple-events as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, MCP FactorialHR has a quality signal of 61/100 (Good) with 5 views, 0 installs and 3 GitHub stars. MCP Server Apple Events has 64/100 (Good) with 1 views, 0 installs and 227 GitHub stars.