TalentHR MCP by usefulapi
REMOTE · TALENTHR.USEFULAPI.IO
Read employees, leave, recruiting and reports; book or decide leave and add applicant notes.
Available components
Last scanned (7 hours ago)
Scores higher than 4% of remote servers
Reachable. Last reached 5 Nov 2026.
Category CRM and Sales
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security46
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
- Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 5 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Checks we ran (4)
- TLS certificate
- HSTS header
- DNSSEC
- Transport
Checks we could not complete (7)
These are gaps on our side, not findings about this hosted endpoint. We only credit what we can confirm, so a category made up entirely of them scores 0.
- Authorization in Endpoint SecurityAuthorisation not yet verified: we couldn't confirm whether this endpoint requires it.
- HTTPS in Endpoint SecurityHTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
- Schema quality in Schema Quality & AI Usability (scores 0 for this)Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- Stability in Stability & Change Management (scores 0 for this)Stability not yet verified: not enough scan history yet (needs a 30-day window).
- Tool coverage in Tool Coverage (scores 0 for this)Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- Tool safety in Tool Safety (scores 0 for this)Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- Capabilities in Capabilities (scores 0 for this)Capabilities not yet verified: we couldn't read the endpoint's capabilities.
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
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.
- 2 Nov 26 −47
- Endpoint reachability: reachable → not serving MCP ▼ security
- Tool safety: pass → unverified ▼ security
- Authorization: pass → unverified ▼ security
- Stability: 0.03 → unverified ▼ security
- Schema quality: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- 1 Nov 26 0
- Stability: unverified → 0.03 ▲ functional
- 31 Oct 26 65
First indexed and scored.
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 5 Nov 2026 · Probed https://talenthr.usefulapi.io/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=usefulapi.io | CN=WE1,O=Google Trust Services,C=US | 13 Sept 2026 | 12 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | d9be3287b0fde9630e825ba1f79bff3f |
| SANs: usefulapi.io, *.usefulapi.io | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of talenthr.usefulapi.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| io. | DS published | 38690 | 8 | Verified |
| usefulapi.io. | No DS | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Inconclusive
We could not reach the endpoint well enough to judge its authorisation posture.
| Result | Inconclusive |
|---|---|
| HTTP status | 302 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://talenthr.usefulapi.io/mcp | Redirected | 302 | https://usefulapi.io/talenthr/ |
| http (plaintext) | http://talenthr.usefulapi.io/mcp | Inconclusive | 302 | http://talenthr.usefulapi.io/mcp |
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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
talenthr_create_applicant_note Add a note to a job application ~127
WRITE: add an internal note to a job application (visible to the hiring team in TalentHR; no one is e-mailed). Needs the job position id and the application id (talenthr_get_applicant lists an applicant's applications with their job_position_id). Notes cannot be edited or deleted through this server.
| Name | Type | Req | Description |
|---|---|---|---|
| application_id | integer | yes | The application id (from talenthr_get_applicant). |
| job_position_id | integer | yes | The job position id of the application. |
| note_text | string | yes | The note text (max 30000 characters). |
No output schema declared.
No examples provided.
talenthr_create_time_off_request Book a time off request ~323
WRITE: book a time off request for an employee (talenthr_list_time_off_types gives the type id). Unless preapproved=true, TalentHR automatically E-MAILS THE EMPLOYEE'S MANAGER to approve or reject it. preapproved=true auto-approves it when the key's user is allowed to (so no manager decides): only use it when the user explicitly said the time off is already approved. Dates must be within one year from today and inside a time off cycle. Optionally give amount_options (days per date: 1, 0.5, 0 for non-working days; every date from start to end needs a value); when omitted TalentHR works it out. Cannot be undone through this server.
| Name | Type | Req | Description |
|---|---|---|---|
| amount_options | object | – | Per-day amounts keyed by yyyy-mm-dd, e.g. {"2026-11-02":1,"2026-11-03":0.5}. Must cover every date from start_date to end_date. |
| employee_id | integer | yes | The employee id (from talenthr_list_employees). |
| end_date | string | yes | Last day off (inclusive), yyyy-mm-dd. |
| note | string | – | Note for the approver (max 255 characters). |
| preapproved | boolean | – | true = auto-approve (no manager e-mail decision). Default false. |
| start_date | string | yes | First day off, yyyy-mm-dd. |
| timeoff_type_id | integer | yes | Time off type id (from talenthr_list_time_off_types). |
No output schema declared.
No examples provided.
talenthr_get_applicant Get an applicant ~66
Get one candidate with contact data, description, CV info and all applications with the hiring step each one is in. The application ids are used by talenthr_create_applicant_note.
| Name | Type | Req | Description |
|---|---|---|---|
| applicant_id | integer | yes | The applicant id (from talenthr_list_applicants). |
No output schema declared.
No examples provided.
talenthr_get_calendar Get the time off calendar ~199
Who is off when: employees with their time off requests and the holidays for a date range. Without end_date the range runs to the end of the start month (max 2 years). Without a filter it includes every employee (also terminated). Filter with keys time_off (pending, approved), department, division, location, emp_state and time_off_type (e.g. time_off=pending,approved;department=6), or one employee with employee_id.
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | integer | – | Only this employee's calendar. |
| end_date | string | – | Last day, yyyy-mm-dd (default: end of the start month). |
| filter | string | – | Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters. |
| start_date | string | yes | First day, yyyy-mm-dd. |
No output schema declared.
No examples provided.
talenthr_get_directory_filters Get directory filters ~50
List the valid filter options (departments, divisions, locations, employment statuses) with their ids, to build the `filter` argument of talenthr_list_employees and talenthr_get_calendar.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
talenthr_get_employee Get an employee ~95
Get one employee's profile: birth date, hire and termination date, personal e-mail, work phone, address, nationality, gender, job title, department, division, location, role, seniority and custom fields. Contains sensitive personal data (it can include the SSN); only fetch it when the user asked about that person.
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | integer | yes | The employee id (from talenthr_list_employees). |
No output schema declared.
No examples provided.
talenthr_get_employee_assets Get an employee's assets ~128
List the assets (inventory and memberships) assigned to one employee. Paged: use next_offset to continue.
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | integer | yes | The employee id (from talenthr_list_employees). |
| limit | integer | – | Rows per page, 1-100 (default 10). |
| offset | integer | – | Row offset, 0-based (default 0). Use next_offset from the previous reply. |
| order | string | – | Sort direction. |
| sort | string | – | Column to sort by: assing_date, name, category, type, serial_number. |
No output schema declared.
No examples provided.
talenthr_get_employee_benefits Get an employee's benefits ~47
List the benefits one employee has (category, cost, start and end date).
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | integer | yes | The employee id (from talenthr_list_employees). |
No output schema declared.
No examples provided.
talenthr_get_employee_job Get an employee's job history ~71
Get one employee's job information: employment status history, manager records, job records (title, department, location over time), compensation records and benefits. Compensation is sensitive; only fetch it when the user asked.
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | integer | yes | The employee id (from talenthr_list_employees). |
No output schema declared.
No examples provided.
talenthr_get_employee_time_off_budgets Get an employee's time off balances ~115
Get one employee's time off budgets per type and cycle: budget, original budget, used days and accrual figures, i.e. how many days they have left. Optionally limit to the current cycle (active) or one cycle id.
| Name | Type | Req | Description |
|---|---|---|---|
| active | boolean | – | true = only the currently active time off cycle. |
| employee_id | integer | yes | The employee id (from talenthr_list_employees). |
| time_off_cycle_id | integer | – | Limit to one time off cycle id. |
No output schema declared.
No examples provided.
talenthr_get_headcount_report Get the headcount report ~188
Headcount per month over a period (total and optionally grouped by gender, location, department, division, ...), plus the current headcount.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | – | Custom range end, yyyy-mm-dd. |
| filter | string | – | Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters. |
| group_by | string | – | Break the headcount down by this dimension. |
| period | string | – | Reporting period: l12m (last 12 months) or a 4-digit year (the current or the previous calendar year). Alternatively pass start_date and end_date (max 36 months). |
| start_date | string | – | Custom range start, yyyy-mm-dd (use with end_date instead of period). |
No output schema declared.
No examples provided.
talenthr_get_hires_leaves_report Get the hires and leaves report ~160
Hires, terminations and attrition rate per month over a period.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | – | Custom range end, yyyy-mm-dd. |
| filter | string | – | Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters. |
| period | string | – | Reporting period: l12m (last 12 months) or a 4-digit year (the current or the previous calendar year). Alternatively pass start_date and end_date (max 36 months). |
| start_date | string | – | Custom range start, yyyy-mm-dd (use with end_date instead of period). |
No output schema declared.
No examples provided.
talenthr_get_organization_chart Get the organization chart ~37
List all current employees with their manager (reports_to_employee_id), job title and role, to answer who reports to whom.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
talenthr_get_time_off_report Get the time off report ~167
Approved, non-canceled time off summarized per month and per weekday, split by time off type, for a period.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | – | Custom range end, yyyy-mm-dd. |
| filter | string | – | Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters. |
| period | string | – | Reporting period: l12m (last 12 months) or a 4-digit year (the current or the previous calendar year). Alternatively pass start_date and end_date (max 36 months). |
| start_date | string | – | Custom range start, yyyy-mm-dd (use with end_date instead of period). |
No output schema declared.
No examples provided.
talenthr_list_applicants List all applicants ~149
List every candidate across all job positions with contact data and the number of applications. Paged: use next_offset to continue. `search` matches first name, last name and e-mail; `starred_only` returns only the starred candidates (the talent pool).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Rows per page, 1-100 (default 10). |
| offset | integer | – | Row offset, 0-based (default 0). Use next_offset from the previous reply. |
| order | string | – | Sort direction. |
| search | string | – | – |
| sort | string | – | Column to sort by: name, created_at. |
| starred_only | boolean | – | – |
No output schema declared.
No examples provided.
talenthr_list_assets List company assets ~221
List the company's assets (laptops, phones, subscriptions, memberships) with status, category, serial number, cost, purchase and warranty dates. Paged: use next_offset to continue. `search` matches name, description or category; `filter` takes status and category ids (e.g. status=1,2;category=19).
| Name | Type | Req | Description |
|---|---|---|---|
| filter | string | – | Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters. |
| limit | integer | – | Rows per page, 1-100 (default 10). |
| offset | integer | – | Row offset, 0-based (default 0). Use next_offset from the previous reply. |
| order | string | – | Sort direction. |
| search | string | – | – |
| sort | string | – | Column to sort by: created_at, name, category, location, department, division, used_by, serial_number, warranty_end_date. |
No output schema declared.
No examples provided.
talenthr_list_benefits List benefits ~110
List the company's benefits with category, cost, dates and who they are required for. Optional `filter` with keys location, department, division, job_title, emp_state and employee (e.g. location=36;emp_state=1,2).
| Name | Type | Req | Description |
|---|---|---|---|
| filter | string | – | Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters. |
No output schema declared.
No examples provided.
talenthr_list_departments List departments ~37
List all departments of the company with their ids (the ids are what talenthr_list_employees filters and employee records refer to).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
talenthr_list_divisions List divisions ~37
List all divisions of the company with their ids (the ids are what talenthr_list_employees filters and employee records refer to).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
talenthr_list_employee_time_off_requests List an employee's time off requests ~134
List one employee's time off requests (dates, type, days, approved or pending, canceled). Paged: use next_offset to continue. A request with approved=null is still pending.
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | integer | yes | The employee id (from talenthr_list_employees). |
| limit | integer | – | Rows per page, 1-100 (default 10). |
| offset | integer | – | Row offset, 0-based (default 0). Use next_offset from the previous reply. |
| sort | string | – | Column to sort by: id, timeoff_type_name, created_at. |
No output schema declared.
No examples provided.
talenthr_list_employees List employees (directory) ~238
List the company's employees from the TalentHR directory with name, e-mail, job title, department, division, location, employment status, manager id, hire date and phone. Paged (limit max 100): use next_offset to continue. Filter by location, department, division or employment status (emp_state) with `filter`; get the ids from talenthr_get_directory_filters. Use `custom_fields` to add extra field slugs (from the company's custom fields). Returns personal data; summarize only what the user asked for.
| Name | Type | Req | Description |
|---|---|---|---|
| custom_fields | string | – | Comma-separated custom field slugs to include, e.g. address,city,custom-field-001. |
| filter | string | – | Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters. |
| limit | integer | – | Rows per page, 1-100 (default 10). |
| offset | integer | – | Row offset, 0-based (default 0). Use next_offset from the previous reply. |
No output schema declared.
No examples provided.
talenthr_list_holidays List holidays ~52
List the company holidays of a year (current year by default) with date and who they apply to.
| Name | Type | Req | Description |
|---|---|---|---|
| year | integer | – | Year, e.g. 2026 (default: this year). |
No output schema declared.
No examples provided.
talenthr_list_job_position_applicants List applicants of a job position ~153
List the applicants of one job position with contact data, current hiring step and whether they are disqualified. Paged: use next_offset to continue. `search` matches first name, last name and e-mail.
| Name | Type | Req | Description |
|---|---|---|---|
| job_position_id | integer | yes | The job position id (from talenthr_list_job_positions). |
| limit | integer | – | Rows per page, 1-100 (default 10). |
| offset | integer | – | Row offset, 0-based (default 0). Use next_offset from the previous reply. |
| order | string | – | Sort direction. |
| search | string | – | – |
| sort | string | – | Column to sort by: name, created_at. |
No output schema declared.
No examples provided.
talenthr_list_job_positions List job positions ~48
List the company's job positions (open and closed) with title, status, location, department, publish date and the hiring steps. The id is used to list a position's applicants.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
talenthr_list_job_titles List job titles ~38
List all job titles of the company with their ids (the ids are what talenthr_list_employees filters and employee records refer to).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
talenthr_list_locations List locations ~43
List all locations (with address and remote flag) of the company with their ids (the ids are what talenthr_list_employees filters and employee records refer to).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
talenthr_list_time_off_types List time off types ~57
List the time off types (vacation, sick leave, ...) with id, yearly budget, whether approval is needed and whether it is paid. The id is needed to book a request with talenthr_create_time_off_request.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
talenthr_list_time_tracking_entries List time tracking entries ~271
List time tracking entries across all employees (start, end, duration, tags) for a period or date range. Paged: use next_offset to continue. working_now=true lists only running timers. Needs a key whose user may see everyone's time tracking.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | – | Range end, yyyy-mm-dd. |
| filter | string | – | Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters. |
| limit | integer | – | Rows per page, 1-100 (default 10). |
| offset | integer | – | Row offset, 0-based (default 0). Use next_offset from the previous reply. |
| order | string | – | Sort direction. |
| period | string | – | Preset period (default today when no dates are given). Alternatively pass start_date and end_date (max 36 months). |
| search | string | – | – |
| sort | string | – | Column to sort by: time, started_at, ended_at, name, tag, location. |
| start_date | string | – | Range start, yyyy-mm-dd. |
| working_now | boolean | – | true = only entries that are running right now. |
No output schema declared.
No examples provided.
talenthr_reply_time_off_request Approve or reject a time off request ~134
WRITE: approve (accept=true) or reject (accept=false) a pending time off request. TalentHR automatically E-MAILS THE EMPLOYEE the decision. A request that was already answered or canceled cannot be answered again. Only do this when the user explicitly asked for that decision on that request (find ids with talenthr_list_employee_time_off_requests or talenthr_get_calendar).
| Name | Type | Req | Description |
|---|---|---|---|
| accept | boolean | yes | true = approve, false = reject. |
| employee_id | integer | yes | The id of the employee who made the request. |
| time_off_request_id | integer | yes | The time off request id. |
No output schema declared.
No examples provided.
How do I install the TalentHR MCP by usefulapi server?
TalentHR MCP by usefulapi is a hosted endpoint at https://talenthr.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · talenthr.usefulapi.io
claude mcp add --transport http io-usefulapi-talenthr 'https://talenthr.usefulapi.io/mcp'
What is the TalentHR MCP by usefulapi server?
TalentHR MCP by usefulapi is listed in the public MCP registry as io.usefulapi/talenthr. Read employees, leave, recruiting and reports; book or decide leave and add applicant notes. This page covers its hosted endpoint (https://talenthr.usefulapi.io/mcp).
Is the TalentHR MCP by usefulapi server safe to use?
TalentHR MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the TalentHR MCP by usefulapi server expose?
TalentHR MCP by usefulapi exposes 29 tools: talenthr_list_employees, talenthr_get_directory_filters, talenthr_get_employee, talenthr_get_employee_job, talenthr_get_organization_chart, and 24 more. Their descriptions and schemas cost roughly 3,495 tokens of context every time the server is loaded.
Does the TalentHR MCP by usefulapi server require authentication?
Its publisher declares no required credentials for TalentHR MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.
Is the TalentHR MCP by usefulapi server still maintained?
TalentHR MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the TalentHR MCP by usefulapi server?
VerifyMCP ran 4 checks on TalentHR MCP by usefulapi, covering TLS certificate, HSTS header, DNSSEC and Transport. 7 items could not be completed, a gap on our side rather than a finding about TalentHR MCP by usefulapi: Authorization, HTTPS, Schema quality, Stability and 3 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.