Skip to main content
Glama

mcp-onboarding

MCP server for a new-hire onboarding planner: hire records, role templates, task owners and due dates. New-hire onboarding as role-based task templates, with a dated checklist per hire that HR and the manager both read.

Works with Claude Desktop, Claude Code, Cursor and any Model Context Protocol client. Runs on your own machine, or hosted with no install.

Product page: https://mcp.zovo.one/s/onboarding — what it does, the tools it exposes, and a live token endpoint.

Install

Hosted, nothing to install. Get a token from https://mcp.zovo.one/mcp/connect (the connect page) or https://mcp.zovo.one/mcp/token (the same token as JSON); a free anonymous one is issued on the spot and a Pro key works the same way. Then point an MCP client at https://mcp.zovo.one/mcp/onboarding over streamable-http and send the token as Authorization: Bearer <token>.

If your client cannot set headers, put the token in the path instead: https://mcp.zovo.one/mcp/onboarding/t/<token>. Both forms work. The bare URL with no token answers 401 on tools/call, so the token is not optional.

Claude Desktop, one click. Download onboarding.mcpb from the latest release and double-click it.

From source. The mirror is self-contained: every @theluckystrike/* dependency is vendored, so a fresh clone builds with no extra setup.

git clone https://github.com/theluckystrike/mcp-onboarding.git
cd mcp-onboarding
npm install && npm run build

Then point your client at the built entry point:

{
  "mcpServers": {
    "onboarding": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-onboarding/dist/index.js"]
    }
  }
}

@theluckystrike/mcp-onboarding is not published on npm yet, so an npx -y @theluckystrike/mcp-onboarding command will fail. The three paths above are the working ones and each is exercised by CI.

onboarding demo

Read-only mirror of mcp-servers/servers/onboarding. See MIRROR.md.

In the official MCP Registry (io.github.theluckystrike/onboarding). New-hire onboarding as role-based task templates, with a dated checklist per hire that HR and the manager both read.

Related MCP server: hr-assist

The one rule that decides everything else

If somebody edits the checklist afterwards, adds a step or deletes one, every run already in progress keeps the list it started with, and the version it was copied from is recorded on the run.

That is not a caching convenience. A checklist somebody ticked and signed has to be the list they actually saw. A run that read its steps live from the checklist would mean a signed handover certificate for eleven checks when the person signing it saw ten, with no field in the record showing that it had happened. It also means deleting a checklist leaves its runs readable and complete, which is what you want the year afterwards when somebody asks what was checked.

Two smaller rules follow from it:

  • Nothing derived is stored. The pass, fail and outstanding counts, the percentage, and whether a run can be signed off are worked out on every call from the run's own steps. A stored "complete" flag is a fact about the afternoon somebody last looked, and complete here is a reading: it appears when the last step is answered and goes away again when one is put back to pending.

  • Not applicable is not a pass. na counts as ANSWERED and never as passed. A step that was looked at and dismissed is a different fact from a step that passed, and merging the two is how a checklist reports full marks for a job where half the steps did not apply.

What blocks a signature

A required step that is unanswered, a required step that failed, an unanswered optional step, or a run with no steps. force: true signs anyway, and the exceptions stay on the record and print on the report under "Signed with exceptions". They are not lost, and they are not silent.

Install

One-click (.mcpb): download checklist.mcpb from the latest release and double-click it in Claude Desktop: https://github.com/theluckystrike/mcp-servers/releases/latest

npm publish for @theluckystrike/mcp-onboarding is pending, so the npx line below returns 404 today. Build from source in the meantime; see llms-install.md.

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "checklist": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-onboarding"]
    }
  }
}

Claude Code

claude mcp add checklist -- npx -y @theluckystrike/mcp-onboarding

Cursor

~/.cursor/mcp.json (global) or .cursor/mcp.json (project), same entry as Claude Desktop.

Tools

Tool

What it does

checklist_create

Create a reusable checklist: a name, a category, a description

checklist_item_add

Add a step: the text, a section heading, and whether it is required

checklist_item_remove

Remove a step and bump the version. Runs already under way keep it

checklist_show

One checklist, grouped by section, with a blank printable copy on request

checklist_list

Every checklist with its version, step count and how many runs came from it

checklist_delete

Delete a checklist. Its runs stay readable, because each carries its own copy

run_start

Start a dated run against a job. The steps are copied into it at this point

run_check

Mark one step pass, fail or na, with who and when and what was found

run_show

The run: every step with its answer, the counts, the failures, and what blocks sign-off

run_list

Runs newest first, filtered by checklist, status, reference, or only those with failures

run_sign_off

Sign off with a name and a date, which freezes the run

run_status

Reopen a complete run, or abandon one when the job did not happen

run_report

The run as text on every tier. Pro also writes it to out_path as a .txt file

run_delete

Delete a run. A signed-off one is refused

license_status

Which tier this install is on and where the key came from

license_activate

Store a Pro key for this server

There is also a resource, checklist://contract, carrying the snapshot rule, the item states, the run status machine, what blocks a sign-off and where this server writes; and a prompt, run_the_checklist, that walks the whole job in order.

Free vs Pro

Free

Pro

Checklists you keep

3

unlimited

Runs of them

unlimited

unlimited

Steps per checklist

up to 500

up to 500

run_show, run_list, the counts

yes

yes

The run report as text

yes

yes

Writing the report to a file with out_path

no

yes

The meter is on how many DIFFERENT checklists you keep, not on how many jobs you check. A trade with one pre-delivery check, one handover sheet and one snag list runs its whole year inside the free tier. Runs are never capped, because capping the running of a checklist would cap the only thing a checklist is for. Deleting a checklist frees a slot.

Get Pro: https://mcp.zovo.one/buy/checklist (one-time), or all servers for one price at https://mcp.zovo.one/buy/bundle

Privacy

All data stays local, in ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/checklist/. There is no network call anywhere in this server, no API key, and no account. The only file it reads that it does not own is the shared business profile, for the name and address at the top of a printed report, and it never writes to it.

Built by theluckystrike. Support: support@zovo.one

Available Tools

9 tools
license_activateActivate licenseA

Activate a Pro key (MCPL1.xxx.yyy) from checkout: verified offline against a built-in public key, saved to your config file. A wrong, malformed or expired key is refused, unsaved. license_status reads it back.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesLicense key from the checkout confirmation page

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses that verification happens offline against a built-in public key, that the key is persisted to the config file, and that invalid keys are refused and left unsaved. This is substantial transparency for an activation tool, though it could mention overwriting an existing key or the exact return 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 two sentences with no filler. The first sentence front-loads the main action, source, verification method, and persistence. The second sentence efficiently covers error handling and points to the related read-back tool. Every clause adds value.

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 a single-parameter tool with no output schema and no annotations, the description covers activation behavior, verification mechanism, persistence, error outcomes, and how to read the result later. The only minor gap is an explicit statement of what the function returns upon success or failure, but the phrase 'refused, unsaved' implies a feedback mechanism. Overall, it is sufficiently complete for an agent to call it correctly.

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 schema already documents the 'key' parameter at 100% coverage, so the baseline is 3. The description adds meaningful semantics by giving the concrete key format ('MCPL1.xxx.yyy'), confirming the key comes from the checkout page, and explaining that malformed or expired keys will be rejected. This goes beyond the schema's one-line description.

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 a specific action ('Activate a Pro key'), the exact key format ('MCPL1.xxx.yyy'), the source ('from checkout'), and the core mechanism ('verified offline against a built-in public key'). It also differentiates itself from the sibling license_status by noting that license_status reads the activation back, so there is no ambiguity about which tool does what.

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 gives clear context: use this when you have a Pro key from checkout that needs to be activated. It also points to license_status as the read-back tool, which implies when to use a related sibling. It does not explicitly spell out 'do not use for checking status' or list other alternatives, but the context is strong enough to avoid misuse.

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

license_statusLicense statusA

Report this server's licence state: product, tier free or pro, licence id, expiry, the key source and the upgrade URL. No arguments, no network. Explains a free-tier refusal; license_activate installs a key.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It discloses that the call is local ('no network') and argument-free, and it mentions a specific explanatory behavior. The word 'Report' implies read-only, though it does not explicitly state non-destructive or permission requirements; this is adequate for a status command.

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 with no filler. The first sentence lists the output fields; the second adds constraints and the sibling pointer. Every clause contributes meaningful 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?

For a zero-parameter status tool with no output schema, the description lists the expected output fields, behavioral constraints, and the relevant alternative tool. Nothing an agent needs to call it correctly is missing.

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 schema has zero parameters and the description reinforces this with 'No arguments'. It adds value by listing the reported fields, helping an agent understand what the empty input will yield. The baseline for zero-parameter tools is high, and the description meets it.

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 a specific verb ('Report'), a clear resource ('this server's licence state'), and enumerates the exact fields returned. It also names the sibling 'license_activate' as the tool that does something different, so an agent can distinguish them immediately.

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 gives explicit usage constraints: no arguments, no network, and explains a free-tier refusal. It also directs the agent to license_activate when the task is to install a key, serving as an explicit pointer to the relevant alternative.

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

onboarding_hire_addAdd a hireA

Add a new hire and return its H-NNNN id: a name, a role and the day they start. The role is a grouping key, lower-cased and hyphenated. Add tasks with onboarding_task_add, or apply a role template with onboarding_template_apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe hire's name, e.g. Ada Lovelace
roleYesThe role, e.g. engineer or sales. Lower-cased and hyphenated
start_dateYesThe day they start, YYYY-MM-DD. Task due dates are counted from here

TDQS

A4.4/5.0
Behavior4/5

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

Annotations are all false and do not convey safety or idempotency, so the description carries the behavioral burden. It discloses that the tool creates a hire, returns an H-NNNN id, and normalizes the role to lower-cased and hyphenated form. This adds useful behavior beyond the bare schema.

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 convey the core action, return value, required fields, role transformation, and related tools without waste. The most important information is 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?

For a simple 3-parameter create tool with no output schema, the description covers inputs, return id, and next-step alternatives. Minor omissions such as failure modes or what happens with duplicate names are not critical given the tool's simplicity.

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 the description adds meaning by framing role as a 'grouping key' and indicating that name, role, and start date are the core inputs. It reinforces the role transformation rather than merely restating the parameter names.

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 ('Add') and resource ('a new hire') and tells the agent the tool returns an H-NNNN id. It also distinguishes itself from related siblings by pointing to onboarding_task_add and onboarding_template_apply for follow-up work, so there is no confusion with list/progress 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?

The description names the relevant alternative tools and suggests when to use them after adding a hire. It does not explicitly state when not to use this tool or compare it directly to template_apply, but the context is clear enough for a create operation.

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

onboarding_hire_listList hiresA

Every hire with their role, start date, task counts, percent complete and overdue count. Filter by role or by a word in the name. Returns at most 500 rows, newest change first.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoOnly hires in this role, matched after the same lower-case hyphenation applied on add
containsNoOnly hires whose name contains this text, matched case-insensitively

TDQS

A3.6/5.0
Behavior3/5

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

Annotations are all false, so the description carries the behavioral disclosure burden. It usefully adds the 500-row limit and 'newest change first' ordering, which are not visible in the schema. It does not explicitly state that the tool is read-only or has no side effects, though the list framing strongly implies this; there is no direct contradiction with the annotations.

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

Conciseness5/5

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

The description is three short sentences with no filler. It front-loads the returned fields, then states filtering, then the row cap and ordering, making every sentence informative and easy to scan.

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 only two optional parameters and no output schema, the description covers the essential call-time facts: what fields are returned, how to filter, the maximum result size, and the sort order. It does not mention pagination or authentication, but for a simple list tool with no required parameters this is not a critical gap.

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?

Both parameters are already fully documented in the JSON schema, including lower-case hyphenation matching for role and case-insensitive contains for name, so schema coverage is 100%. The description's 'Filter by role or by a word in the name' adds no new semantic detail beyond what the schema provides. The baseline of 3 is appropriate.

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 that the tool returns hire information with role, start date, task counts, percent complete, and overdue count. The listed fields and 'Every hire' framing distinguish it from focused sibling tools like onboarding_overdue or onboarding_progress. It would be stronger with an explicit verb, but the title 'List hires' supplies that action.

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 explains how to narrow results via role or name filter and notes the 500-row cap, which gives useful invocation context. However, it never explicitly contrasts this tool with siblings such as onboarding_overdue, onboarding_progress, or onboarding_hire_add, so when-to-use versus alternatives is only implied.

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

onboarding_overdueList overdue tasksA
Read-onlyIdempotent

Every task that is still outstanding past its due date, across all hires or one hire, with how many days late. Returns at most 500 rows, most overdue first.

ParametersJSON Schema
NameRequiredDescriptionDefault
hireNoOnly this hire's overdue tasks. Omit for every hire

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context: returns at most 500 rows, orders by most overdue first, and includes days-late information. This goes beyond the schema and annotations without contradicting them.

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 tightly written sentences: the first defines the resource and scope, the second communicates limit, ordering, and the days-late output. There is no filler or redundant restatement.

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 read-only list operation with one optional parameter and no output schema, the description supplies everything needed to invoke it correctly: scope, result size cap, ordering, and key output content. No critical behavioral or invocation detail is missing.

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 single optional parameter is already fully described in the schema: 'Only this hire's overdue tasks. Omit for every hire.' The description mirrors this scope but adds no new parameter-level meaning, so the schema carries the semantic weight.

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 identifies the tool as listing tasks that are outstanding past their due date, with scope across all hires or a single hire. It is distinct in substance from siblings like onboarding_progress or onboarding_task_add, though it does not explicitly name an alternative it is not.

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 intended use is implied: call this when you need overdue onboarding tasks, optionally filtered by a hire. However, it never states when to prefer this over related tools like onboarding_progress or onboarding_hire_list, and no exclusions are given.

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

onboarding_progressShow a hire's progressA

One hire's whole plan: every task with its owner, due date and status, plus the percent complete, the overdue count and what is still outstanding. Pass as_csv for a Pro-only CSV export of the plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
hireYesThe hire id, e.g. H-0001, or the name when only one carries it
as_csvNoReturn the plan as CSV. Pro only. Default false

TDQS

A3.9/5.0
Behavior3/5

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

Annotations provide no behavioral hints (readOnlyHint=false, etc.), so the description must cover behavior. It discloses that the tool returns a full plan and that CSV export is Pro-only, which is useful. But it does not state whether this operation is read-only, whether it modifies anything, or any side effects. Given the absence of annotations, a 3 is reasonable because it adds some context but misses a clear statement of read-only nature.

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 two sentences, compact and front-loaded with the core purpose. The CSV note is appended succinctly. It could be more concise by trimming redundant words like 'whole plan' but overall efficient and focused.

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 (2 parameters, no output schema, no nested objects), the description covers the main behavior and the CSV option. It doesn't describe return format in detail, but since there is no output schema, the agent might need to infer the structure. However, the description lists the data elements (percent complete, overdue count, outstanding), which is sufficient for most use cases. Slight gap on CSV format details, but acceptable.

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 both 'hire' and 'as_csv' are already well-documented in the schema. The description reinforces what 'hire' means (the hire's progress) and adds the Pro-only constraint for as_csv, which is a small addition. Since the schema does most of the work, baseline 3 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 identifies the tool as showing a single hire's complete onboarding plan, listing specific components (tasks, owners, due dates, status, percent complete, overdue count, outstanding items). It distinguishes from sibling tools like onboarding_overdue by scope (one hire's whole plan vs. overdue items) and from onboarding_hire_list by focus on progress details.

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 states its primary use (showing a hire's progress) and hints at the CSV option for Pro users, but it does not explicitly say when NOT to use it or mention alternatives. However, the scope is clear enough that an agent can infer it is for a single hire's plan, not for listing hires or tasks.

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

onboarding_task_addAdd a task to a hireA

Add one task to a hire's plan and return its K01-style id: the text, who owns it (hr, manager or it) and how many days after the start date it is due. The due date is counted from the hire's start date.

ParametersJSON Schema
NameRequiredDescriptionDefault
hireYesThe hire id, e.g. H-0001, or the name when only one carries it
textYesThe task, as the person doing it will read it, e.g. Issue laptop and security badge
ownerYesWho owns the task: hr, manager or it
due_offsetYesDays after the hire's start date the task is due. 0 is day one

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish that this is not read-only, destructive, or idempotent. The description adds useful behavioral context beyond those annotations by specifying that the response is a K01-style id and by clarifying that the due date is counted from the hire's start date. It does not contradict the annotations.

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

Conciseness5/5

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

The description is two sentences with no filler. The first sentence states the action and return value, and the second clarifies date counting. It earns its place without duplicating schema details unnecessarily.

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?

All four required parameters are documented in the schema, and since there is no output schema, the description supplies the missing return contract. For a simple create tool, this is complete enough for an agent to call it correctly.

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%, with each parameter fully described including the owner enum and due_offset semantics. The description mostly restates the due_offset behavior rather than adding new parameter-level meaning, so the baseline score of 3 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 states a specific verb ('Add'), a specific resource ('a hire's plan'), and the expected result ('return its K01-style id'), while listing the key attributes involved. This clearly separates it from siblings like onboarding_task_done and onboarding_template_apply, which operate in the same domain but perform different actions.

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?

There is no explicit guidance about when to use this tool versus alternatives, such as 'use this for individual task creation rather than applying a template'. The phrase 'Add one task' and the sibling tool names imply the intended use, but the agent must make that inference rather than being told.

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

onboarding_task_doneMark a task done or skippedA

Mark one task on a hire done or skipped, with the day it happened. done counts toward the percent complete; skipped is a deliberate dismissal and never counts as done. A task can be set back to todo to reopen it.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoThe day it was completed, YYYY-MM-DD. Default today
hireYesThe hire id, e.g. H-0001, or the name when only one carries it
taskYesThe task id, e.g. K03, as shown by onboarding_progress
statusYesdone, skipped, or todo to put it back to outstanding

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only indicate readOnly=false, destructive=false, and idempotent=false. The description adds meaningful behavioral context: done counts toward percent complete, skipped is a deliberate dismissal that never counts, and todo reopens the task. This goes beyond the structured fields without contradicting them.

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 no filler. The main action is front-loaded, each status is given meaningful context in a compact way, and the re-open note earns its place by completing the status model.

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 four-parameter mutation tool with a complete schema, the description covers the status behavior and even the date aspect. No output schema exists, but for a state-change tool the return value is not essential for correct invocation. The definition is sufficient for an agent to use it correctly.

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 documents all four parameters at 100% coverage, including the date format, hire id/name, task id, and status enum. The description reinforces the status semantics but does not need to repeat parameter-level details; the schema carries the load.

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 a specific action and resource: 'Mark one task on a hire done or skipped, with the day it happened.' It also clarifies the statuses (done, skipped, todo) and the semantic distinction between them, making it easy to separate from siblings like onboarding_task_add or onboarding_progress.

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 when to use the tool: whenever a single task's status needs to be changed. It explains the meaning of each status choice, but it does not explicitly name alternatives or state when not to use this tool, so the guidance is mostly implied.

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

onboarding_template_applyApply a role template to a hireA

Apply a role template to one hire (free) or many (Pro), copying the template's tasks into each hire with the template's version recorded. Editing the template afterwards never changes a hire already under way. If no template exists for the role, one is created from the tasks you pass.

ParametersJSON Schema
NameRequiredDescriptionDefault
hireYesThe hire to apply the template to. Pro: pass a comma-separated list of hire ids or names to apply to many at once
roleNoThe role template to apply, by id (T-0001) or role. If omitted, the hire's own role is used
tasksNoWhen no template exists for the role, create one from these tasks and apply it. Pro only when applying to more than one hire

TDQS

A4.2/5.0
Behavior4/5

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

The description goes beyond the annotations by disclosing important side effects: a version is recorded, later edits to the template do not affect already-started hires, and a missing template is auto-created from the provided tasks. This is meaningful behavioral context for a mutating tool.

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 deliver all the essential information: the action, the free/Pro distinction, version recording, immutability of existing hires, and fallback template creation. No filler or 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?

The description is largely complete for selecting and invoking the tool: it covers scope, versioning, post-edit behavior, and template creation. However, it does not mention return values or edge cases like re-applying a template to a hire that already has tasks, and there is no output schema to fill that gap.

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 the baseline is 3. The description reinforces the hire plurality and the tasks fallback behavior but does not add significant new meaning beyond what the input schema already documents for each parameter.

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 identifies the operation as applying a role template to a hire, specifies the main effect (copying tasks into the hire), and notes the version-recording behavior. It is distinct from sibling tools like onboarding_task_add or onboarding_hire_add because it operates on templates and hires at the template level.

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 gives clear usage context: one hire on free plans, many on Pro, and automatic template creation when none exists. It does not explicitly tell the agent when not to use this tool or name alternative tools, but the intended use case is clear enough to select it correctly.

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. 9 tool updatesv0.22.0
    • First observedlicense_activate
    • First observedlicense_status
    • First observedonboarding_hire_add
    • First observedonboarding_hire_list
    • First observedonboarding_overdue
    • First observedonboarding_progress
    • First observedonboarding_task_add
    • First observedonboarding_task_done
    • First observedonboarding_template_apply

TDQS

A4/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct resource and action: hires, tasks, templates, progress, overdue, and licensing are clearly separated. Even the overlapping summary tools (hire_list vs progress vs overdue) are differentiated by aggregate list vs single-plan detail.

Naming Consistency4/5

Most tools follow a consistent snake_case pattern with domain prefixes like onboarding_ and license_, and a resource-action structure such as hire_add, task_done, template_apply. The exceptions are onboarding_progress and onboarding_overdue, which use noun/adjective commands rather than an explicit verb, and license_status which is noun-like.

Tool Count5/5

Nine tools is a well-scoped set for an onboarding workflow: hire creation, task management, template application, progress/overdue reporting, and license handling. Each tool has a clear purpose and none feel redundant or bloat the surface.

Completeness3/5

Core workflows are covered: add hires, add/complete tasks, apply templates, view progress, and check overdue items. However, there are notable lifecycle gaps: no way to update or delete a hire, no task edit/removal, and no template management beyond applying one.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers