MCP FactorialHR
NPM · @T4DHG/MCP-FACTORIAL · SCANNED AUG 11
Full CRUD MCP server for FactorialHR: employees, teams, time off, projects, ATS, payroll.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 97 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency96
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to t4dhg/mcp-factorial). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 227 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability82
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 5281 tokens (~52/item across 101 items; 101 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management50
- Stability observed for 15 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @t4dhg/mcp-factorial
claude mcp add t4dhg-mcp-factorial -- npx -y @t4dhg/mcp-factorial
codex mcp add t4dhg-mcp-factorial -- npx -y @t4dhg/mcp-factorial
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"t4dhg-mcp-factorial": {
"type": "local",
"command": [
"npx",
"-y",
"@t4dhg/mcp-factorial"
],
"enabled": true
}
}
} openclaw mcp add t4dhg-mcp-factorial --command npx --arg -y --arg @t4dhg/mcp-factorial
mcp_servers:
t4dhg-mcp-factorial:
command: "npx"
args: ["-y", "@t4dhg/mcp-factorial"] {
"mcpServers": {
"t4dhg-mcp-factorial": {
"command": "npx",
"args": [
"-y",
"@t4dhg/mcp-factorial"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 11 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 10 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 8 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.
- 7 Aug 26 +4
- Known CVEs: partial → pass ▲ security
- Dependency health: partial → 0.86 functional
- 5 Aug 26 +2
- CVE-2026-69207 no longer affects this package ▲ security
- Known CVEs: fail → partial ▲ security
- 4 Aug 26 +3
- CVE-2026-69207 affects this package: medium ▼ security
- Known CVEs: partial → fail ▼ security
- Stability: unverified → 0.27 ▲ functional
- 3 Aug 26 +36
- Install scripts: unverified → pass ▲ security
- Provenance: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- The attested source repository moved: t4dhg/mcp-factorial security
- License: unverified → pass ▲ functional
- Schema quality: unverified → excellent ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Licence: MIT functional
- 2 Aug 26 +15
- Malware scan: unverified → pass ▲ security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 11 Aug 2026 · Analysed npm/@t4dhg/mcp-factorial@7.1.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | t4dhg/mcp-factorial |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/t4dhg/mcp-factorial/.github/workflows/publish.yml@refs/tags/v7.1.0 |
| Rekor log index | 779914400 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:1c16be31780a31bf674f72cc56431739ef7dad2ee77e3980cc7c4f51522ebca9ffd02e9400d9471fbf324e77fa6e22f6c8a73c2c547a4dd3a2a04a02a |
Dependencies 97 packages
| Packages resolved | 97 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
advance_application Advance Application ~26
Move an application to the next hiring stage.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | Application ID |
No output schema declared.
No examples provided.
approve_leave Approve Leave Request ~36
Approve a pending leave request.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The leave ID to approve |
| reason | string | – | Approval comment |
No output schema declared.
No examples provided.
archive_work_area Archive Work Area ~26
Archive a work area.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | Work area ID to archive |
No output schema declared.
No examples provided.
assign_project_worker Assign Project Worker ~36
Assign an employee to a project.
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | number | yes | Employee ID |
| project_id | number | yes | Project ID |
No output schema declared.
No examples provided.
cancel_leave Cancel Leave Request ~44
Cancel a leave request. This operation requires confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Set to true to confirm this operation |
| id | number | yes | The leave ID to cancel |
No output schema declared.
No examples provided.
create_application Create Application ~47
Create a job application for a candidate.
| Name | Type | Req | Description |
|---|---|---|---|
| candidate_id | number | yes | Candidate ID |
| job_posting_id | number | yes | Job posting ID |
| notes | string | – | Notes |
No output schema declared.
No examples provided.
create_candidate Create Candidate ~68
Create a new candidate.
| Name | Type | Req | Description |
|---|---|---|---|
| string | – | ||
| first_name | string | yes | First name |
| last_name | string | yes | Last name |
| linkedin_url | string | – | LinkedIn URL |
| phone | string | – | Phone |
| source | string | – | Source |
No output schema declared.
No examples provided.
create_employee Create Employee ~147
Create a new employee in FactorialHR.
| Name | Type | Req | Description |
|---|---|---|---|
| birthday_on | string | – | Birthday (YYYY-MM-DD) |
| string | yes | Email address | |
| first_name | string | yes | First name |
| gender | string | – | Gender |
| hired_on | string | – | Hire date (YYYY-MM-DD) |
| last_name | string | yes | Last name |
| location_id | number | – | Location ID |
| manager_id | number | – | Manager employee ID |
| nationality | string | – | Nationality |
| role | string | – | Job role/title |
| start_date | string | – | Start date (YYYY-MM-DD) |
| team_ids | array | – | Team IDs to assign |
No output schema declared.
No examples provided.
create_job_posting Create Job Posting ~82
Create a new job posting.
| Name | Type | Req | Description |
|---|---|---|---|
| department | string | – | Department |
| description | string | – | Job description |
| employment_type | string | – | Employment type |
| location_id | number | – | Location ID |
| remote_status | string | – | Remote status |
| team_id | number | – | Team ID |
| title | string | yes | Job title |
No output schema declared.
No examples provided.
create_leave Create Leave Request ~91
Create a new time off/leave request for an employee.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Description/reason |
| employee_id | number | yes | Employee ID |
| finish_on | string | yes | End date (YYYY-MM-DD) |
| half_day | string | – | Half day option |
| leave_type_id | number | yes | Leave type ID |
| start_on | string | yes | Start date (YYYY-MM-DD) |
No output schema declared.
No examples provided.
create_location Create Location ~99
Create a new company location.
| Name | Type | Req | Description |
|---|---|---|---|
| address_line_1 | string | – | Address line 1 |
| address_line_2 | string | – | Address line 2 |
| city | string | – | City |
| country | string | – | Country |
| name | string | yes | Location name |
| phone_number | string | – | Phone number |
| postal_code | string | – | Postal/ZIP code |
| state | string | – | State/Province |
No output schema declared.
No examples provided.
create_project Create Project ~49
Create a new project.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | Project code |
| description | string | – | Description |
| employees_assignment | string | – | Assignment mode |
| name | string | yes | Project name |
No output schema declared.
No examples provided.
create_project_task Create Project Task ~58
Create a new task for a project.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Description |
| due_on | string | – | Due date (YYYY-MM-DD) |
| name | string | yes | Task name |
| project_id | number | yes | Project ID |
No output schema declared.
No examples provided.
create_shift Create Shift ~90
Create a new attendance shift (clock in/out record).
| Name | Type | Req | Description |
|---|---|---|---|
| break_minutes | number | – | Break duration in minutes |
| clock_in | string | yes | Clock in time (ISO 8601) |
| clock_out | string | – | Clock out time (ISO 8601) |
| employee_id | number | yes | Employee ID |
| location | string | – | Work location |
| notes | string | – | Notes |
No output schema declared.
No examples provided.
create_team Create Team ~58
Create a new team in the organization.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Team description |
| employee_ids | array | – | Team member employee IDs |
| lead_ids | array | – | Team lead employee IDs |
| name | string | yes | Team name |
No output schema declared.
No examples provided.
create_time_record Create Time Record ~57
Log time for a project worker.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | yes | Date (YYYY-MM-DD) |
| description | string | – | Description |
| minutes | number | yes | Minutes worked |
| project_worker_id | number | yes | Project worker ID |
No output schema declared.
No examples provided.
create_training Create Training ~52
Create a new training program.
| Name | Type | Req | Description |
|---|---|---|---|
| category_id | number | – | Category ID |
| description | string | – | Description |
| name | string | yes | Training name |
| subsidized | boolean | – | Is subsidized |
No output schema declared.
No examples provided.
create_training_session Create Training Session ~83
Create a session for a training program.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | – | End date (YYYY-MM-DD) |
| location | string | – | Location |
| max_attendees | number | – | Max attendees |
| name | string | – | Session name |
| start_date | string | – | Start date (YYYY-MM-DD) |
| training_id | number | yes | Training ID |
No output schema declared.
No examples provided.
create_work_area Create Work Area ~46
Create a new work area within a location.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Description |
| location_id | number | – | Location ID |
| name | string | yes | Work area name |
No output schema declared.
No examples provided.
delete_application Delete Application ~51
Delete a job application. This is a HIGH-RISK operation that requires confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Set to true to confirm this high-risk operation |
| id | number | yes | Application ID to delete |
No output schema declared.
No examples provided.
delete_candidate Delete Candidate ~50
Delete a candidate. This is a HIGH-RISK operation that requires confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Set to true to confirm this high-risk operation |
| id | number | yes | Candidate ID to delete |
No output schema declared.
No examples provided.
delete_job_posting Delete Job Posting ~54
Delete a job posting. This is a HIGH-RISK operation that requires confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Set to true to confirm this high-risk operation |
| id | number | yes | Job posting ID to delete |
No output schema declared.
No examples provided.
delete_location Delete Location ~51
Delete a location. This is a HIGH-RISK operation that requires confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Set to true to confirm this high-risk operation |
| id | number | yes | The location ID to delete |
No output schema declared.
No examples provided.
delete_project Delete Project ~51
Delete a project. This is a HIGH-RISK operation that requires confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Set to true to confirm this high-risk operation |
| id | number | yes | The project ID to delete |
No output schema declared.
No examples provided.
delete_project_task Delete Project Task ~26
Delete a project task.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The task ID to delete |
No output schema declared.
No examples provided.
delete_shift Delete Shift ~44
Delete a shift record. This operation requires confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Set to true to confirm this operation |
| id | number | yes | The shift ID to delete |
No output schema declared.
No examples provided.
delete_team Delete Team ~51
Delete a team. This is a HIGH-RISK operation that requires confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Set to true to confirm this high-risk operation |
| id | number | yes | The team ID to delete |
No output schema declared.
No examples provided.
delete_time_record Delete Time Record ~26
Delete a time record.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | Time record ID to delete |
No output schema declared.
No examples provided.
delete_training Delete Training ~52
Delete a training program. This is a HIGH-RISK operation that requires confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Set to true to confirm this high-risk operation |
| id | number | yes | The training ID to delete |
No output schema declared.
No examples provided.
delete_training_session Delete Training Session ~25
Delete a training session.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | Session ID to delete |
No output schema declared.
No examples provided.
enroll_in_training Enroll in Training ~48
Enroll an employee in a training program.
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | number | yes | Employee ID |
| session_id | number | – | Session ID |
| training_id | number | yes | Training ID |
No output schema declared.
No examples provided.
get_application Get Application ~24
Get details about an application.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The application ID |
No output schema declared.
No examples provided.
get_candidate Get Candidate ~24
Get details about a candidate.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The candidate ID |
No output schema declared.
No examples provided.
get_document Get Document ~28
Get document metadata and URL. Read-only access.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The document ID |
No output schema declared.
No examples provided.
get_employee Get Employee ~29
Get detailed information about a specific employee by their ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The employee ID |
No output schema declared.
No examples provided.
get_employee_contracts Get Employee Contracts ~72
Get contract versions for an employee. Returns contract summary (id, employee_id, job_title, effective_on).
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | number | yes | The employee ID |
| limit | number | – | Items per page (max: 100, default: 20) |
| page | number | – | Page number |
No output schema declared.
No examples provided.
get_employee_documents Get Employee Documents ~72
Get all documents for a specific employee. Returns document summary with folder_name enrichment. Use get_document for full details.
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | number | yes | The employee ID |
| limit | number | – | Items per page (max: 100, default: 20) |
| page | number | – | Page number |
No output schema declared.
No examples provided.
get_employee_with_contract Get Employee with Contract ~62
Get an employee with their latest contract data including salary, job title, and job role. This combines employee data with compensation info from their most recent contract. Useful for getting complete employment details in one call.
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | number | yes | The employee ID |
No output schema declared.
No examples provided.
get_family_situation Get Family Situation ~32
Get details about an employee family situation. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The family situation ID |
No output schema declared.
No examples provided.
get_folder Get Folder ~25
Get details about a specific folder.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The folder ID |
No output schema declared.
No examples provided.
get_job_posting Get Job Posting ~28
Get details about a job posting.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The job posting ID |
No output schema declared.
No examples provided.
get_job_role Get Job Role ~28
Get details about a specific job role.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The job role ID |
No output schema declared.
No examples provided.
get_leave Get Leave Details ~27
Get detailed information about a specific leave request.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The leave ID |
No output schema declared.
No examples provided.
get_leave_type Get Leave Type ~28
Get details about a specific leave type.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The leave type ID |
No output schema declared.
No examples provided.
get_location Get Location ~29
Get detailed information about a specific location by its ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The location ID |
No output schema declared.
No examples provided.
get_payroll_supplement Get Payroll Supplement ~32
Get details about a payroll supplement. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The supplement ID |
No output schema declared.
No examples provided.
get_project Get Project ~26
Get detailed information about a specific project.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The project ID |
No output schema declared.
No examples provided.
get_shift Get Shift Details ~26
Get detailed information about a specific shift.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The shift ID |
No output schema declared.
No examples provided.
get_tax_identifier Get Tax Identifier ~30
Get details about a tax identifier. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The tax identifier ID |
No output schema declared.
No examples provided.
get_team Get Team ~29
Get detailed information about a specific team by its ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | The team ID |
No output schema declared.
No examples provided.