Talenta MCP by usefulapi
Server Details
MCP server for Talenta — read employee, attendance, leave, payroll and recruitment data.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 30 tools
Most tools target a clearly distinct resource+action (jobs vs job levels vs job positions, schedules vs attendance summary vs timesheets, candidates vs job openings). The riskiest pair is talenta_time_off_balance_history vs talenta_time_off_balance_log, and talenta_get_employee vs talenta_get_employment_info vs talenta_list_employees require reading descriptions carefully to pick correctly. Descriptions do disambiguate (including the 'give exactly one of user_id, employee_id or email' hint), so boundaries are workable but not perfectly crisp.
Strong, predictable talenta_verb_noun pattern (get_, list_, with resource-specific suffixes) used across nearly all 30 tools. Minor deviations: talenta_attendance_summary, talenta_time_off_balance_history and talenta_time_off_balance_log drop the verb prefix, and get_company_info/list_company-style paths add an extra noun. Still highly readable and consistent overall.
30 tools is heavy and exceeds the comfortable band, though the breadth is justified by spanning distinct HR sub-domains (attendance, leave, payroll, recruitment, employee records, org structure). Each tool maps to a distinct API endpoint rather than duplicating coverage. It is a large but not bloated surface.
Read/report coverage is broad and deep across attendance, time off, payroll, recruitment and employee data. However the surface is entirely read-only: no create/update/delete, and no approve/reject operations for the many approval-centric entities (overtime, time off, reimbursement, transfers, candidates). An agent cannot complete any mutating HR workflow.
Available Tools
30 toolstalenta_attendance_summaryAttendance summary for a dayARead-onlyIdempotentInspect
The attendance summary of all employees for one day: schedule, shift, clock in/out, breaks, overtime, time off. Filter by branch, organization, job level/position, or clock-in/out status (early, late, none). GET /v3/attendance/summary-report.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | The day (yyyy-mm-dd). | |
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| sort | No | Sort field. | |
| limit | No | Results per page, 1-100 (default 10). | |
| order | No | Sort order. | |
| clock_in | No | eci = early clock in, lci = late clock in, nci = no clock in. | |
| clock_out | No | eco = early clock out, lco = late clock out, nco = no clock out. | |
| branch_ids | No | Only these branch ids. | |
| job_level_ids | No | Only these job level ids. | |
| job_position_ids | No | Only these job position ids. | |
| organization_ids | No | Only these organization ids. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds useful context that this returns every employee for a single day (implying a potentially large result set) and names the GET endpoint. It says nothing about pagination defaults or result volume handling, which the schema partly covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with what the report contains, followed by the filter options. The endpoint string is mildly redundant but useful for agents that reason about API surface. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters and no output schema, the description usefully compensates by enumerating the returned fields (schedule, shift, clock in/out, breaks, overtime, time off). Combined with annotations covering safety and the schema covering all 11 params, an agent has enough to call it correctly; only the missing sibling routing and pagination guidance remain as gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter including the eci/lci/nci and eco/lco/nco enum meanings. The description's parenthetical '(early, late, none)' restates that enum semantics at a glance, giving a small edge over pure baseline, but adds no new syntax or interaction details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope ('attendance summary of all employees for one day') and enumerates the data captured: schedule, shift, clock in/out, breaks, overtime, time off. It also names the underlying endpoint. It does not explicitly distinguish itself from siblings like talenta_list_live_attendance or talenta_list_timesheets, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists available filter dimensions (branch, organization, job level/position, clock-in/out status), which implies how the tool is typically scoped. However, it never says when to choose this over the attendance-adjacent siblings, nor does it state any preconditions or exclusions. Usage is inferable but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_get_candidateGet candidate applicationARead-onlyIdempotentInspect
One candidate application with personal data, education and work experience. Contains personal data (ID numbers, address, salary). GET /v3/recruitment/candidates/{job_application_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| job_application_id | Yes | Application id (talenta_list_candidates: job_application_id). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/non-destructive profile, so the bar is lower. The description adds genuine value beyond annotations by flagging that the response contains sensitive PII (ID numbers, address, salary), which is important behavioral context an agent should surface. It stops short of describing size, pagination, or format, but that is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences front-load the resource and contents, then the PII warning. No filler, and the key sensitive-data caveat is present early. It is appropriately sized for a single-parameter read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return-value burden and does reasonably well, naming the three main data groups (personal data, education, work experience). The PII warning is a useful addition. It could say more about response shape, but for a simple getter it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the single parameter's meaning and source are fully documented in the schema (including the reference to talenta_list_candidates). The description merely echoes the path variable and adds no syntax or format detail beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource ('One candidate application') and enumerates what it contains (personal data, education, work experience), which is clear. It implies retrieval of a single record, distinguishing it implicitly from talenta_list_candidates, but does not name the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: a single-application getter contrasted against the list tool. There is no explicit statement of when to use this versus talenta_list_candidates, nor any prerequisites or exclusions. The schema hint pointing to list_candidates for the ID helps, but the description itself gives no guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_get_company_infoGet company infoARead-onlyIdempotentInspect
The company's profile: name, address, phone, email, BPJS and tax numbers. GET /v2/company/{company_id}/info.
| Name | Required | Description | Default |
|---|---|---|---|
| company_id | No | Talenta company id (default: the company of the connected credentials). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered. The description adds value by enumerating the concrete fields returned (BPJS and tax numbers are non-obvious) and by citing the underlying endpoint path, but it says nothing about permissions, response shape, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the payload contents, followed by the endpoint. Efficient and easy to scan; the trailing API path is mild redundancy but useful for mapping to the REST API.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with no output schema, the description does the important work of enumerating returned fields, which substitutes for a missing return-value contract. Nothing critical is absent for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single optional parameter with 100% schema description coverage, so the baseline is 3. The schema already explains that company_id defaults to the company of the connected credentials; the description adds no extra meaning about that parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (the company profile) and enumerates the fields it returns — name, address, phone, email, BPJS and tax numbers — which cleanly separates it from siblings like talenta_get_employment_info or talenta_list_organizations. It doesn't explicitly name those siblings as alternatives, but the resource boundary is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: fetch this when you need company-level identity/contact/tax data. There is no when-to-use vs when-not guidance, no mention of talenta_get_employment_info or talenta_list_branches as adjacent choices, and no note that company_id can be omitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_get_employeeGet employeeARead-onlyIdempotentInspect
One employee by Talenta user id: personal data, employment, family, education, payroll info, custom fields and access role. Contains personal data. GET /v2/employee/{user_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Talenta user id (talenta_list_employees: user_id). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds useful context by flagging that the response contains personal data and naming the underlying endpoint, but it does not add details about permissions, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence front-loads the core operation, then lists the returned data categories and privacy note. Every phrase earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description usefully enumerates the returned data categories and warns about personal data. The only minor gap is the absence of explicit guidance about when to use this versus adjacent detail-oriented sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the user_id parameter is already documented with its source in talenta_list_employees. The description repeats the parameter concept but adds no syntax or format detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: retrieve one employee by Talenta user id. It enumerates the categories returned and distinguishes itself from list-style siblings like talenta_list_employees by emphasizing a single user id lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: call this when you need full detail for one known employee. However, it does not explicitly say when to prefer this over talenta_list_employees or talenta_get_employment_info, nor does it state any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_get_employment_infoGet employment infoARead-onlyIdempotentInspect
Employment details of one employee (branch, class, grade, job, contract and probation dates, approval line). Give exactly one of user_id, employee_id or email. GET /v3/employee/employment-info.
| Name | Required | Description | Default |
|---|---|---|---|
| No | The employee's email. | ||
| user_id | No | Talenta user id. | |
| employee_id | No | The company's employee id (for example SDET-001). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the returned field set and the underlying endpoint, but says nothing about error behavior when no employee matches or how ambiguities are resolved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is returned and followed by the identifier rule and endpoint. No filler, and the constraint an agent is most likely to violate is stated plainly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields, which is the right call. It is only slightly short on edge-case behavior (missing employee, permission scope) for a straightforward read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the three identifier parameters are already documented individually. The description adds a constraint the schema does not express: exactly one of user_id, employee_id or email must be supplied, which is meaningful since required is empty in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('employment info') for exactly one employee, and enumerates the returned fields (branch, class, grade, job, contract/probation dates, approval line). It does not explicitly differentiate itself from the sibling talenta_get_employee, so an agent must infer the split from the field list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: fetch a single employee's employment record by one identifier. The description never names alternatives such as talenta_get_employee or talenta_list_employees, nor does it say when to prefer this over them. The lookup-identifier rule it does give is parameter guidance rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_get_jobGet recruitment jobARead-onlyIdempotentInspect
One job opening in full, with its hiring stages and custom questions. GET /v3/recruitment/jobs/{job_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job id (talenta_list_jobs: job_id). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, openWorld, so safety is covered. The description goes beyond them by disclosing the shape of the payload — full job detail including nested hiring stages and custom questions — which is useful context for a single fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact fragments: the payload description first, then the endpoint path. Zero waste and fully front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing the return value and does so ('in full, with its hiring stages and custom questions'). Minor gap: no error behavior for an invalid or unknown job_id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single job_id parameter is already documented, including a cross-reference to talenta_list_jobs. The description adds no format, bounds, or sourcing detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: retrieves a single job opening 'in full' plus hiring stages and custom questions. The singular scope implicitly contrasts with talenta_list_jobs, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent must infer this is the detail-view companion to talenta_list_jobs when a specific job_id is already known. No explicit when-to-use or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_get_payroll_reportGet monthly payroll reportBRead-onlyIdempotentInspect
Company-wide payroll summary (salary detail) for one month. Sensitive payroll data. Optional filters by payment method, branch, organization, job level. GET /v3/payroll/report.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (yyyy). | |
| month | Yes | Month, 1-12. | |
| payment | No | Payment method filter, 1 or 2. | |
| branch_ids | No | Only these branch ids. | |
| job_level_ids | No | Only these job level ids. | |
| organization_ids | No | Only these organization ids. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered structurally. The description's one genuine addition is 'Sensitive payroll data', which usefully warns the agent to treat the payload carefully, though it does not state what access or role is required. It also does not disclose volume or whether the report is paginated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short fragments with the subject and scope front-loaded and the sensitivity warning placed early. The trailing raw endpoint is mildly redundant but cheap. Nothing is padded with filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return shape, and it only gestures at it via 'payroll summary (salary detail)' without saying what columns or aggregates come back. For a read-only report with full schema coverage on inputs the gaps are tolerable, but an agent still cannot anticipate result size or structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates the four optional filters without adding semantics; notably it does not explain what payment method values 1 and 2 mean, which the schema leaves opaque ('1 or 2'). No meaning is added over the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: a company-wide payroll summary covering one month, with a parenthetical clarifying it carries salary detail. This is materially different from the name alone and lets an agent understand the shape of the result. It stops short of naming a sibling such as talenta_list_payroll_info, so the boundary against that tool must be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to reach for this report versus talenta_list_payroll_info, which is the obvious near-neighbour in the sibling list. The filter list describes capability, not selection criteria, and there is no mention of prerequisites such as needing payroll admin scope before calling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_branchesList branchesARead-onlyIdempotentInspect
List the company's branches with address, province and tax details. Use the ids to filter employees. GET /v2/company/{company_id}/branch.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| company_id | No | Talenta company id (default: the company of the connected credentials). | |
| include_head_office | No | Also return the head office (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds the response shape (address, province, tax) and the route, which is useful, but says nothing about pagination behavior or what the head-office flag does beyond what the schema states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with what is returned, followed by the practical follow-up use. Nothing redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple four-parameter read tool with rich annotations and no output schema, the description adequately covers purpose and returned fields, and the schema covers all parameter detail. Only a note on pagination behavior or head-office semantics would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the four parameters is fully documented in the schema (defaults, ranges, next_page chaining). The description contributes no additional parameter-level meaning, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list the company's branches) and enumerates the returned fields (address, province, tax details), plus the underlying endpoint. The resource is plainly distinct from the sibling list_* tools, though it does not explicitly compare itself to any of them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use the ids to filter employees" gives downstream context and implicitly points toward talenta_list_employees, but it is guidance about consuming the result rather than about when to call this tool or when another tool would be preferable. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_candidatesList candidatesARead-onlyIdempotentInspect
Candidate applications of the company, newest first. Search by name, filter by application date. Contains personal data. GET /v3/recruitment/candidates.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). | |
| limit | No | Results per page, 1-100 (default 10). | |
| order | No | Sort direction (default desc). | |
| search | No | Part of the candidate's name. | |
| application_date_end | No | Applied on or before (yyyy-mm-dd); needs application_date_start. | |
| application_date_start | No | Applied on or after (alone: exactly this date) (yyyy-mm-dd). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, openWorld and non-destructive semantics, so the bar is lower. The description adds useful context beyond them: the default sort order and the fact that results contain personal data, which is a meaningful privacy disclosure for an agent handling the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences plus the endpoint reference; the newest-first behavior and personal-data caveat come early. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not indicate what fields a candidate application record contains or the response envelope shape. It covers filters, ordering and privacy adequately but leaves the return payload entirely unspecified for a list tool without structured output documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents page, limit, order, search and both date parameters with defaults and constraints. The description only restates search-by-name and date filtering and adds no syntax or format detail beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (candidate applications of the company) and states the default ordering ('newest first'), plus the endpoint. It is clear what the tool returns, but it does not explicitly differentiate itself from the singular sibling talenta_get_candidate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states what can be done ('search by name, filter by application date') but gives no explicit when-to-use/when-not guidance or named alternatives such as talenta_get_candidate for retrieving a single candidate. Usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_delegationsList delegationsBRead-onlyIdempotentInspect
Approval/admin/time-off delegations between employees with dates and type. GET /v3/delegations.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-50 (default 10). | |
| end_date | No | Ending before (yyyy-mm-dd). | |
| start_date | No | Starting on or after (yyyy-mm-dd). | |
| delegate_to | No | Only delegations to these user ids. | |
| delegate_from | No | Only delegations from these user ids. | |
| delegation_type | No | Delegation category. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds little beyond that — it does not mention pagination bounds, the 100-id cap on delegate filters, or the shape of the response, so it does not exceed the annotation baseline by much.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, resource scope front-loaded before the endpoint reference. It is arguably over-compressed — noun-phrase fragments rather than a complete statement of what the listing returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and seven optional filter parameters, the description should convey what a delegation record contains and how filtering composes. It gestures at dates and type but leaves the returned record and the delegate_from/delegate_to semantics unexplained, which is the minimum viable level for a list tool of this size.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented, and the baseline of 3 applies. The description's 'with dates and type' loosely signals date filtering and the delegation_type categories but adds no format, default, or interaction details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource — approval/admin/time-off delegations between employees — and names the returned attributes (dates, type), plus the underlying endpoint GET /v3/delegations. The list verb is only implied by the name/title rather than the description text, and no sibling is named to disambiguate from tools like talenta_list_time_off_requests or talenta_list_employees.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, when not to, or which sibling to prefer for adjacent data (e.g. time-off requests vs. time-off delegations). The only usage signal is the endpoint path, which the agent must interpret.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_employeesList employeesARead-onlyIdempotentInspect
List the employees of the company (Talenta Data API v3) with name, employee id, email, branch, organization, job position, employment status, join/resign dates and more. Filter by user ids, email, branch, organization, job position, job level, employment status, or join/created/modified dates. include adds sub-objects (approval line, family, education, payroll info, custom fields); use it sparingly, it slows the call. Contains personal data. GET /v3/employees.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| No | Only the employee with this email. | ||
| limit | No | Results per page, 1-100 (default 10). | |
| include | No | Extra sub-objects per employee. | |
| user_ids | No | Only these Talenta user ids. | |
| branch_ids | No | Only these branch ids (0 = head office). | |
| job_level_id | No | Only this job level id. | |
| join_end_date | No | Joined on or before (yyyy-mm-dd). | |
| join_start_date | No | Joined on or after (yyyy-mm-dd). | |
| order_join_date | No | Sort by join date. | |
| job_position_ids | No | Only these job position ids. | |
| organization_ids | No | Only these organization ids. | |
| modified_end_date | No | Modified on or before (yyyy-mm-dd). | |
| modified_start_date | No | Modified on or after (yyyy-mm-dd). | |
| employment_status_id | No | Only this employment status id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds two things annotations cannot: the performance cost of `include` and the "Contains personal data" PII disclosure. It omits any statement about default result scope (e.g. whether resigned employees are included) or rate limits, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences: return surface first, then filters, then the include caveat and the PII/endpoint tags. No filler, no repetition of the title, and the risky knob is called out last where it is most likely to be read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by enumerating the returned fields including the "and more" catch-all, and pagination is fully specified in the schema via page/limit plus the next_page hint. It never covers default scope, authentication, or result-size limits, which matter for a 15-parameter PII-bearing list call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so 3 is the baseline; the description earns one extra point by giving the `include` parameter a cost/behavior meaning that the schema's "Extra sub-objects per employee" does not convey, and by grouping the date filters (join/created/modified) conceptually. It does not add syntax or format detail beyond the schema's yyyy-mm-dd notes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list employees of the company) and enumerates the fields returned plus the full filter surface, ending with the concrete endpoint GET /v3/employees. It also implicitly differentiates itself from sibling roster tools (list_family_info, list_payroll_info, list_formal_education) by explaining those come back as `include` sub-objects of this call instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Filter by user ids, email, branch, organization, job position, job level, employment status, or join/created/modified dates" tells the agent to narrow rather than enumerate, and "use it sparingly, it slows the call" is actionable guidance on the include knob. It stops short of naming when to prefer talenta_get_employee over this list call, so no explicit exclusion is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_employee_transfersList employee transfersBRead-onlyIdempotentInspect
Employee transfer and promotion requests with employee, type, effective date and approval status. GET /v3/employee-transfer.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the full safety profile (readOnly, idempotent, non-destructive, openWorld), so the description's burden is light. It adds the returned field set and the backing endpoint, but says nothing about ordering, volume, or what an empty result means beyond what the pagination params imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the resource and its fields. The trailing raw endpoint is mildly redundant with the name but does not obscure anything.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple read-only, zero-required-param list tool with no output schema; the description gives the field set an agent would otherwise lack, and annotations cover safety. Only routing guidance for choosing among the many other list_* siblings is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both page and limit are fully documented in the schema with defaults and the next_page hint. The description adds no parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (employee transfer and promotion requests) and enumerates the fields it carries (employee, type, effective date, approval status), plus the underlying endpoint. An agent can tell it apart from siblings like talenta_list_employees or talenta_list_delegations, though it never explicitly says 'list/retrieve' as the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus alternatives, no prerequisites, and no exclusions. The agent must infer usage purely from the resource name and the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_employment_statusesList employment statusesARead-onlyIdempotentInspect
List the company's employment statuses (permanent, contract, ...) with ids for employee filters. The company is selected by the HMAC credentials. GET /v2/company/me/employment-status.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds genuinely new context: the company is resolved from the HMAC credentials rather than a parameter, and it names the concrete GET endpoint. It adds nothing about pagination defaults, but the schema covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and its purpose, then the credential scoping and endpoint. Every clause carries information; nothing is redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list with no output schema, the description plus rich annotations and a fully documented 2-parameter schema give an agent everything needed to call it correctly. The only mild gap is that the shape of returned items (id/name fields) is only hinted at via 'with ids'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: page and limit are fully documented in the schema, including defaults and next_page usage. The description adds no parameter-level meaning beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the company's employment statuses'), gives concrete examples of the values (permanent, contract), and explains the downstream use ('ids for employee filters'). It does not explicitly contrast with siblings like talenta_list_job_levels, but the resource is distinct enough that an agent can route here without confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'with ids for employee filters' implies when to reach for this tool (to obtain ids before filtering employees), and naming the endpoint clarifies the scope. There is no explicit when-not guidance or named alternative, so usage remains inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_family_infoList employee family membersARead-onlyIdempotentInspect
Family members of one employee (name, relationship, birth date, marital status, ID number). Contains personal data. Give exactly one of user_id or employee_id. GET /v3/employee/family-info.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| user_id | No | Talenta user id. | |
| employee_id | No | The company's employee id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds one genuinely new signal, "Contains personal data," flagging sensitivity, but says nothing about pagination behavior or how many records come back, which the annotations cannot tell an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short telegraphic sentences, front-loaded with what the tool returns and immediately followed by the sensitivity warning and the ID constraint. The trailing endpoint path is minor but helps API traceability; no filler otherwise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter read tool with no output schema and full schema coverage, the description supplies the resource, the returned fields, the data-sensitivity warning, and the ID exclusivity rule. Only the paging story (whether results are paginated across employees) is left entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description earns above that by stating the mutual-exclusivity rule for user_id/employee_id that the schema itself does not encode (no oneOf, no required fields). It still adds nothing about page/limit semantics, which the schema already documents well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (family members of one employee) and enumerates the returned fields (name, relationship, birth date, marital status, ID number), which clearly separates it from talenta_get_employee and the other employee-listing siblings. The verb is only implied by the noun phrase and the title, keeping it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Give exactly one of user_id or employee_id" establishes a calling constraint, and the singular "one employee" implies this is a per-employee lookup rather than a bulk list. However, there is no explicit when-to-use guidance or named alternative (e.g. vs. talenta_get_employee), so usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_formal_educationList employee formal educationARead-onlyIdempotentInspect
Formal education history of one employee (degree, institution, major, years, score). Give exactly one of user_id or employee_id. GET /v3/employee/formal-education.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| user_id | No | Talenta user id. | |
| employee_id | No | The company's employee id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a safe, read-only, idempotent operation. The description adds useful context: it is scoped to one employee, requires exactly one identifier, and is a GET endpoint. It does not add richer behavioral details such as pagination behavior or error conditions, but with annotations covering the safety profile this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences plus an endpoint reference. It front-loads the resource and result fields, then gives the key identifier constraint with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description gives enough shape for the return values (degree, institution, major, years, score) and states the identifier constraint. Pagination is only covered by the schema, so a minor gap remains, but the definition is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so page, limit, user_id, and employee_id are already documented. The description adds a meaningful constraint not enforced by the schema: exactly one of user_id or employee_id must be supplied, which helps an agent invoke the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource: formal education history for one employee, with representative fields (degree, institution, major, years, score). It is specific enough to distinguish from sibling tools like list_family_info or get_employee, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is mostly implied by 'of one employee' and the constraint 'Give exactly one of user_id or employee_id.' However, there is no explicit guidance on when to choose this tool over related employee-information siblings, nor any stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_hiring_stagesHiring pipeline countsARead-onlyIdempotentInspect
For each job opening, how many candidates sit in each pipeline phase (screening, assessment, interview, job offer). GET /v3/recruitment/hiring-stages.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). | |
| per_page | No | Results per page, 1-100 (default 10). | |
| branch_ids | No | Only these branch ids. | |
| published_only | No | Only published jobs. | |
| job_position_ids | No | Only these job position ids. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered without the description's help. The description adds the underlying endpoint (GET /v3/recruitment/hiring-stages), which is mild but real context. It says nothing about pagination behavior or the shape of the aggregated result beyond the phase list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the result shape stated first and the endpoint reference trailing. Nothing is repeated from the title or annotations, and the front-loaded clause carries the most decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the necessary work of explaining that results are grouped per job opening with one count per phase, which is the crucial return-shape information for an aggregation tool. Pagination semantics and whether counts include archived/rejected candidates are left unaddressed, which keeps it short of a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (page, per_page, branch_ids, published_only, job_position_ids) are already documented in the schema; the baseline of 3 applies. The description's phrase 'for each job opening' hints that job_position_ids and published_only scope the rollup, but it adds no filter syntax or default behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource and the computation precisely: per-job-opening candidate counts broken out by pipeline phase, with the four phases enumerated (screening, assessment, interview, job offer). An agent can tell this is an aggregate/rollup tool rather than a candidate list. It stops short of naming which sibling to use instead, e.g. talenta_list_candidates for individual records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement, no prerequisite or exclusion, and no reference to alternatives such as talenta_list_jobs or talenta_list_candidates. Usage is only implied by the returned shape — you would call it for a pipeline overview. That is enough for an agent to infer intent, but nothing more.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_job_levelsList job levelsBRead-onlyIdempotentInspect
List the company's job levels with code, status and employee count. GET /v3/company/job-levels.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| search | No | Match by job level name or code. | |
| status | No | 1 = active, 0 = inactive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the concrete return fields and the endpoint path, but says nothing about auth/permission scope, page size behavior, or whether inactive levels are included by default.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero padding, and the resource plus return fields are front-loaded ahead of the endpoint. Nothing here needs to be cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A read-only list tool with rich annotations and a fully documented schema carries most of its own weight; naming the returned fields compensates for the absent output schema. Only the default filtering behavior (e.g. whether inactive levels appear unless status=0) is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each of the four params (page, limit, search, status) is documented in the schema, including the enumeration mapping for status. The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('List the company's job levels') plus the fields returned (code, status, employee count) and the underlying endpoint. It is distinguishable from talenta_list_jobs and talenta_list_job_positions by name, but the description never states that distinction explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or prerequisite guidance. With close siblings like talenta_list_job_positions, talenta_list_jobs, and talenta_list_employment_statuses present, the absence of routing guidance leaves an agent to infer which listing it needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_job_positionsList job positionsBRead-onlyIdempotentInspect
List the company's job positions with level, parent position, branch and status. GET /v3/company/{company_id}/job-positions.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| search | No | Filter by job position name. | |
| status | No | 1 = active, 0 = inactive. | |
| branch_id | No | Only this branch id. | |
| parent_id | No | Only children of this job position id. | |
| company_id | No | Talenta company id (default: the company of the connected credentials). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds the concrete endpoint path and the field set returned, which is useful beyond annotations, but says nothing about pagination semantics, default/total counts, or empty-result behavior in a high-cardinality organizational dataset.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with what is listed and its notable fields, with the endpoint as trailing detail. Nothing is padded, though the raw route adds little for an agent that already has the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With seven optional parameters, no required fields, a fully documented schema and no output schema, the definition is serviceable but thin: it never says the list is filterable/paginated or hints at the shape of the response beyond four column names, and it leaves the jobs-vs-job-positions distinction unresolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters with ranges, defaults and next_page guidance – baseline 3 applies. The description's phrase 'with level, parent position, branch and status' reads as output facets rather than clarifying that branch_id, parent_id and status act as filters, so it adds little semantic value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource (list the company's job positions) and enumerates the salient fields returned (level, parent position, branch, status). It does not distinguish this from the near-sibling talenta_list_jobs or talenta_list_job_levels, which an agent could easily confuse with 'job positions'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intent (retrieve a paginated list of the company's job positions) is implied clearly enough to call it, but there is no explicit when-to-use vs. talenta_list_jobs, no mention that the schema supports search/status/branch/parent filtering, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_jobsList recruitment jobsARead-onlyIdempotentInspect
Job openings of the company, newest first. Filter by keyword, branch, job position, or only those live on the career page. GET /v3/recruitment/jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). | |
| keyword | No | Search the job alias or id. | |
| per_page | No | Results per page, 1-100 (default 10). | |
| branch_ids | No | Only these branch ids. | |
| published_only | No | Only jobs live on the career page. | |
| job_position_ids | No | Only these job position ids. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered without the description. The description adds the default sort order (newest first), which is genuinely useful, but says nothing about pagination behavior, result volume, or response shape beyond what the schema covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences plus an endpoint path, with the resource and sort order front-loaded. There is no filler, though the endpoint path is arguably redundant for an agent that already has the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, all-optional read-only list tool with full schema coverage and complete annotations, the description tells the agent enough to call it correctly. The only gap is the absence of an output schema paired with no note about what a job record contains, which is a minor shortfall for a list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented (page, per_page, keyword searches alias or id, branch_ids, published_only, job_position_ids). The description merely paraphrases those filters and adds no syntax, combination rules, or format details; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ("Job openings of the company") plus ordering ("newest first") and the endpoint, so the agent knows this is a scoped list operation. It does not explicitly distinguish itself from the sibling talenta_get_job, which is the main thing keeping it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the filter list (keyword, branch, job position, career-page-only) hints at when to reach for this tool, but there is no explicit "use this when..." or "for a single job use talenta_get_job instead". An agent must infer the boundary from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_live_attendanceList live attendance of an employeeBRead-onlyIdempotentInspect
Live attendance records (check-in/out time, location, schedule) of one employee in a date range. GET /v3/live-attendance.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Talenta user id. | |
| end_date | Yes | To (yyyy-mm-dd). | |
| start_date | Yes | From (yyyy-mm-dd). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world, so safety is covered. The description adds real value by disclosing the returned payload fields (check-in/out time, location, schedule) and the underlying endpoint, but stays silent on pagination, result caps, or behavior for dates with no records — meaningful gaps for a date-range list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler; the resource and its returned fields are front-loaded, and the endpoint reference is a compact trailing anchor. Nothing to cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing return content and does so by listing the three record fields, which is enough for an agent to know what comes back. Only pagination/empty-result behavior and guidance against overlapping siblings are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so user_id, start_date, and end_date are already documented with types and formats. The description reinforces the 'one employee' and 'date range' framing but adds no syntax, timezone, or boundary semantics beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (live attendance records) with named contents (check-in/out time, location, schedule) and scope (one employee, date range). An agent can distinguish it from the broad sibling set, though it never explicitly contrasts it with talenta_attendance_summary or talenta_list_timesheets, which overlap in domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no exclusion, and no named alternative. The only implicit signal is 'of one employee in a date range', which at best hints that a user_id is mandatory. Given siblings like talenta_attendance_summary and talenta_list_timesheets, an agent receives no help choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_organizationsList organizationsARead-onlyIdempotentInspect
List the company's organizations (departments) with parent organization and branch. GET /v2/company/{company_id}/organization.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| search | No | Filter by organization name. | |
| company_id | No | Talenta company id (default: the company of the connected credentials). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds value by disclosing the underlying GET endpoint and which related fields come back (parent organization, branch), which matters since there is no output schema. It does not mention pagination behavior or whether the list is flat vs hierarchical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence stating resource, scope and included fields, followed by the endpoint path. No filler; the endpoint is slightly redundant but cheap and useful for tracing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paginated list tool with full schema coverage and read-only annotations, the description is largely complete, and it partially compensates for the missing output schema by naming the returned fields. It would be stronger if it clarified whether results are hierarchical or flat and how search interacts with paging.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four parameters are documented in the schema, including the next_page paging hint and the company_id default. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ("List the company's organizations") with a useful disambiguation that organizations are departments and that parent organization and branch are included. It does not explicitly contrast with the closest sibling, talenta_list_branches, which also returns branch data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb and scope, and the endpoint path confirms it is a company-scoped read. There is no explicit when-to-use guidance, no exclusion of talenta_list_branches, and no note about when the optional search filter should be preferred over paging.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_overtime_requestsList overtime requestsARead-onlyIdempotentInspect
Overtime requests in a date range (at most one year), with employee, date, duration, compensation type and status. GET /v3/overtime/request.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| end_date | Yes | To (yyyy-mm-dd), at most one year after start_date. | |
| user_ids | No | Only requests of these Talenta user ids. | |
| start_date | Yes | From (yyyy-mm-dd). | |
| request_status | No | Only these statuses. | |
| employee_search | No | Search by employee name or id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the bar is low. The description's one genuinely additive fact is the maximum one-year window, which the schema also encodes; it says nothing about result volume, pagination, or how the endpoint behaves on oversized ranges.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the resource and its key constraint. The trailing 'GET /v3/overtime/request' earns little for an agent invoking an MCP tool, but it costs only a few tokens.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description still names the fields an agent will get back, which is the main thing needed for a paginated read tool. Combined with the fully described schema, only pagination behavior and how status values surface are left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – every one of the 7 parameters is documented, including the page/limit defaults and the one-year relationship between start_date and end_date. The description only restates the date-range constraint, adding no filtering semantics (e.g. how user_ids and employee_search combine).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (overtime requests) and enumerates the returned fields (employee, date, duration, compensation type, status), so an agent can tell it apart from talenta_list_time_off_requests or talenta_list_timesheets. The verb 'list' is implied rather than stated, and no sibling is named, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The one-year date-range cap is the only usage constraint given. There is no guidance on when to prefer this over the adjacent time-off or timesheet list tools, or on when to filter with user_ids vs employee_search; usage is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_payroll_infoList employee payroll infoARead-onlyIdempotentInspect
Payroll setup of the company's employees: tax status (PTKP), NPWP, BPJS numbers, bank account. Sensitive payroll and bank data. Filter by status, branch, organization, job position, employment status, job level, user ids or modified date. GET /v3/payroll.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| order | No | Sort direction. | |
| status | No | 0 = active employees, 1 = resigned. | |
| user_ids | No | Only these Talenta user ids. | |
| branch_ids | No | Only these branch ids. | |
| job_level_ids | No | Only these job level ids. | |
| job_position_ids | No | Only these job position ids. | |
| organization_ids | No | Only these organization ids. | |
| modified_end_date | No | Modified on or before (yyyy-mm-dd). | |
| modified_start_date | No | Modified on or after (yyyy-mm-dd). | |
| employment_status_ids | No | Only these employment status ids. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuine value beyond that: it flags the payload as 'Sensitive payroll and bank data' (a handling instruction an agent should act on) and cites the concrete endpoint GET /v3/payroll. It omits rate limits and payload shape, but those are secondary given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with what the tool returns before the filter list. The trailing 'GET /v3/payroll' is mildly redundant but cheap and useful for tracing. No wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 12 all-optional parameters, no output schema and full schema coverage, the description supplies what the schema cannot: the identity of the returned fields and the sensitivity of the data. Pagination and sorting defaults are already spelled out in the schema, so their absence here is not a gap. Only the lack of sibling routing keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – every one of the 12 parameters, including the status enum mapping (0=active, 1=resigned) and date formats, is documented in the schema itself. The description's filter list simply restates those parameter names without adding format or edge-case meaning. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Payroll setup of the company's employees') and enumerates the exact data returned: PTKP tax status, NPWP, BPJS numbers, bank account. That is far more concrete than the title alone. It stops short of naming how it differs from sibling talenta_get_payroll_report or talenta_get_employee, which cover overlapping payroll territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence listing filter dimensions (status, branch, organization, job position, employment status, job level, user ids, modified date) tells an agent how to narrow results, which implies usage. However, there is no explicit when-to-use or when-not, and no routing to talenta_get_payroll_report or talenta_list_employees when a different payroll view is wanted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_reimbursementsList reimbursement requestsARead-onlyIdempotentInspect
Reimbursement requests of the company with employee, policy, amount and approval/disbursement status. Filter by employee, status, policy or request date. GET /v3/reimbursement.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| status | No | Request status. | |
| full_name | No | Only employees with this name. | |
| id_employee | No | Only this employee id. | |
| policy_name | No | Only this reimbursement policy (by name). | |
| end_request_date | No | Requested on or before (yyyy-mm-dd). | |
| start_request_date | No | Requested on or after (yyyy-mm-dd). | |
| disbursement_status | No | Disbursement status. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered without prose. The description adds useful context by enumerating what each record contains, but says nothing about pagination, ordering, or default result volume for a company-wide list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what the tool returns before the filtering options. The trailing 'GET /v3/reimbursement' is mildly useful for traceability but borders on filler for an agent that cannot make raw HTTP calls.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully compensates by listing the record fields an agent will receive. Nine optional parameters are all documented in the schema, so the only real gap is the absence of pagination/volume expectations for an unfiltered company-wide listing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with per-parameter descriptions and two enums, so the schema carries parameter meaning entirely. The description's filter list mirrors parameters already documented in the schema and adds no format or combination semantics (e.g., whether status and disbursement_status can be combined).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (reimbursement requests), the entity scope (company-wide), and the returned fields (employee, policy, amount, approval/disbursement status), which lets an agent distinguish it from payroll or time-off siblings. It is written as a noun phrase rather than a verb+resource statement, but the title and endpoint make the list operation unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Filter by employee, status, policy or request date' implies how the tool is used, but there is no statement of when to prefer it over alternatives, no prerequisites, and no exclusions. Since no sibling tool overlaps with reimbursements, the missing guidance is low-risk but still absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_reprimandsList reprimandsBRead-onlyIdempotentInspect
Reprimand letters (SP 1/2/3 or custom) with the employee, dates and status. GET /v3/reprimand.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| type | No | 1 = SP 1, 2 = SP 2, 3 = SP 3, 99 = custom. | |
| limit | No | Results per page, 1-100 (default 10). | |
| search | No | Keyword. | |
| status | No | 1 = active, 2 = canceled, 3 = expired. | |
| end_date | No | Reprimand range end (yyyy-mm-dd). | |
| start_date | No | Reprimand range start (yyyy-mm-dd). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds only the underlying endpoint (GET /v3/reprimand), which mildly reinforces the read-only nature but discloses nothing about pagination behavior, result ordering, or scope limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, and the resource identity is front-loaded before the endpoint. It is arguably under-written rather than over-written, but nothing wastes space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a fully documented 7-parameter schema, complete annotations, and no output schema, the description supplies what remains: the resource identity, the variant taxonomy, and the underlying endpoint. Nothing an agent needs in order to invoke this list call correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (page, limit, type, status, search, start_date, end_date) is already documented with formats and enum meanings. The description's 'SP 1/2/3 or custom' merely restates the type parameter's schema text, adding no new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (reprimand letters) and enumerates the distinguishing variants (SP 1/2/3 or custom) plus the fields carried (employee, dates, status), which cleanly separates it from every sibling. It lacks an explicit verb ('list' only appears in the title), so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus alternatives, no prerequisites, and no mention of how to combine the optional filters. The reader must infer 'use this to browse reprimands' from the title alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_schedulesList employee schedulesARead-onlyIdempotentInspect
The current work schedule (shift pattern) of each employee, filterable by schedule name, branch and organization. GET /v3/schedule.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| schedule | No | Only this schedule name. | |
| branch_ids | No | Only these branch ids. | |
| organization_ids | No | Only these organization ids. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds the meaningful qualifier 'current' and exposes the backing endpoint GET /v3/schedule, but says nothing about result size, pagination defaults, authorization needs or ordering. Some added value beyond annotations, but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: the resource description is front-loaded and the endpoint reference trails it. Nothing is padded or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with fully documented parameters and no output schema, this covers what the tool returns and how it can be narrowed. The remaining gap is that the per-employee record shape is unspecified, though that is partly acceptable for a list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and every filter (schedule, branch_ids, organization_ids) plus pagination is already documented in the schema. The description only echoes those filter names without adding matching semantics such as exact-match vs partial-name behavior, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: the current work schedule/shift pattern of each employee, plus the filterable dimensions. No sibling tool covers schedules, so the distinction from talenta_list_employees, talenta_list_timesheets or talenta_list_live_attendance is implicit but fairly evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'current work schedule' and the listed filters, which hints that only present schedules (not historical patterns) are returned. There is no explicit when-to-use statement and no routing to any alternative tool for related data such as attendance or timesheets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_time_off_requestsList time off requestsARead-onlyIdempotentInspect
Time off (leave) requests of the company in a date range, optionally for one user or one status. GET /v2/time-off.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Only this request status. | |
| user_id | No | Only this Talenta user id. | |
| end_date | Yes | End of the period (yyyy-mm-dd). | |
| start_date | Yes | Start of the period (yyyy-mm-dd). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide excellent behavioral context (readOnlyHint: true, destructiveHint: false). The description complements this by clarifying the operational scope ('of the company'), which is important context regarding the data set's boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and follows a logical flow, defining the resource/scope first, and then providing technical context (HTTP method and path) at the end. There is no padding or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the completeness of the input schema and the clarity of the annotations, the description is fully sufficient to enable an AI agent to select and invoke this tool confidently. It covers the 'what,' 'where,' and 'how' without redundancy or omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 100%, the description's role is supervisory. It effectively signals which parameters are optional (user or status) and reinforces the primary constraints (date range), fulfilling the baseline requirement for a description supporting a well-documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the resource being retrieved ('Time off (leave) requests') and the primary scope ('of the company in a date range'). It is specific enough to distinguish itself from other Talenta list tools, particularly those focused on attendance or candidates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage conditions by listing optional filters (user or status), but it lacks explicit guidance on when to choose this tool over highly related siblings like 'talenta_list_schedules' or 'talenta_time_off_balance_history'. It tells you what you can do, but not necessarily when you should use it vs. an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_list_timesheetsList timesheetsBRead-onlyIdempotentInspect
Company timesheet entries (activity, duration, task, assignee) in a date range. GET /v3/timesheet.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| end_date | No | To (yyyy-mm-dd). | |
| start_date | No | From (yyyy-mm-dd). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered by structured fields. The description adds the underlying endpoint (GET /v3/timesheet) and enumerates the entity fields returned, which is real added context, but says nothing about result volume, defaults, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments that front-load the resource and its fields, with zero filler; the endpoint path is a useful anchor for developers. It reads as a terse note rather than a sentence, which costs a point but wastes no space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description's partial field list (activity, duration, task, assignee) does some of the work of explaining returns, and the annotations carry the safety profile. However, for a paginated list tool it omits pagination behavior, total counts, and any note on required permissions or tenant scoping, leaving genuine gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema documents page, limit, and the yyyy-mm-dd format for start_date/end_date. The description only echoes the date-range concept, adding no format, default, or boundary detail beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource (company timesheet entries) and the shape of the data returned (activity, duration, task, assignee) scoped to a date range, which is enough to distinguish it from attendance or schedule tools. It lacks an explicit verb and never names the closest sibling, so it stops short of perfect differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in a date range' weakly implies when it applies, but there is no explicit when-to-use, no exclusions, and no pointer to alternatives such as talenta_list_live_attendance or talenta_list_schedules. An agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_time_off_balance_historyTime off balance historyARead-onlyIdempotentInspect
Per-employee time off balances over a period: beginning balance, taken, adjustment, expired, carry forward, ending balance, per policy. GET /v3/time-off/balance-history.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| end_date | No | To this date (yyyy-mm-dd). | |
| start_date | No | From this date (yyyy-mm-dd). | |
| policy_name | No | Only this time off policy (by name). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so safety and idempotency are covered. The description earns credit by enumerating the returned balance components (beginning, taken, adjustment, expired, carry forward, ending) even though no output schema exists, plus the underlying endpoint. It omits any note about pagination behavior or endpoint rate limits, which keeps it out of 5 territory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse fragments, front-loaded with the resource and its returned fields, with zero filler. It could be slightly more structured by separating scope from return contents, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing every returned metric, and pagination is fully documented in the schema. For a read-only reporting endpoint with all-optional filters, the definition gives an agent enough to call it correctly, with only sibling disambiguation as a residual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including date format (yyyy-mm-dd) and pagination guidance, so the schema carries the parameter burden and the baseline of 3 applies. The description only restates the period and policy scoping that the parameter names already convey, adding no syntax or default details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (time off balances), the granularity (per-employee, per policy), and enumerates the fields reported, so an agent knows exactly what data comes back. It does not, however, distinguish itself from the very similar sibling talenta_time_off_balance_log, which is the main ambiguity in this tool family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus talenta_time_off_balance_log or talenta_list_time_off_requests, and no note on whether start_date/end_date are effectively required in practice even though the schema marks them optional. Usage is only implied by the phrase 'over a period'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talenta_time_off_balance_logTime off balance logBRead-onlyIdempotentInspect
The log of time off balance changes (requests, adjustments, expiries) per employee and policy. GET /v3/time-off/balance-log.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply. | |
| limit | No | Results per page, 1-100 (default 10). | |
| end_date | No | To this date (yyyy-mm-dd). | |
| start_date | No | From this date (yyyy-mm-dd). | |
| policy_name | No | Only this time off policy (by name). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower. The description adds that this is a change log covering three event classes, which helps an agent know it is an audit trail rather than current balances; however, it says nothing about ordering of results, volume, or pagination behavior, which matters for an openWorld read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and its scope, with the endpoint appended for reference. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should say something about the returned record shape (fields per change entry) so the agent knows what it gets back; it does not. Pagination and filtering are covered only in the schema. Adequate to invoke correctly, but thin on the result side for an audit-log tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (page, limit, start_date, end_date, policy_name) is already documented with formats and defaults. The description adds no parameter semantics beyond the schema, which is acceptable but no bonus.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific resource ('the log of time off balance changes') and enumerates the change types (requests, adjustments, expiries) plus the per-employee/per-policy scope, which is much better than the tautological title. It stops short of differentiating from the near-identical sibling talenta_time_off_balance_history, leaving the agent to guess which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this rather than talenta_time_off_balance_history or talenta_list_time_off_requests. The parenthetical event list implies audit-style usage but neither exclusions nor alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
30 tool updates
- First observed
talenta_attendance_summary - First observed
talenta_get_candidate - First observed
talenta_get_company_info - First observed
talenta_get_employee - First observed
talenta_get_employment_info - First observed
talenta_get_job - First observed
talenta_get_payroll_report - First observed
talenta_list_branches - First observed
talenta_list_candidates - First observed
talenta_list_delegations - First observed
talenta_list_employee_transfers - First observed
talenta_list_employees - First observed
talenta_list_employment_statuses - First observed
talenta_list_family_info - First observed
talenta_list_formal_education - First observed
talenta_list_hiring_stages - First observed
talenta_list_job_levels - First observed
talenta_list_job_positions - First observed
talenta_list_jobs - First observed
talenta_list_live_attendance - First observed
talenta_list_organizations - First observed
talenta_list_overtime_requests - First observed
talenta_list_payroll_info - First observed
talenta_list_reimbursements - First observed
talenta_list_reprimands - First observed
talenta_list_schedules - First observed
talenta_list_time_off_requests - First observed
talenta_list_timesheets - First observed
talenta_time_off_balance_history - First observed
talenta_time_off_balance_log
Related MCP Connectors
MCP server for SmartHR — employees, departments, dependents and employee invitations.
231MCP server providing attendance data queries via the CloudTime API.
MCP server for Mekari Jurnal — company accounting, sales, purchases and customer/vendor creation.
381- mcp-serverOAuthio.klokin
MCP server exposing klokin time-tracking operations (employees, time entries, stores) to AI clients.
Related MCP Servers
- FlicenseAqualityDmaintenanceMCP server for the Keka HRM API, enabling HR operations like employee management, leave, attendance, payroll, recruitment, and PSA.17-
- FlicenseAqualityDmaintenanceRead-only MCP server for the Tipsoi HRM API, exposing 15 tools to read employee data, attendance, leave, overtime, and more.153-
- AlicenseNot gradedqualityAmaintenanceMCP server for programmatically accessing your own Toptal Talent profile, including profile management, applications, jobs, timesheets, and more.AGPL 3.0
- AlicenseAqualityBmaintenanceMCP server for the Personio HR API with employee and HR profiles, enabling self-service and HR operations like managing absences, attendances, documents, and organizational data.10Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.