Skip to main content
Glama
nikulk2992-jpg

prismhr-mcp

prismhr-mcp

The open-source Model Context Protocol (MCP) server for PrismHR. Connect Claude, Cursor, or any MCP-compatible AI agent directly to your PrismHR PEO platform. Automate payroll, benefits enrollment, compliance reporting, AR/billing, carrier EDI files, and Microsoft 365 actions — with verified-schema tools, scope-gated consent, and zero custom integration code.

Built for PEOs, brokers, and payroll operators who want AI agents that actually work against PrismHR — not another brittle script farm.

Maintained by Simploy. MIT-licensed, PyPI-distributed, plugin-friendly. The fundamental layer for PrismHR × agentic AI.

mcp-name: io.github.nikulk2992-jpg/prismhr-mcp

Keywords: PrismHR API, PrismHR integration, MCP server, Model Context Protocol, PEO automation, payroll automation, AI for HR, Claude for PrismHR, agentic AI, benefits enrollment automation, 834 EDI, 401(k) file automation, HRIS AI agent, PEO software integration.


Why this exists

Every PEO running PrismHR ends up with the same Frankenstein stack: Python scripts, Postman collections, Playwright automations, one-off Node apps. Each one re-implements login, session keepalive, retry logic, pagination, and PrismHR's quirks (camelCase schemas, 500 "No data found" gotchas, batch-of-20 caps, silent 401s).

prismhr-mcp centralizes all of that once, as a production-grade MCP server. The AI agent orchestrates; the server owns auth, caching, retries, normalization, and PEO domain logic. Any PEO drops it in and gets a productive AI experience against their own PrismHR tenant — no glue code, no guesswork, no hallucinated endpoints.

Who this is for:

  • PEOs running PrismHR who want to wire Claude / Cursor / ChatGPT Desktop directly into their ops stack

  • Benefit brokers and carriers building enrollment automations

  • Payroll teams replacing brittle Postman / Playwright workflows

  • Consultants shipping PEO AI pilots on tight timelines


Related MCP server: MCP FactorialHR

Status

Production-ready core. Live on PyPI and the MCP Registry.

  • Auth + session + HTTP client: done. 1Password CLI integration, scrypt-encrypted disk credential cache, PrismHR session with proactive keepalive (no mid-workflow 401s), automatic refresh on failure, concurrency cap, retry with jittered backoff, 500→empty quirk handling, pagination, batching.

  • Verified-schema gate: every tool grounded in a live UAT probe — no guessed endpoints, no invented fields. 102 response shapes verified and rising.

  • 447-method catalog: full PrismHR REST surface indexed across 18 services. meta_call lets the agent invoke any verified method safely.

  • Connect-time consent system: 15-scope manifest, per-(peo, env) JSON consent store with prerequisite expansion and cascade revoke. Default posture = deny all. Tools enforce scope at call time.

  • Production safety gate: PRISMHR_MCP_ALLOW_PROD=true required to point at prod PrismHR. Prevents accidental first-run blast radius.

  • MCP Registry listed: discoverable by every MCP-aware client.

  • Test suite: passing via pytest + respx.

See .planning/architecture.md for the full roadmap and .planning/assistants-roadmap.md for the paid tier details.


What this unlocks for PEOs

Once wired into your PrismHR tenant, an AI agent (Claude, ChatGPT, Cursor) can run any of these workflows against live data — read-only by default, write actions opt-in and scoped.

Daily ops

  • New Hire Onboarding Audit — every new hire checked for missing SSN, address, E-Verify clearance, required deductions, garnishment setup. Flags problems before first paycheck.

  • Payroll Batch Health Check — real-time status of every open batch; catches stale INIT, stuck approvals, pay-date-past without post, negative net, missing vouchers.

  • Terminated Employee Cleanup — post-termination checklist: final check issued, deductions stopped, benefits ended, COBRA record created, PTO paid out, ACH retired.

  • Manual Check Audit — flags off-cycle checks without reason codes, excessive amounts, duplicates within a window, repeat-monthly patterns.

Compliance

  • ACA Configuration Integrity — catches the setup errors PrismHR itself flags as the #1 cause of 1094-C/1095-C penalty exposure.

  • 1095-C Value Consistency Audit — post-generation audit of every 1095-C form; flags code 1H posted while employee was enrolled, safe-harbor conflicts, status-type-change-driven code drift, waiting-period miscoding, ICHRA codes used for pre-2020 years.

  • Dependent Coverage Age-Out — dependents past the ACA age threshold, or nearing it in the next 30/60/90 days.

  • COBRA Eligibility Sweep — qualifying events, notice-window countdown, election-deadline warnings.

  • Garnishment Payment History — active garnishments with no payments, overdue remittances, multi-garnishment priority checks.

  • W-2 Readiness Check — pre-flight for January: SSN present + correct format, federal withholding configured, YTD sanity.

Reconciliation

  • YTD Payroll Reconciliation — bulk year-to-date totals vs sum of voucher history; finds silent drift before W-2 season.

  • 941 Quarterly Reconciliation — federal tax return tie-out per quarter; wages, FIT, Social Security, Medicare, Additional Medicare.

  • Benefits-Deduction Audit — enrolled-but-not-deducted and deducted-but-not-enrolled mismatches; the silent premium leaks.

  • Billing-vs-Payroll Wash Audit — per-employee plan-level check.

  • Billing-vs-Payroll Reconciliation (client level) — monthly controller tie-out.

  • 401(k) Match Rule Compliance — employer match vs plan formula, 402(g) limit watch, catch-up eligibility for 50+.

  • 401(k) True-Up Calculation — year-end match owed for employees who hit deferral limit early and lost proportional match.

Benefits + AR

  • FSA/HSA Contribution Limit Tracker — IRS 2026 limits watched with over-limit, approaching-limit, and projected-overage findings.

  • Retirement Loan Status — default risk + past-term loans + deemed-distribution exposure.

  • Workers Comp Exposure — estimated premium per class code per state using current wages × rate × experience modifier.

  • Outstanding Invoice Aging — AR bucketing + at-risk-client flag.

  • PTO Balance Reconciliation — negative balances, over-cap, stale accrual, missing class assignment.

  • Doc Expiration Sweep — I-9 + identity documents expiring in the next 30/60/90 days.

  • Client Go-Live Readiness — pre-payroll checklist + readiness score for new PEO clients.

Carrier + distribution

  • Carrier Enrollment (834 5010) — generic writer + per-carrier companion-guide configs. Guardian model live; BCBS Michigan, Sun Life EDX, Voya PDI, Empower PDI on the pilot roadmap.

  • W-2 Distribution Assistant — bulk download, certified-mail shipping, electronic delivery with consent check, SharePoint archive — all composable.

Every workflow returns structured findings with severity and remediation hints, so an AI agent can chain them into higher-order reports (month-end close pack, year-end filing pack, new-client go-live pack, etc.).

Tiering: the OSS core is free. The workflows above ship in the paid prismhr-mcp-simploy tier — source-available, per-PEO license. Contact nihar@simploy.com.


Editions

prismhr-mcp ships in three tiers. Core is free forever. Paid tiers layer commercial PEO intelligence on top.

Tier 1 — prismhr-mcp (this repo, MIT, free)

The foundation. What's in the box:

  • PrismHR session manager with keepalive + auto-refresh

  • 447-method catalog + verified-schema meta_call

  • Scope-gated consent, prod safety gate, encrypted credential cache

  • meta_find, meta_describe, meta_capabilities

  • Client + employee + payroll read tools grounded in live UAT

  • MCP Registry listing, PyPI distribution

Use this if you want to run Claude against your PrismHR tenant today with zero custom code.

Tier 2 — prismhr-mcp-simploy (paid, source-available) — in active build

Named AI Assistants that ship PEO workflows end-to-end. Built on the OSS core. Licensed per-PEO.

Shipping now:

  • Carrier Enrollment Assistant — generic 834 5010 EDI writer + carrier companion-guide configs. Guardian model prototype live (8 tests green). BCBS Michigan, Sun Life EDX, Voya PDI, Empower PDI on deck for Phase 1 pilot. SFTP delivery + delta tracking next.

  • 401(k) file automation — Empower PDI, Voya payroll, Fidelity tape-spec fixed-width formats.

On the roadmap:

  • Payroll Ops Assistant — void/correction workflows, deduction conflict detection, overtime anomaly flags, superbatch reconciliation

  • Benefits Admin Assistant — benefit election audits, COBRA eligibility, ACA status, carrier sync verification

  • Compliance Assistant — W2/941 reconciliation, garnishment tracking, state tax setup, I-9 audits, workers' comp codes

  • AR / Billing Assistant — billing-vs-payroll audits, invoice summaries, employer tax liability

  • Branded reporting — Simploy-branded PDF/XLSX via pluggable brand + template registry (white-label ready)

  • Microsoft 365 connectors — Graph API email, SharePoint upload, Teams posts, Outlook events/tasks

Tier 3 — prismhr-mcp-broker (paid, hosted) — planned

Multi-tenant hosted MCP endpoint so carriers, ERPs, and EDI providers can reach any PrismHR PEO through a single integration. One endpoint, many tenants, centralized compliance. Deferred until Tier 2 ships with a second PEO.

Interested in Tier 2 or Tier 3? Contact nihar@simploy.com.


Quick start — UAT smoke test

Only UAT is supported without an explicit opt-in right now. Prod is guarded behind PRISMHR_MCP_ALLOW_PROD=true.

1. Install

cd C:\path\to\prismhr-mcp    # or wherever you cloned
uv sync --extra dev

2. Configure credentials

Copy .env.example.env (or set env vars). Pick ONE path:

Path A — 1Password CLI (recommended):

$env:PRISMHR_MCP_ONEPASSWORD_VAULT = "YourVault"
$env:PRISMHR_MCP_ONEPASSWORD_ITEM_PRISMHR = "PrismHR UAT"

Requires op CLI signed in (op signin). The item must expose fields labeled username and password (optionally peoId).

Path B — direct env vars (fast, CI-friendly):

$env:PRISMHR_MCP_USERNAME = "<your-api-username>"
$env:PRISMHR_MCP_PASSWORD = "<paste>"
$env:PRISMHR_MCP_PEO_ID   = "<your-peo-id>"

3. Sanity check

uv run python -c "from prismhr_mcp.server import build; b = build(); import asyncio; print([t.name for t in asyncio.run(b.server.list_tools())])"

Expect 9 tools.

4. Register with Claude Code

Add to your Claude Code .mcp.json:

{
  "mcpServers": {
    "prismhr-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "C:\\path\\to\\prismhr-mcp", "prismhr-mcp"],
      "env": {
        "PRISMHR_MCP_ENVIRONMENT": "uat",
        "PRISMHR_MCP_USERNAME": "<your-api-username>",
        "PRISMHR_MCP_PASSWORD": "<paste or reference>",
        "PRISMHR_MCP_PEO_ID": "<your-peo-id>"
      }
    }
  }
}

Restart Claude Code. /mcp should show prismhr-mcp connected with 9 tools.

5. First conversation

You: Tell me about the prismhr-mcp server.
Claude: [calls meta_about] → explains what's available + commercial options.

You: What permissions does it want?
Claude: [calls meta_request_permissions] → shows 14 scopes grouped by category.

You: Grant everything recommended (reads only, no writes).
Claude: [calls meta_grant_permissions(accept_recommended_defaults=true)]

You: List all clients in UAT.
Claude: [calls client_list] → returns the full client roster.

6. Run tests

uv run pytest -q      # expect 60 passing

Architecture in one breath

┌──────────────────────────────────────────────────────────────┐
│ Claude / Cowork / any MCP client                             │
└──────────────────┬───────────────────────────────────────────┘
                   │ stdio (MCP JSON-RPC)
┌──────────────────▼───────────────────────────────────────────┐
│ prismhr-mcp server (FastMCP)                                 │
│   ├── Permissions (deny-default, scope-gated tools)          │
│   ├── Tool groups: meta • client • payroll • benefits        │
│   │                 compliance • billing • report • m365     │
│   ├── Runtime: PrismHR client, Graph client, SQLite cache    │
│   └── Auth: 1Password → scrypt-AES cache → session / MSAL    │
└────┬─────────────────────────────────────────────────┬───────┘
     │                                                 │
     ▼                                                 ▼
┌──────────────┐                           ┌──────────────────┐
│ PrismHR REST │                           │ Microsoft Graph   │
│ (UAT / Prod) │                           │ (Outlook / Teams /│
└──────────────┘                           │  SharePoint)      │
                                           └──────────────────┘

Key design commitments:

  • Factory + strict registry. Tools register via server.build() only; duplicate names or unknown group prefixes fail at boot (not silently at import).

  • Deny-default scopes. Users must run meta_grant_permissions to enable tool access. Prerequisites auto-expand, revokes cascade.

  • Async-first. httpx.AsyncClient + asyncio.Semaphore(5) + async tools.

  • PrismHR quirks handled. 401 auto-refresh, 404→[] on list endpoints, 500 "No data found" → empty, 10-consecutive-500s → force refresh.

  • snake_case outputs. Pydantic validation_alias=AliasChoices(...) so PrismHR's camelCase payloads map to snake_case outputs without leaking camelCase into the MCP tool contract.

  • Per-(peo, env) consent. Switching UAT → prod does not inherit grants.


Commercial support

The OSS core stays free forever. Two paid offerings from Simploy layer on top:

Solution Architect — White-Label deployment

Turnkey deployment of prismhr-mcp for your PEO brand:

  • Brand config authoring (logo, palette, typography, PDF footer, legal disclaimer)

  • Per-client SharePoint site mapping + Azure AD / Graph tenant setup

  • Custom PrismHR tools for PEO-specific workflows

  • Migration from spreadsheets / legacy scripts to MCP tools

  • PEO ops team onboarding + Claude/Cowork workflow coaching

  • Quarterly updates aligned with upstream releases

  • Priority issue response + named Slack/email contact

Best for PEOs with 50–5,000 clients who want Claude-first operations without the in-house build. Contact: nihar@simploy.com

Enterprise Support

SLA-backed support for teams already running the OSS server:

  • 4-hour response on Sev-1 (prod outage)

  • Annual security review + SOC-2-friendly deployment guidance

  • Signed release artifacts + SBOM

  • Private vulnerability disclosure channel

Best for regulated industries or mid/large PEOs with procurement requirements. Contact: nihar@simploy.com

Claude can surface both via meta_about — ask "what commercial options exist for prismhr-mcp?" and it will describe them.


Troubleshooting

No PrismHR credentials configured — set either the 1Password item env vars or the direct PRISMHR_MCP_USERNAME/_PASSWORD pair.

PrismHR login rejected (status=401) — wrong username/password/peo_id. The peo_id is tenant-specific; ask your PrismHR admin. Prod and UAT have different values.

environment=prod requires PRISMHR_MCP_ALLOW_PROD=true — safety gate. Set PRISMHR_MCP_ALLOW_PROD=true explicitly once you're ready.

PERMISSION_NOT_GRANTED — tool was called without its scope. Ask Claude to run meta_request_permissions → then meta_grant_permissions with the scope you want.

Server exits immediately when Claude Code starts it — nearly always a missing env var. Use the step-3 sanity check to isolate.


License

MIT — see LICENSE. Contributions welcome; see the planning docs under .planning/ for the roadmap.

Available Tools

18 tools
client_employeeA

Pull full profile detail for one or more employees.

Use when the user asks "show me John's full record" or "get details on these five employees at Acme". Returns the complete employee profile: name, hire/termination dates, pay group, status, and the termination reason if applicable.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_idYesWhich client the employees belong to.
employee_idsYesWhich employees to look up (one or many).

Output Schema

ParametersJSON Schema
NameRequiredDescription
employeesYes
missing_idsNo

TDQS

A3.8/5.0
Behavior3/5

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

Since no annotations are provided, the description fully bears the burden. It discloses the return fields (name, hire/termination dates, etc.), but does not explicitly state the operation is read-only or mention side effects, authorization needs, or rate limits.

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: the first states purpose, the second gives usage and output details. Every sentence earns its place with no redundancy.

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 existence of an output schema (not shown in description), the description does not need to explain return format. It covers the tool's purpose, usage, and output fields. Could mention that exact IDs are required or that it is a read operation.

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 description coverage is 100%, so baseline is 3. The description does not add significant information beyond the schema (e.g., 'client_id' is not elaborated, 'employee_ids' is simply 'one or many'). The added value lies in output fields, not parameters.

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 'Pull full profile detail for one or more employees' which specifies the action and resource. It gives concrete examples ('show me John's full record') but doesn't explicitly differentiate from sibling tools like 'client_employee_search' or 'client_employees'.

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 explicit usage context: 'Use when the user asks ...' and gives example queries. However, it does not mention when not to use this tool or point to alternatives like the search variant.

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

client_employeesA

List the employees at a single client.

Use when the user says "who works at Acme" or "show me active employees at client XYZ". Returns each employee's ID, name, work email, hire date, and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_idYesWhich client's employees to list.
statusNoActive employees only, terminated only, or everyone.active

Output Schema

ParametersJSON Schema
NameRequiredDescription
client_idYes
employeesYes
countYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses what will be returned (ID, name, work email, hire date, status) and implies a read-only listing. No side effects are mentioned, which is acceptable for a listing tool. Could mention pagination or sorting, but it's still strong.

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: two sentences that front-load the key action and return information. Every sentence adds value; no wasted words.

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?

Given the input schema is complete, the output schema exists (though not shown), and sibling tools are available, the description provides all necessary context to use the tool correctly. It covers what the tool does, when to use it, and what it returns.

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 100% and parameter descriptions are already clear. The description adds context by showing parameter usage in examples and clarifying the 'status' enum values ('active', 'inactive', 'all'). This matches the schema, so the description reinforces but does not add significant new meaning beyond the 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?

The description clearly states the action ('List the employees at a single client') and specifies the resource. It provides example user queries, making the purpose immediately understandable. It also distinguishes from siblings like 'client_employee_search' by emphasizing 'single client'.

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?

Explicit usage guidance is given with example user phrases ('who works at Acme', 'show me active employees at client XYZ'). While it doesn't explicitly state when not to use, the context of a sibling 'client_employee_search' implies an alternative for multi-client searches.

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

client_listA

List every client the current PEO account can see.

Use when the user says "show me the clients" or "which companies are on our platform". Returns each client's ID, name, and active status. Most other tools need a client ID, so call this first when you don't have one.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
clientsYes
countYes

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavior: read-only listing, returns specific fields, and implies no side effects. No hidden traits or 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?

Four sentences, front-loaded with purpose, minimal fluff. Every sentence adds value: listing scope, usage examples, return fields, and strategic advice.

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?

The description covers all essential aspects for a simple list tool: what it returns, when to use, and how it fits with other tools. Output schema exists to provide full 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?

No parameters exist, so baseline 4 applies. The description does not need to add parameter info, and it correctly implies the tool is parameterless.

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 every client the current PEO account can see, specifying output fields (ID, name, active status). It distinguishes from sibling tools like client_employee which focus on employee data.

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

Usage Guidelines5/5

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

Explicitly provides when to use: when user says 'show me the clients' or 'which companies are on our platform'. Also advises calling this first to obtain a client ID needed by other tools.

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

meta_aboutA

Describe what this MCP server is, who runs it, and what commercial options exist.

Always callable — no scope required. Surfaces commercial offerings (Solution Architect white-label, Enterprise support) so Claude can help users understand what's available beyond the free OSS core.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
serverYes
versionYes
descriptionYes
homepageYes
licenseYes
source_repositoryYes
reference_deploymentYesThe organization maintaining this OSS project as a production deployment.
tool_groups_liveYes
tool_groups_plannedYes
commercial_supportYesPaid offerings layered on top of the OSS core. Claude should surface these when the user asks about white-labeling, custom tools, or enterprise support.

TDQS

A4.5/5.0
Behavior4/5

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

Without annotations, the description fully discloses that the tool is safe and read-only, surfacing commercial offerings. It does not hide any side effects or prerequisites.

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?

Three sentences with front-loaded purpose, callability, and commercial focus. No filler or redundant information.

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?

Given zero parameters and existence of an output schema, the description sufficiently covers the tool's functionality, usage context, and expected output (commercial offerings).

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 exist, so baseline score of 4 applies. The description adds no param-specific details, which is acceptable since there are none.

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 provides information about the MCP server, its operator, and commercial options. It distinguishes this from sibling tools by focusing on server-level metadata rather than individual resources or actions.

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 states it is 'always callable' with no scope required, providing clear when-to-use guidance. However, it does not explicitly contrast with other meta_ tools like meta_capabilities or meta_describe, which could cause confusion.

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

meta_callA

Generic, schema-validated invocation of any PrismHR method in the catalog.

Pre-flight: checks the method_id, refuses admin services, validates required query + header + body fields against the bundled bible schemas. Only after validation passes does the request hit PrismHR.

Every call returns a structured PrismHRCallResponse — ok | prismhr_error | validation_error | admin_blocked | unverified_warning. The unverified_warning status is attached when the call succeeds but the response shape has not been verified by the maintainer's probe pass; treat the body as best-effort.

ParametersJSON Schema
NameRequiredDescriptionDefault
method_idYesCatalog method id, e.g. 'payroll.v1.getBatchListByDate.GET'. Find valid ids via meta_capabilities or meta_find.
argsYesArguments. Query/header parameters are top-level keys; POST body fields go under a nested 'body' key. Consult meta_describe(method_id) for the exact shape.

Output Schema

ParametersJSON Schema
NameRequiredDescription
method_idYes
statusYes
http_statusNo
prismhr_error_codeNo
prismhr_error_messageNo
bodyNo
noteNo

TDQS

A4.4/5.0
Behavior5/5

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

No annotations provided, but description fully covers behavior: validation steps, refusal of admin services, and detailed response statuses including unverified_warning. This is comprehensive for a generic invocation tool.

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?

Three paragraphs with clear structure: purpose, validation steps, response details. Front-loaded with core purpose. Slightly verbose but each sentence adds necessary detail.

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?

Comprehensive for a complex generic tool: covers validation, admin blocking, response shape, and unverified_warning semantics. References sibling tools for method discovery. Output schema existence reduces need to describe return fields.

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 coverage is 100%, but description adds value by explaining how to find valid method_ids (via meta_capabilities or meta_find) and how to structure args (top-level vs nested body key). Provides guidance beyond the 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 it is a generic, schema-validated invocation of any PrismHR method. Distinguishes from sibling tools like meta_describe or meta_capabilities by focusing on execution rather than metadata retrieval.

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?

Implies usage for calling any PrismHR method after validation, but does not explicitly specify when to use this over specific domain tools (e.g., payroll_batch_status). No 'when not to use' or alternative guidance.

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

meta_capabilitiesA

What does this server know how to call against PrismHR?

Returns counts (catalog size, verified, admin-blocked, unprobed) and a sample of callable methods. Use this when the user asks 'what can you do?' or before picking a specific method via meta_describe.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceNoOptional service filter (e.g. 'payroll', 'clientMaster').
verified_onlyNoIf true, `sample_verified` filters to verified methods only.
limitNoHow many sample methods to include (max 100).

Output Schema

ParametersJSON Schema
NameRequiredDescription
catalog_sizeYesTotal endpoints documented in the bundled bible.
verified_countYesEndpoints with a response shape verified against live PrismHR.
admin_blocked_countYesEndpoints hard-blocked (admin services never exposed).
unprobed_countYesEndpoints documented but not yet probed for response shape.
prismhr_error_countYesEndpoints that returned a structured PrismHR error when probed (data, 400, 403, etc.).
servicesYes
sample_verifiedYesFirst 25 verified methods to help Claude pick relevant ones.

TDQS

A4.5/5.0
Behavior4/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. It discloses it returns counts and a sample, implying a read-only introspection. However, it does not explicitly state that it makes no side effects or whether it triggers a scan. Still, the intent is clear and sufficient for safe use.

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 short, focused sentences. The first sentence is a front-loaded question that immediately conveys purpose. Every word adds value, no redundancy.

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?

Given the presence of an output schema (per context signals), the description does not need to detail return values. It fully explains the tool's purpose, usage context, and relationship to sibling meta_describe. Everything an agent needs to select and invoke it correctly is present.

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 100% (all three parameters have descriptions). The description adds only general context about returns (counts and sample) but does not elaborate on parameter semantics beyond what the schema already provides. Baseline 3 applies.

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 starts with a clear question 'What does this server know how to call?' and specifies it returns counts and a sample of callable methods. It explicitly distinguishes from sibling tool meta_describe, clarifying this is an overview tool.

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

Usage Guidelines5/5

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

Directly states when to use: 'when the user asks what can you do? or before picking a specific method via meta_describe'. Provides clear context and an explicit alternative.

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

meta_describeA

Full contract for a single PrismHR method.

Returns every parameter, inline body schema (when available), response codes, and verification status. Call this before prismhr_call so you know exactly which args the method wants.

ParametersJSON Schema
NameRequiredDescriptionDefault
method_idYesCatalog method id, e.g. 'payroll.v1.getBatchListByDate.GET'. Get candidates from meta_capabilities or by searching via meta_find.

Output Schema

ParametersJSON Schema
NameRequiredDescription
method_idYes
pathYes
http_methodYes
serviceYes
operationYes
summaryYes
descriptionYes
parametersYes
request_body_content_typesNo
request_body_required_fieldsNo
request_body_fieldsNo
request_body_inline_schema_presentNo
responsesYes
verification_statusYes
verified_response_keysNo
is_adminYes
remediation_if_adminNo
quirksNoPrismHR gotchas learned from live probing — status gates, undocumented enums, silent-fail footguns.
param_enumsNoAccepted enum values per parameter (often single-letter codes not obvious from the PrismHR docs).
required_batch_statusNoIf set, the target payroll batch must be in one of these statuses for the call to succeed.
rate_limitedNoThis endpoint is aggressively throttled by PrismHR. Cache responses; back off on 429.

TDQS

A4.3/5.0
Behavior4/5

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

The description transparently explains what the tool returns (parameters, body schema, response codes, verification status) and implies it is a read-only metadata operation. No annotations exist, so the description carries the full burden, and it provides sufficient behavioral context without 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 three sentences, each with a distinct role: purpose, output contents, and usage context. It is front-loaded with the core function and uses no unnecessary words. Every sentence adds value.

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?

Given the tool's simplicity (one parameter, no enums, output schema present), the description is complete. It covers what the tool does, what it returns, and when to use it, leaving no gaps for the agent.

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 input schema provides 100% coverage with a detailed description for `method_id`. The description does not add new semantics beyond the schema, meeting the baseline for high coverage. No additional parameter information is needed.

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 it provides the full contract for a single PrismHR method, including parameters, body schema, response codes, and verification status. It distinguishes itself from sibling tools like meta_capabilities (which lists methods) and meta_find (which searches) by focusing on detailed documentation for one method.

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 tells the agent to call this before `prismhr_call` to know the arguments, providing clear when-to-use guidance. It does not mention when not to use it or alternative tools, but the context is well-implied given the sibling tools.

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

meta_findA

Find PrismHR methods by intent.

Use when you don't know the exact method id. Claude should pick the best hit + follow up with meta_describe to see the contract.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWords to search for — method id, summary, or description fragments.
limitNoMax results.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It correctly implies a read-only search, but does not mention scope, limits on results beyond schema, or behavior when no matches found. Adequate but not thorough.

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?

Three sentences, each essential. Front-loaded with purpose, then usage guidance, then follow-up action. No wasted words.

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 search tool with output schema, description covers purpose, usage, and follow-up. Lacks mention of empty results handling or pagination, but completeness is high given simplicity.

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 already describes both parameters (query and limit) with descriptions. Description adds 'by intent' as context, but does not add significant new semantics beyond schema. Baseline 3.

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 states 'Find PrismHR methods by intent' which is a specific verb+resource. It distinguishes from siblings by noting to use when method ID is unknown, and recommends following up with meta_describe.

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

Usage Guidelines5/5

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

Explicitly tells when to use (when exact method ID unknown) and what to do after ('pick the best hit + follow up with meta_describe'). No exclusions needed.

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

meta_grant_permissionsA

Grant, revoke, or replace the set of scopes this server may use.

Prerequisite scopes are auto-included: granting 'employee:read' also grants 'client:read' because the search tool needs it. Revoking a prerequisite cascades — dependent scopes get dropped to stay consistent.

ParametersJSON Schema
NameRequiredDescriptionDefault
grantedNoScopes to ADD to the current grant set. Use scope identifiers from meta_request_permissions (e.g. 'client:read').
revokedNoScopes to REMOVE from the current grant set.
replaceNoIf true, replace the entire granted set with `granted` (ignores `revoked`). Use for 'start fresh' flows.
accept_recommended_defaultsNoIf true, grant exactly the scopes flagged as recommended in the manifest (reads only). Combines with `granted` as union.

Output Schema

ParametersJSON Schema
NameRequiredDescription
grantedYes
granted_countYes
addedYes
removedYes
consent_fileYes
user_messageYes

TDQS

A4.4/5.0
Behavior4/5

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

In absence of annotations, description explains key side effects: auto-inclusion of prerequisites and cascading revocation. This goes beyond basic read/write characterization.

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: first for overall purpose, second for key behavioral nuance. No unnecessary words, efficiently front-loaded.

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?

With an output schema present, description covers purpose, parameter hints, and critical side-effect behavior. Only minor gap: no mention of idempotency or error conditions.

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?

All four parameters have schema descriptions (100% coverage). The description adds practical context: for 'granted' it references meta_request_permissions, for 'replace' it clarifies 'start fresh' flow.

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?

Clear verb 'Grant, revoke, or replace' identifies the action, and 'set of scopes this server may use' specifies the resource. Distinguishes from sibling tools like meta_list_permissions and meta_request_permissions by focusing on modification.

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?

Describes prerequisite auto-inclusion and cascading revocation, which guides when to use this tool. Could be improved by explicitly contrasting with sibling tools, but the behavioral rules are clear.

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

meta_list_permissionsA

Show the currently granted scopes without the full manifest.

Use this when you just want to know what's active right now. Use meta_request_permissions to see the full catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
environmentYes
peo_idYes
grantedYes
granted_countYes
consent_fileYes

TDQS

A4.4/5.0
Behavior3/5

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

With no annotations provided, the description should disclose behavioral traits. It implies a read-only operation via 'show', but does not explicitly state non-destructiveness, authentication requirements, or side effects. It is minimally adequate but lacks detail.

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 consists of two short, front-loaded sentences with no unnecessary words. Every sentence serves a clear purpose: stating the tool's function and providing usage guidance.

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 that the tool has no parameters and an output schema exists, the description covers the essential aspects: what it does and when to use it. It does not describe the output format, but that is handled by the output schema.

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 tool has zero parameters and 100% schema coverage, so the description needs to add no parameter information. It correctly focuses on purpose and usage.

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 verb 'show' and the resource 'currently granted scopes'. It distinguishes itself from the sibling tool meta_request_permissions by contrasting with 'without the full manifest'. This is specific and unambiguous.

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

Usage Guidelines5/5

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

The description explicitly tells when to use this tool ('when you just want to know what's active right now') and when to use an alternative ('Use meta_request_permissions to see the full catalog'). This is excellent guidance.

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

meta_pingA

Health check. Returns server name, version, and UTC time.

Always callable — no scope required. Use this to confirm the server is reachable before worrying about credentials or permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
serverYesServer identifier (constant).
versionYesInstalled package version.
utcYesCurrent server UTC time.
statusYes"ok" when the server is serving requests.

TDQS

A4.8/5.0
Behavior5/5

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

Despite no annotations, the description fully discloses behavior: non-destructive, always callable, returns specific fields. This carries the full burden effectively.

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?

Three concise sentences, each adding information: purpose, always-callable nature, and usage advice. No redundant text.

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?

Given zero parameters and no annotations, the description fully covers purpose, behavior, and usage context. Siblings are diverse, but this tool is clearly differentiated.

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

Parameters5/5

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

No parameters exist, so schema coverage is 100%. Description adds no param details but none are needed.

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 it's a health check returning server name, version, and UTC time. It also emphasizes it requires no scope, distinguishing it from sibling meta_* tools.

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 advises using this tool to confirm server reachability before dealing with credentials or permissions, providing clear context. Does not name alternatives but implies they require scope.

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

meta_request_permissionsA

List every scope the server can request, grouped by category.

Returns: the full manifest, which scopes are currently granted, the server's recommended defaults (reads = yes, writes = no), and a human-readable message to show the user. Call meta_grant_permissions next with the scopes the user approves.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
environmentYes
peo_idYes
consent_fileYes
grantedYes
total_scopesYes
granted_countYes
categoriesYes
recommended_defaultsYes
user_messageYesGuidance to show the end user when surfacing this manifest. Enumerates categories and invites them to call meta_grant_permissions.

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It explains the return value (manifest, granted scopes, defaults, message) and implies a read-only operation. However, it does not explicitly state that the tool does not modify state or require special permissions.

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 main action, and efficiently covers purpose, return value, and next steps. There is no redundancy or unnecessary information.

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?

Given zero parameters and the presence of an output schema, the description fully explains what the tool does and returns. It also integrates with the sibling workflow (meta_grant_permissions), making it contextually complete for the agent.

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 tool has zero parameters, and the input schema is empty, so schema coverage is 100%. The description does not add parameter-specific information (as none exist), but the baseline for 0 parameters is 4.

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 action: 'List every scope the server can request, grouped by category.' It specifies the resource (scopes) and what is returned, distinguishing it from sibling tools like meta_grant_permissions and meta_list_permissions.

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 a clear next step: 'Call meta_grant_permissions next with the scopes the user approves.' It gives context on when to use this tool (as a precursor to granting permissions) but does not explicitly state when not to use it or list alternatives.

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

meta_upstream_permissionsA

Ask PrismHR which API methods this account is actually allowed to call.

Calls /login/v1/getAPIPermissions. If the account lacks a method, even a fully-scope-granted MCP tool will 403 at the PrismHR edge. Use this to diagnose 'permission denied' errors when meta_list_permissions shows the scope is granted.

Always callable — no scope required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
authorized_method_countYes
services_by_prefixYes
methodsYes
errorNo

TDQS

A4.7/5.0
Behavior4/5

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

No annotations exist, so description carries full burden. It discloses that a 403 can occur if account lacks a method, and that it calls an internal API. It mentions no destructive actions and says it's always callable, which is transparent. A minor missing detail is rate limiting or output format, but overall good.

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?

Four short sentences, front-loaded with main purpose. Every sentence adds value: purpose, internal call, diagnostic use, availability. No wasted words.

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?

Given zero parameters and an output schema (present), the description fully covers what an agent needs: purpose, when to use, behavioral notes. No gaps.

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 exist, so schema coverage is 100%. The description does not need to add parameter info, and baseline 4 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 it asks which API methods the account is allowed to call. It uses a specific verb ('ask') and resource ('API methods'), and distinguishes from sibling meta_list_permissions by noting the difference between scope granted and actual permission.

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

Usage Guidelines5/5

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

Provides explicit guidance: use to diagnose 'permission denied' errors when meta_list_permissions shows scope granted. Also states it's always callable with no scope required, giving clear context for when to invoke.

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

payroll_batch_statusA

Find the payroll batches a client ran in a date window.

Use when the user asks things like "what payrolls ran at Acme in March" or "show me this quarter's batches for client ABC". Returns batch IDs, pay dates, status, voucher counts, and gross totals.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_idYesThe client to look at.
start_dateYesFirst day to include (YYYY-MM-DD).
end_dateYesLast day to include (YYYY-MM-DD).

Output Schema

ParametersJSON Schema
NameRequiredDescription
client_idYes
start_dateYes
end_dateYes
batchesYes
countYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description bears full burden. It implies read-only behavior by mentioning 'find' and 'returns', but does not explicitly state it is side-effect-free. Could be more transparent about safety implications.

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 concise with three sentences: purpose, usage examples, and return values. Front-loaded with the core action, no wasted words. Efficient and easy to parse.

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 output schema exists, description does not need to detail return values, but it still lists them. Covers the use case adequately. Missing information on pagination or limits, but for a simple query tool this is sufficient.

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 100% with clear descriptions for each parameter. The tool description adds example usage but no additional semantic detail beyond the schema. Baseline 3 is appropriate as description adds minimal extra meaning.

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 finds payroll batches in a date window, using specific verbs and resource. It includes example user queries to clarify purpose, but does not explicitly differentiate from sibling tools like payroll_pay_history or payroll_superbatch_status.

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?

Provides explicit context for when to use, with example user queries. However, lacks guidance on when not to use or alternatives, which would help in distinguishing from similar tools.

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

payroll_pay_group_checkA

Check whether an employee is set up to be paid (pay group assigned).

Use when the user asks "why didn't Jane get paid" or "is this new hire ready for payroll". Returns whether a pay group is assigned and the pay frequency (weekly/biweekly/etc). Unassigned pay group is the #1 reason an employee is skipped in a payroll run.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_idYesThe client the employee belongs to.
employee_idYesWhich employee.

Output Schema

ParametersJSON Schema
NameRequiredDescription
client_idYes
employee_idYes
pay_group_idYes
pay_group_nameYes
pay_frequencyNoe.g. 'weekly', 'biweekly', 'semimonthly', 'monthly'.
assignedYes
warningNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations are absent, so the description carries the full burden. It implies a read-only check ('Check whether') and discloses the #1 reason for skipped payroll. However, it does not specify side effects, permissions needed, or edge cases, leaving moderate gaps.

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?

Three sentences, each adding value: purpose, use cases, and a key insight. No fluff, tightly written, and 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 simple two-parameter tool with an output schema, the description covers purpose, usage triggers, and a crucial diagnostic hint (unassigned pay group). It leaves no obvious gaps for its complexity.

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?

Input schema has 100% description coverage for both parameters. The description adds no extra information about parameter meaning or formatting beyond what the schema provides.

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 states the tool checks pay group assignment for an employee. It provides specific use cases like 'why didn't Jane get paid' or 'is this new hire ready for payroll', clearly distinguishing its purpose from sibling tools like payroll_batch_status or payroll_pay_history.

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 tells when to use the tool (user asks about missed payment or payroll readiness) and what it returns. While it does not mention when not to use it or name direct alternatives, the provided context is sufficient for most scenarios.

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

payroll_pay_historyA

Get an employee's paychecks in a date window, plus year-to-date totals.

Use when the user asks "what did Jane get paid this quarter" or "pull up John's checks for Q1". Returns each paycheck (gross, net, regular/overtime hours) plus YTD gross/net/taxes.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_idYesThe client the employee belongs to.
employee_idYesWhich employee.
start_dateYesFirst day to include (YYYY-MM-DD).
end_dateYesLast day to include (YYYY-MM-DD).

Output Schema

ParametersJSON Schema
NameRequiredDescription
client_idYes
employee_idYes
start_dateYes
end_dateYes
vouchersYes
ytdNo
countYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions output (paycheck details and YTD totals) but omits read-only nature, permissions, rate limits, or any pitfalls. Lacks full behavioral disclosure.

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 superfluous content. First sentence defines purpose, second provides usage examples and output details. Efficient and front-loaded.

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 output schema existence, description adequately covers return values and usage. However, missing edge cases (e.g., no paychecks found) and behavioral caveats prevent a perfect score.

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 100% with clear parameter descriptions. The description adds 'date window' context but doesn't enhance parameter meaning beyond what schema already provides, yielding a baseline score of 3.

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 retrieves employee paychecks in a date window plus year-to-date totals, using precise verbs and resource context. It differentiates from sibling tools like payroll_batch_status by focusing on individual pay history.

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

Usage Guidelines5/5

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

Explicitly provides use cases with example queries ('what did Jane get paid this quarter'), giving clear guidance on when to invoke this tool.

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

payroll_superbatch_statusA

Summarize a client's payroll cycle health across a date range.

Use for morning-of-pay status checks: "how's Acme's payroll looking this week" or "show me everything that's open vs. posted for client XYZ this quarter". Counts batches by status (open / pending / posted / voided) and totals gross payroll across them.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_idYesThe client.
start_dateYesFirst day to include (YYYY-MM-DD).
end_dateYesLast day to include (YYYY-MM-DD).

Output Schema

ParametersJSON Schema
NameRequiredDescription
client_idYes
start_dateYes
end_dateYes
batch_countYes
total_vouchersYes
total_grossYes
open_batch_countYes
pending_batch_countYes
posted_batch_countYes
voided_batch_countYes
batchesYes

TDQS

A4.4/5.0
Behavior4/5

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

Although no annotations are provided, the description transparently states the output: counts by status and totals gross payroll. It does not mention potential limitations or the read-only nature, but it gives a good sense of behavior.

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 three sentences, front-loaded with the main purpose, followed by usage examples and output details. Every sentence is informative and there is no superfluous content.

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's moderate complexity (3 params, output schema present), the description explains what the tool does and its output format adequately. It could mention date range limits or performance, but it is sufficiently complete for typical use.

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 descriptions are minimal, but the tool description adds meaning by explaining how the parameters combine to produce summary counts and totals, going beyond the parameter names and types.

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 uses a specific verb 'summarize' and resource 'client's payroll cycle health across a date range', clearly distinguishing it from sibling tools like payroll_batch_status which likely handles individual batches.

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?

Provides explicit use cases like 'morning-of-pay status checks' and example queries, giving clear context for when to use this tool, though it does not explicitly state when not to use it or name alternative tools.

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

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, organized into client, meta, and payroll namespaces. No two tools overlap in functionality; even client_employee, client_employees, and client_employee_search handle different retrieval scenarios.

Naming Consistency4/5

Tools consistently use a namespace prefix (client_, meta_, payroll_) followed by descriptive names. Minor inconsistency exists between singular (client_employee) and plural (client_employees) forms, and suffix patterns vary (e.g., batch_status vs pay_group_check), but overall the naming is predictable and clear.

Tool Count4/5

With 18 tools, the server is slightly above the ideal 3-15 range but still well-scoped for the complexity of HR/payroll operations. Each tool earns its place, covering client management, employee search/detail, payroll status, and extensive meta operations.

Completeness4/5

The server provides excellent read-oriented coverage for clients, employees, and payroll. While write operations (update/delete employees, run payroll) are absent, the meta_call tool allows invocation of any PrismHR method, making the surface extensible. Minor gaps exist for common write workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nikulk2992-jpg/prismhr-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server