Skip to main content
Glama
borgels

mcp-server-personio

by borgels

mcp-server-personio

MCP server for the Personio HR API with two profiles and per-user scoping.

Profiles

One image, selected by PERSONIO_PROFILE:

  • employee — self-service, hard-scoped to the requesting user: personio_get_my_profile, personio_get_my_absences (+ balances), personio_request_absence, personio_get_my_attendances, personio_record_attendance (WORK/BREAK periods, project tagging), personio_get_my_documents (incl. e-signature status + download), personio_list_absence_types, personio_list_projects, personio_whoami. The gateway forwards the verified user email (X-MCP-User, honored when PERSONIO_TRUST_FORWARDED_USER=true); the server resolves it to a person id and pins every call to it — Personio has no on-behalf-of mechanism, so this scoping is enforced here. Unknown emails fail closed.

  • hr — the HR workbench: persons + employments (list/get/update), absences and attendances for anyone (list/create/delete), projects (full CRUD + members), compensation entries/types/jobs/salary bands (read-only — API-created compensation can never be corrected, so creation is deliberately not exposed), documents (list/download/upload), org data (legal entities, departments, teams, cost centers, workplaces), custom reports, recruiting reads (applications/candidates/jobs/categories), and an attribute-whitelist diagnostic. Write tools additionally require PERSONIO_ENABLE_WRITES=true.

Related MCP server: MCP Employee Identity Server

Guarantees

  • skip_approval is never sent — absence/attendance writes always enter Personio's normal approval workflow (the v2 default; v1's silent-bypass default is one reason this server is v2-first).

  • No delete-person tool. Employee-profile tools never accept foreign person ids.

  • Only credential-whitelisted attributes are returned by Personio — personio_list_attributes shows what your credential can see (missing attributes are omitted silently, not errored).

Not possible via Personio's public API

Performance, surveys, whistleblowing, onboarding checklists, workflow automations (beyond outbound webhooks), e-signature initiation, and approving pending absence requests have no public API — those remain in the Personio UI.

Auth

One client_id/client_secret pair (Settings → Integrations → API credentials) drives both API generations: OAuth2 client-credentials against /v2/auth/token (form-encoded) for v2, and the stable 24h papi- token from /v1/auth for the two v1-only flows (absence balances, document upload).

Run

npm install
npm run dev          # stdio
npm run dev:http     # streamable HTTP on :3000/mcp (stateless)
npm test

Docker images: ghcr.io/borgels/mcp-server-personio (published on push to main).

Available Tools

10 tools
personio_get_my_absencesMy Absences (Personio)B
Read-onlyIdempotent

Your absence periods; includeBalance=true also returns your remaining balance per absence type.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
endsBeforeNo
startsAfterNo
includeBalanceNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds 'Your' to indicate it returns the user's own absences, which is not in annotations. Annotations already declare readOnlyHint, idempotentHint, etc., so the description complements them well without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and every word adds value. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 5 optional parameters and no output schema, the description omits pagination (cursor, limit), date filtering (endsBefore, startsAfter), and any mention of return format. It is too brief for a listing tool with such configuration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Of the 5 parameters, only includeBalance is explained (toggle for returning balance). The other 4 (limit, cursor, endsBefore, startsAfter) have no description, and schema coverage is 0%. This leaves pagination and date filtering undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns 'absence periods' for the user, which matches the tool name. While it doesn't explicitly differentiate from siblings like personio_request_absence, the verb 'get' and resource 'absences' are clear enough. The mention of includeBalance adds specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a usage hint for includeBalance parameter but does not guide when to use this tool over siblings. For example, it doesn't mention that this is for the user's own absences only, or contrast with personio_request_absence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

personio_get_my_attendancesMy Attendances (Personio)C
Read-onlyIdempotent

Your tracked work and break periods.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
endsBeforeNo
startsAfterNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations fully cover safety (read-only, idempotent, non-destructive). However, the description adds no behavioral context such as pagination support via cursor and limit, or date filtering via startsAfter/endsBefore. The agent is left guessing about output format or additional constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (5 words) but at the expense of completeness. It fails to convey enough information for the agent to use the tool correctly, so it is under-specified rather than efficiently concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no schema descriptions, no output schema, and a terse description, the tool is severely incomplete. Essential information about pagination, date filtering, and result format is missing, making it difficult for an agent to invoke correctly without additional knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the tool description provides no explanations for any of the 4 parameters (limit, cursor, endsBefore, startsAfter). The agent has no guidance on how to use filters or pagination.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Your tracked work and break periods' indicates the resource but lacks an explicit verb like 'list' or 'get'. It distinguishes from sibling tools like absences and documents, but the wording is more like a label than an action description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as personio_record_attendance for entering attendances or personio_get_my_absences for absences. The description does not mention prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

personio_get_my_documentsMy Documents (Personio)B
Read-onlyIdempotent

Your HR documents with e-signature status; set documentId+download=true to fetch content.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
downloadNo
maxBytesNo
categoryIdNo
documentIdNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds that documents have e-signature status and download behavior, but doesn't elaborate on other behavioral aspects (e.g., pagination, error cases). Adequate given 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Exceptionally concise single sentence, front-loaded with primary purpose and a critical usage pattern. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters, no output schema, and only two parameters described, the description is incomplete. Key aspects like pagination (cursor, limit), maximum bytes, and category filtering are omitted, leaving the agent uncertain about full capabilities.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. Only documentId and download are explained; the other four parameters (limit, cursor, maxBytes, categoryId) are left undefined. The description adds minimal semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves HR documents and mentions e-signature status, distinguishing it from sibling tools like absences or profile. However, it could explicitly state the action verb (e.g., 'Retrieve') and scope, but the intent is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a specific usage hint (documentId+download=true to fetch content), but lacks guidance on when to use this tool versus alternatives, no prerequisites, no exclusions. For a tool with many siblings, this is insufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

personio_get_my_profileMy Profile (Personio)A
Read-onlyIdempotent

Your own HR master data and employment. Only credential-whitelisted attributes are returned.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by noting that only credential-whitelisted attributes are returned, which is not covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the tool's purpose and a key behavioral constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, rich annotations, and no output schema, the description is complete enough to inform an AI agent. A brief note about what 'master data' includes could enhance clarity but is not necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters are defined, so schema coverage is 100%. The baseline for zero parameters is 4, and the description adds no parameter-specific detail, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns 'Your own HR master data and employment' and mentions credential-whitelisted attributes, distinguishing it from sibling tools on other HR domains like absences or attendances.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving the caller's own profile data, but does not explicitly state when to use it over alternatives or provide exclusion criteria. The sibling list provides implicit context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

personio_list_absence_typesList Absence Types (Personio)A
Read-onlyIdempotent

Available absence types and their ids (needed for absence requests).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, which cover safety and idempotency. The description adds valuable context that the output provides IDs needed for absence requests, which is beyond what annotations provide. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It conveys the core purpose and usage context directly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of output schema and 0% schema description coverage, the description is too minimal. It does not mention that the tool returns a list, how pagination works, or any structure of the response. For a simple listing tool, more detail would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 2 optional parameters (limit, cursor) with 0% description coverage. The description does not explain these parameters or mention pagination behavior, leaving the agent to infer from schema alone. Since coverage is low, the description should compensate but fails to do so.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists absence types and their IDs, and explicitly notes the IDs are needed for absence requests. This is specific and distinguishes it from sibling tools like personio_get_my_absences (list individual absences) and personio_request_absence (uses these IDs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage before requesting an absence ('needed for absence requests'), but does not explicitly state when to use this tool versus alternatives like personio_search_capabilities or personio_get_my_absences. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

personio_list_projectsList Projects (Personio)B
Read-onlyIdempotent

Time-tracking projects (for tagging attendance).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide safety traits (readOnly, idempotent, openWorld). The description adds purpose context but no additional behavioral details like pagination or response format. With annotations, the bar is lower; this is adequate but not enriching.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (6 words), which is concise but omits important details. It is front-loaded but could be structured better by including parameter hints or return value info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and parameter descriptions, the description is incomplete. It does not explain what is returned, pagination, or parameter usage, leaving the agent with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage; the description does not explain the parameters (limit, cursor) at all. An agent gets no guidance on pagination or how to use them, despite them being standard.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource ('time-tracking projects') and its purpose ('for tagging attendance'). It distinguishes from sibling tools that deal with absences, attendances, documents, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing to tag attendance, but lacks explicit when-to-use, when-not-to-use, or alternative tool guidance. No mention of prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

personio_record_attendanceRecord Attendance (Personio)A

Record a WORK or BREAK period for yourself (breaks are separate periods). WORK periods can be tagged with a projectId. Goes through the approval workflow; max 24h per period.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes
typeYes
startYesISO 8601 start, e.g. 2026-07-15T08:00:00Z
commentNo
projectIdNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is not read-only and not destructive. The description adds valuable behavioral context: it goes through an approval workflow and has a 24-hour limit per period, which aids agent decision-making without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at three short sentences, each adding distinct information: primary action, parameter hint, and behavioral trait. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple record creation tool with no output schema, the description covers core action, parameter hints, approval flow, and duration limit. It lacks details on conflict handling or editing, but remains reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (20%), with only 'start' described. The description adds meaning for 'projectId' (tagging for WORK) and implies 'type' differentiation, but does not elaborate on 'end' format (beyond the schema) or 'comment', leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action (record a WORK or BREAK period), scope (for yourself), and key details (breaks are separate, projectId tagging). It clearly distinguishes from sibling tools like personio_get_my_attendances (read) and personio_request_absence (absence recording).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for usage (recording work/break periods) and includes constraints (approval workflow, max 24h). While it does not explicitly list when not to use, the tool name and siblings make the intended use evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

personio_request_absenceRequest Absence (Personio)A

Submit an absence request for yourself (vacation etc.). Half days via startHalf/endHalf; omit endDate for open-ended. Always goes through the normal approval workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNo
endDateNo
endHalfNo
startDateYes
startHalfNo
absenceTypeIdYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already show write/non-destructive behavior. Description adds that the request goes through normal approval workflow, which is critical behavioral context not captured by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant words, front-loaded essential info. Efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description mentions approval workflow. Could mention return value (e.g., created request ID) but still adequate for the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% coverage; description explains half-day enums, optional endDate for open-ended, and implies comment is free text. Adds meaning beyond raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Submit an absence request for yourself (vacation etc.)', specifying the action (submit) and resource (absence). Distinguishes from siblings like get_my_absences (read) or record_attendance (different action).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions self-request, half-day via parameters, open-ended by omitting endDate, and approval workflow. Provides context for usage, though does not explicitly list when not to use or compare to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

personio_search_capabilitiesSearch Personio CapabilitiesA
Read-onlyIdempotent

Search the Personio MCP server capabilities and examples. Use this first when deciding which tool to call.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds that it searches for 'capabilities and examples,' which is contextual beyond annotations. No contradiction is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise—two sentences that convey the tool's action and usage guidance. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description is clear for a meta-tool, it lacks detail on what 'capabilities and examples' means and does not explain the response format. No output schema is provided, so agents may be uncertain about the output structure. However, given the tool's simplicity, this is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter meaning. However, the description does not mention either parameter (limit or query), leaving the agent to infer their function from names alone. This is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search the Personio MCP server capabilities and examples.' It uses a specific verb ('Search') and resource ('capabilities and examples'), and distinguishes itself from sibling tools (which are specific actions like absences, attendances) by being a meta-tool for discovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this first when deciding which tool to call,' which provides clear when-to-use guidance. It does not explicitly mention when not to use or alternatives, but the 'first' directive implies it should be used before other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

personio_whoamiWho Am I (Personio)A
Read-onlyIdempotent

Show which Personio person this session is scoped to.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive. Description adds 'session scoped' context. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence, no wasted words, well front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, simple identity query, the description combined with annotations is fully sufficient. No output schema needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters; schema coverage is 100%. Description need not add parameter details. Baseline 4 for zero-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Show' and resource 'Personio person this session is scoped to', clearly distinguishing from sibling tools about absences, attendances, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly clear when to use: when needing current Personio identity. No explicit exclusions or alternatives, but context is sufficient for this simple tool.

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.

  1. 10 tool updatesv0.1.0
    • First observedpersonio_get_my_absences
    • First observedpersonio_get_my_attendances
    • First observedpersonio_get_my_documents
    • First observedpersonio_get_my_profile
    • First observedpersonio_list_absence_types
    • First observedpersonio_list_projects
    • First observedpersonio_record_attendance
    • First observedpersonio_request_absence
    • First observedpersonio_search_capabilities
    • First observedpersonio_whoami

TDQS

A3.5/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: viewing vs. requesting absences, listing reference data, recording attendance, etc. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow a consistent 'personio_verb_noun' snake_case pattern, with verbs like 'get_my', 'list', 'record', 'request', 'search', and 'whoami'.

Tool Count5/5

With 10 tools, the set is well-scoped for an HR self-service MCP server, covering common employee actions without being overwhelming.

Completeness4/5

The tools cover core HR self-service operations (view/request absences, view/record attendances, view documents/profile, list reference data). Missing cancellation or update actions, but the domain is adequately covered for typical use.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers