Skip to main content
Glama
mz462
by mz462

mcpPaylocity MCP 서버

대장간 배지

Paylocity API 엔드포인트에서 데이터를 가져오는 MCP(Model Context Protocol) 서버입니다.

구성 요소

자원

서버는 다음을 사용하여 Paylocity API 리소스를 구현합니다.

  • Paylocity 데이터에 액세스하기 위한 사용자 지정 paylocity:// URI 체계

  • 다음과 같은 리소스를 이용할 수 있습니다.

    • paylocity://employees/{company_id} - 회사의 모든 직원을 나열합니다.

    • paylocity://employees/{company_id}/{employee_id} - 특정 직원에 대한 세부 정보를 가져옵니다.

    • paylocity://earnings/{company_id}/{employee_id} - 특정 직원의 소득 데이터 가져오기

    • paylocity://codes/{company_id}/{code_resource} - 특정 리소스에 대한 회사 코드를 가져옵니다.

    • paylocity://localtaxes/{company_id}/{employee_id} - 특정 직원의 지역 세금을 가져옵니다.

    • paylocity://paystatement/{company_id}/{employee_id}/{year}/{check_date} - 특정 날짜의 급여 명세서 세부 정보를 가져옵니다.

도구

서버는 다음 도구를 구현합니다.

  • fetch_employees - 회사의 모든 직원을 가져옵니다.

    • 선택적인 company_id 매개변수를 사용합니다.

  • fetch_employee_details - 특정 직원의 세부 정보를 가져옵니다.

    • 필수 employee_id 및 선택적 company_id 매개변수를 사용합니다.

  • fetch_employee_earnings - 특정 직원의 수입 데이터를 가져옵니다.

    • 필수 employee_id 및 선택적 company_id 매개변수를 사용합니다.

  • fetch_company_codes - 특정 리소스에 대한 회사 코드를 가져옵니다.

    • 필수 code_resource 및 선택적 company_id 매개변수를 사용합니다.

  • fetch_employee_local_taxes - 특정 직원의 지역 세금을 가져옵니다.

    • 필수 employee_id 및 선택적 company_id 매개변수를 사용합니다.

  • fetch_employee_paystatement_details - 특정 날짜의 급여 명세서 세부 정보를 가져옵니다.

    • 필수 employee_id , year , check_date 및 선택적 company_id 매개변수를 사용합니다.

Related MCP server: Paylocity MCP Server by CData

향후 구현

다음 엔드포인트는 향후 업데이트에서 구현될 예정입니다.

  • [ ] 상위 수준의 통찰력(예: 이직률, 부서별 직원 수, 요율 비교 등)

구성

서버에는 다음 환경 변수를 설정해야 합니다.

  • PAYLOCITY_CLIENT_ID - Paylocity API 클라이언트 ID

  • PAYLOCITY_CLIENT_SECRET - Paylocity API 클라이언트 비밀번호

  • PAYLOCITY_COMPANY_IDS - 사용할 회사 ID의 쉼표로 구분된 목록

  • PAYLOCITY_ENVIRONMENT - 사용할 API 환경( production 또는 testing )

이는 프로젝트 루트 디렉토리의 .env 파일에서 설정할 수 있습니다.

보안

⚠️ 중요 : 이 애플리케이션은 src/mcppaylocity/access_token/ 디렉터리에 인증 토큰을 캐시합니다. 이 파일에는 민감한 자격 증명이 포함되어 있으므로 버전 관리에 커밋해서는 안 됩니다.

저장소에는 이러한 경로가 .gitignore 에 포함되어 있지만 변경 사항을 푸시할 때 토큰 파일이 실수로 커밋되지 않도록 확인하세요.

실수로 토큰 파일을 커밋한 경우 다음 단계를 따르세요.

  1. 저장소에서 파일을 제거합니다: git rm --cached src/mcppaylocity/access_token/token.json src/mcppaylocity/access_token/token_info.txt

  2. 제거를 커밋합니다: git commit -m "Remove accidentally committed token files"

  3. Paylocity API 자격 증명이 손상되었을 수 있으므로 해당 자격 증명을 교체하는 것을 고려하세요.

빠른 시작

설치하다

클로드 데스크탑

MacOS의 경우: ~/Library/Application\ Support/Claude/claude_desktop_config.json Windows의 경우: %APPDATA%/Claude/claude_desktop_config.json

지엑스피1

"mcpServers": {
  "mcpPaylocity": {
    "command": "uvx",
    "args": [
      "mcppaylocity"
    ]
  }
}

개발

건축 및 출판

배포를 위해 패키지를 준비하려면:

  1. 종속성 동기화 및 잠금 파일 업데이트:

uv sync
  1. 패키지 배포 빌드:

uv build

이렇게 하면 dist/ 디렉토리에 소스와 휠 배포판이 생성됩니다.

  1. PyPI에 게시:

uv publish

참고: 환경 변수나 명령 플래그를 통해 PyPI 자격 증명을 설정해야 합니다.

  • 토큰: --token 또는 UV_PUBLISH_TOKEN

  • 또는 사용자 이름/비밀번호: --username / UV_PUBLISH_USERNAME 및 --password / UV_PUBLISH_PASSWORD

디버깅

MCP 서버는 stdio를 통해 실행되므로 디버깅이 어려울 수 있습니다. 최상의 디버깅 환경을 위해서는 MCP Inspector 사용을 강력히 권장합니다.

다음 명령을 사용하여 npm 통해 MCP Inspector를 시작할 수 있습니다.

npx @modelcontextprotocol/inspector uv --directory /path/to/mcpPaylocity run mcppaylocity

Inspector를 실행하면 브라우저에서 접근하여 디버깅을 시작할 수 있는 URL이 표시됩니다.

건축학

서버는 다음 구성 요소로 구축되었습니다.

  1. PaylocityClient - Paylocity API와의 통신을 처리합니다.

  2. TokenManager - 캐싱 및 갱신을 포함한 인증 토큰을 관리합니다.

  3. FastMCP 서버 - MCP 리소스 및 도구를 통해 Paylocity 데이터를 노출합니다.

특허

MIT 라이센스

저작권 (c) 2024 MJ Zou ( @mjzou )

본 소프트웨어 및 관련 문서 파일(이하 "소프트웨어")의 사본을 취득한 모든 사람에게 소프트웨어를 제한 없이 거래할 수 있는 권한을 무상으로 부여합니다. 여기에는 소프트웨어 사본을 사용, 복사, 수정, 병합, 게시, 배포, 하위 라이선스 및/또는 판매할 수 있는 권한이 포함되나 이에 국한되지 않으며, 소프트웨어가 제공된 사람에게도 이러한 권한을 부여합니다. 단, 다음 조건에 따라야 합니다.

위의 저작권 고지와 본 허가 고지는 소프트웨어의 모든 사본 또는 실질적인 부분에 포함되어야 합니다.

본 소프트웨어는 상품성, 특정 목적 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않는 명시적 또는 묵시적 보증 없이 "있는 그대로" 제공됩니다. 어떠한 경우에도 저작자 또는 저작권자는 본 소프트웨어 또는 본 소프트웨어의 사용 또는 기타 거래와 관련하여 발생하는 계약, 불법 행위 또는 기타 소송을 포함한 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다.

Available Tools

6 tools
fetch_company_codesB

Fetch company codes for a specific resource.

Args: company_id: Optional company ID (string or integer). If not provided, uses the first company ID from configuration. code_resource: Code resource to fetch (e.g., 'earnings', 'deductions', 'costcenter1', etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idNo
code_resourceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that company_id defaults to the first company ID from configuration if not provided, which adds some context. However, it fails to describe critical behaviors such as authentication needs, rate limits, error handling, or what the output looks like, leaving significant gaps for a tool with parameters.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded with the core purpose. The 'Args' section is structured for clarity, though it could be more integrated into the main text. No wasted sentences, but minor improvements in flow could enhance readability.

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?

Given 2 parameters with 0% schema coverage and an output schema present, the description adds some parameter semantics but lacks behavioral context like authentication or error handling. The output schema reduces the need to explain return values, but overall completeness is moderate due to missing operational details.

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 description coverage is 0%, so the description must compensate. It provides meaningful semantics for both parameters: company_id is optional with a default behavior, and code_resource includes examples like 'earnings' and 'deductions'. This adds value beyond the bare schema, though it could elaborate on code_resource constraints or formats.

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 verb 'fetch' and the resource 'company codes', making the purpose understandable. It distinguishes from sibling tools like 'fetch_employee_details' by focusing on company-level codes rather than employee data. However, it doesn't explicitly contrast with all siblings, missing a perfect score.

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 through the 'Args' section, suggesting when to provide company_id and code_resource, but lacks explicit guidance on when to use this tool versus alternatives like 'fetch_employee_earnings'. No when-not-to-use scenarios or prerequisites are mentioned, leaving room for ambiguity.

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

fetch_employee_detailsB

Fetch details for a specific employee.

Args: company_id: Optional company ID (string or integer). If not provided, uses the first company ID from configuration. employee_id: Employee ID (string or integer) to get details for.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idNo
employee_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states it 'fetches details' without disclosing behavioral traits like authentication requirements, rate limits, error conditions, or what 'details' specifically includes. It mentions default behavior for company_id but lacks broader operational context.

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?

Extremely concise with zero wasted words. The purpose is stated in one clear sentence, followed by a structured parameter explanation. Every sentence earns its place by providing essential information.

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?

Given 2 parameters with 0% schema coverage and an output schema exists, the description adequately covers parameter semantics but lacks behavioral context for a read operation. The output schema reduces need to explain return values, but more operational guidance would help.

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 description coverage is 0%, so the description must compensate. It provides meaningful context for both parameters: company_id is optional with default behavior explained, and employee_id is required for targeting. This adds substantial value beyond the bare schema types.

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 verb 'fetch' and resource 'details for a specific employee', making the purpose unambiguous. It distinguishes from siblings like 'fetch_employees' (plural) and 'fetch_employee_earnings' (specific data), but doesn't explicitly contrast them in the description text.

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 is provided about when to use this tool versus alternatives like 'fetch_employees' (list) or 'fetch_employee_paystatement_details' (specific financial data). The description only states what it does, not when it's appropriate relative to other tools.

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

fetch_employee_earningsB

Fetch earnings data for a specific employee.

Args: company_id: Optional company ID (string or integer). If not provided, uses the first company ID from configuration. employee_id: Employee ID (string or integer) to get earnings for.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idNo
employee_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description states it 'fetches' data, implying a read-only operation, but doesn't specify authentication requirements, rate limits, error conditions, or what format the earnings data returns. With an output schema present, some behavioral aspects might be covered there, but the description itself lacks critical operational context for a tool with no 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?

The description is extremely concise and well-structured. The first sentence clearly states the tool's purpose, followed by a bullet-point style 'Args' section that efficiently explains each parameter. Every sentence earns its place with no wasted words, making it easy to scan and understand quickly.

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?

Given that there's an output schema (which should document return values), no annotations, and 2 parameters with good semantic coverage in the description, the description is moderately complete. However, for a data-fetching tool with sibling alternatives, it should ideally clarify what 'earnings data' includes versus other employee financial tools. The presence of an output schema raises the baseline, but the lack of usage differentiation keeps this from being fully complete.

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?

The description adds significant value beyond the input schema, which has 0% description coverage. It explains that 'company_id' is optional and defaults to the first company ID from configuration, and that 'employee_id' is required to get earnings for a specific employee. This clarifies the purpose and default behavior of both parameters, compensating well for the schema's lack of descriptions.

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's purpose: 'Fetch earnings data for a specific employee.' This is a specific verb ('fetch') + resource ('earnings data') + target ('specific employee'). However, it doesn't explicitly distinguish this from sibling tools like 'fetch_employee_paystatement_details' or 'fetch_employee_details', which might also retrieve employee financial information.

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 no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'fetch_employee_paystatement_details' or 'fetch_employee_details', nor does it explain what distinguishes 'earnings data' from other employee financial data. The only usage context is in the Args section about parameter defaults, which doesn't address tool selection.

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

fetch_employee_local_taxesB

Fetch local taxes for a specific employee.

Args: company_id: Optional company ID (string or integer). If not provided, uses the first company ID from configuration. employee_id: Employee ID (string or integer) to get local taxes for.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idNo
employee_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'fetches' data (implying read-only), but doesn't mention authentication requirements, rate limits, error conditions, or what the output contains. For a tool that accesses potentially sensitive employee tax data, this lack of behavioral context is a significant gap, though not contradictory.

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 perfectly structured and concise. The first sentence states the core purpose clearly. The Args section efficiently documents parameters with just enough context. Every sentence earns its place with no wasted words, and information is front-loaded appropriately.

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?

Given that there's an output schema (which handles return values), no annotations, and only 2 parameters with 0% schema coverage, the description is moderately complete. It covers the basic purpose and parameter semantics adequately but lacks behavioral context and usage guidelines. For a tool accessing sensitive employee data, more completeness would be expected, but the output schema reduces the burden somewhat.

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 description coverage is 0%, so the description must compensate. It adds meaningful context for both parameters: company_id is optional with a default behavior (uses first company from config), and employee_id specifies it's 'to get local taxes for'. This clarifies purpose beyond the schema's type definitions. However, it doesn't explain format constraints or provide examples, keeping it from a perfect score.

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 verb 'fetch' and the resource 'local taxes for a specific employee', making the purpose immediately understandable. It distinguishes from siblings like fetch_employee_details or fetch_employee_earnings by specifying the exact data type (local taxes). However, it doesn't explicitly differentiate from all siblings (e.g., fetch_employee_paystatement_details might also contain tax info), so it's not a perfect 5.

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 no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over fetch_employee_details (which might include tax info) or fetch_employee_paystatement_details, nor does it specify prerequisites or context for usage. The only implicit guidance is that it's for local taxes specifically, but no explicit alternatives or exclusions are stated.

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

fetch_employee_paystatement_detailsB

Fetch pay statement details for a specific employee, year and check date.

Args: company_id: Optional company ID (string or integer). If not provided, uses the first company ID from configuration. employee_id: Employee ID (string or integer) to get pay statement details for. year: The year to get pay statement details for. check_date: The check date to get pay statement details for (format: MM/DD/YYYY).

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idNo
employee_idNo
yearNo
check_dateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Fetch' implies a read-only operation, the description doesn't address important behavioral aspects like authentication requirements, rate limits, error conditions, or what happens when parameters are invalid. It mentions a default behavior for company_id but provides minimal operational context.

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

Conciseness4/5

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

The description is efficiently structured with a clear purpose statement followed by a parameter-by-parameter explanation. Each sentence serves a specific purpose without redundancy. The formatting with 'Args:' section makes it easy to scan, though the parameter explanations could be slightly more detailed given the lack of schema descriptions.

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?

Given that there's an output schema (which handles return values), 0% schema description coverage, and no annotations, the description does an adequate job covering the basic purpose and parameters. However, for a tool that likely accesses sensitive payroll data, it should provide more context about authentication, data sensitivity, and error handling to be truly complete.

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?

With 0% schema description coverage, the description provides essential semantic context for all 4 parameters that the schema lacks. It explains that company_id is optional with a default behavior, identifies employee_id as the target employee, clarifies year as the period for pay statements, and specifies the exact date format for check_date. This significantly compensates for the schema's lack of descriptions.

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 action ('Fetch pay statement details') and target resource ('for a specific employee, year and check date'), making the purpose unambiguous. However, it doesn't explicitly differentiate this tool from sibling tools like fetch_employee_earnings or fetch_employee_details, which likely retrieve different types of employee financial data.

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 no guidance on when to use this tool versus alternatives. With sibling tools like fetch_employee_earnings and fetch_employee_details available, there's no indication of what distinguishes this pay statement details tool from those other employee data retrieval tools.

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

fetch_employeesC

Fetch all employees for a company.

Args: company_id: Optional company ID (string or integer). If not provided, uses the first company ID from configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the default behavior for company_id but lacks critical details such as whether this is a read-only operation, potential rate limits, authentication requirements, pagination, or what happens on errors. For a tool fetching all employees, this leaves significant gaps in understanding its behavior.

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

Conciseness4/5

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

The description is front-loaded with the core purpose in the first sentence, followed by parameter details in a structured 'Args' section. It avoids redundancy and is appropriately sized for a simple tool, though it could be slightly more concise by integrating the parameter explanation more seamlessly.

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?

Given the tool's low complexity (1 optional parameter) and the presence of an output schema (which handles return values), the description is minimally adequate. However, it lacks behavioral context (e.g., safety, performance) and sibling differentiation, making it incomplete for optimal agent use despite the structured support.

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?

The description adds meaningful context for the single parameter (company_id), explaining its optional nature and default behavior, which compensates for the 0% schema description coverage. However, it doesn't elaborate on format constraints (e.g., valid ID ranges) or implications of using null, keeping it at a baseline level.

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's purpose with a specific verb ('fetch') and resource ('all employees for a company'), making it immediately understandable. However, it doesn't explicitly distinguish this tool from its siblings (e.g., fetch_employee_details, fetch_employee_earnings), which would require clarification on scope differences.

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 no guidance on when to use this tool versus alternatives like fetch_employee_details or fetch_employee_earnings. It mentions a default behavior (using first company ID if none provided) but doesn't specify prerequisites, exclusions, or comparative contexts with sibling tools.

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. 6 tool updatesv1.0.0
    • Changedfetch_company_codes1 field changed
      • addedInput schema / title
        Added value: +"fetch_company_codesArguments"
    • Changedfetch_employee_details1 field changed
      • addedInput schema / title
        Added value: +"fetch_employee_detailsArguments"
    • Changedfetch_employee_earnings1 field changed
      • addedInput schema / title
        Added value: +"fetch_employee_earningsArguments"
    • Changedfetch_employee_local_taxes1 field changed
      • addedInput schema / title
        Added value: +"fetch_employee_local_taxesArguments"
    • Changedfetch_employee_paystatement_details1 field changed
      • addedInput schema / title
        Added value: +"fetch_employee_paystatement_detailsArguments"
    • Changedfetch_employees1 field changed
      • addedInput schema / title
        Added value: +"fetch_employeesArguments"
  2. 6 tool updates
    • First observedfetch_company_codes
    • First observedfetch_employee_details
    • First observedfetch_employee_earnings
    • First observedfetch_employee_local_taxes
    • First observedfetch_employee_paystatement_details
    • First observedfetch_employees

TDQS

A3.6/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific resources: company codes, employee details, employee earnings, employee local taxes, employee pay statements, and all employees. No overlap exists between these functions, making tool selection unambiguous.

Naming Consistency5/5

All tools follow a consistent 'fetch_[resource]_[detail]' snake_case pattern (e.g., fetch_employee_details, fetch_employee_earnings). This predictable naming convention makes the tool set easy to navigate and understand.

Tool Count5/5

With 6 tools, this server is well-scoped for HR/payroll operations. Each tool serves a distinct purpose in the employee and company data domain, providing a focused yet comprehensive surface without being overwhelming.

Completeness4/5

The tool set covers key read operations for employee and company data, but lacks write/update capabilities (e.g., creating employees, updating details) and broader payroll actions. For a read-only API surface, it's reasonably complete, though agents cannot perform full CRUD workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP Server that provides access to Personio's HR and personnel data through the Personnel API, allowing interaction with employee records, HR systems, and personnel management functions.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    This project builds a read-only MCP server. For full read, write, update, delete, and action capabilities and a simplified setup, check out our free CData MCP Server for Paylocity (beta): https://www.cdata.com/download/download.aspx?sku=KPZK-V&type=beta
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for PrismHR, enabling AI agents to automate payroll, benefits, compliance, and billing tasks with verified-schema tools and scope-gated consent.
    18
    23 PyPI
    4
    MIT