io.github.theluckystrike/checklist
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Reusable checklists and dated runs of them: pass, fail, not applicable, and a sign-off.
| Author | io.github.theluckystrike |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 3002 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"checklist": {
"url": "https://mcp.zovo.one/mcp/checklist",
"transport": "streamable-http"
}
}
}
Measured tools (16)
checklist_createCreate a reusable checklist and return its CL-NNNN id: a name, a category and an optional description. Add the steps with checklist_item_add. Free tier: 3 checklists, and unlimited runs of them.
Parameters:
name(required) — string — What the checklist is, e.g. Pre-delivery vehicle check or Site handovercategory— string — A grouping key, lower-cased and hyphenated, e.g. handover or safety. Default generaldescription— string — What this checklist is for and when to run it, printed at the top of a blank copy
Hints: read-only no · destructive no · idempotent no · open-world no
checklist_item_addAdd one step to a checklist and return its I01-style id: the text, an optional section heading, and whether it is required. A required step that is unanswered or failed blocks sign-off; an optional one does not.
Parameters:
checklist(required) — string — The checklist id, e.g. CL-0001, or its name when only one carries ittext(required) — string — The step, as the person doing it will read it, e.g. Tyre pressures checked and recordednote— string — Guidance printed under the step, e.g. the tolerance or the standard it is checked againstsection— string — A heading to group this step under, e.g. Exterior. Steps keep the order they were added within a sectionposition— integer — Insert at this 1-based position instead of at the end. Existing steps keep their idsrequired— boolean — Whether sign-off is blocked while this step is unanswered or failed. Default true
Hints: read-only no · destructive no · idempotent no · open-world no
checklist_item_removedestructiveRemove one step from a checklist by its I01-style id and bump the checklist version. Runs already under way keep the step they started with, so nothing anybody already ticked is rewritten.
Parameters:
checklist(required) — string — The checklist id, e.g. CL-0001, or its name when only one carries ititem(required) — string — The step id, e.g. I03, as shown by checklist_show
Hints: read-only no · destructive yes · idempotent no · open-world no
checklist_showread-onlyOne checklist with its steps in order, grouped by section, plus how many are required and how many runs have been started from it. Pass as_text for a blank printable copy with a box against each step.
Parameters:
checklist(required) — string — The checklist id, e.g. CL-0001, or its name when only one carries itas_text— boolean — Return a blank printable copy as plain text as well as the structured view. Default false
Hints: read-only yes · destructive no · idempotent yes · open-world no
checklist_listread-onlyEvery checklist with its category, version, step count and how many runs came from it. Filter by category or by a word in the name. Returns at most 500 rows, newest change first.
Parameters:
category— string — Only checklists in this category, matched after the same lower-case hyphenation applied on createcontains— string — Only checklists whose name contains this text, matched case-insensitively
Hints: read-only yes · destructive no · idempotent yes · open-world no
checklist_deletedestructiveDelete a checklist and its steps for good. Runs already started from it are untouched and stay readable: a run carries its own copy of the steps, so deleting the checklist does not erase what anybody signed.
Parameters:
checklist(required) — string — The checklist id, e.g. CL-0001, or its name when only one carries itconfirm(required) — boolean — Must be true. There is no undo and nothing is copied anywhere first
Hints: read-only no · destructive yes · idempotent no · open-world no
run_startStart a dated run of a checklist and return its RUN-YYYY-NNNN id. The steps are COPIED into the run, so editing the checklist afterwards never changes a run already under way. Runs are free and never capped.
Parameters:
checklist(required) — string — The checklist id, e.g. CL-0001, or its name when only one carries ittitle(required) — string — What this run is against, e.g. Van BX21 KLM, February servicedate— string — The day the run happened, YYYY-MM-DD. Default todaynote— stringreference— string — The job, order or asset id this run belongs to, e.g. WO-2026-0044. Named only; no sibling store is opened
Hints: read-only no · destructive no · idempotent no · open-world no
run_checkMark one step pass, fail or na, with who did it and when. na means the step did not apply; it counts as answered and never as passed. A step can be answered again while the run is open, and the last answer stands.
Parameters:
run(required) — string — The run id, e.g. RUN-2026-0001, or its title when only one carries ititem(required) — string — The step id, e.g. I03, as shown by run_showstate(required) — string — pass, fail, na for did not apply, or pending to put the step back to unansweredat— string — The day it was answered, YYYY-MM-DD. Default the run's own dateby— string — Who answered it. Printed against the step on the reportnote— string — What was found. Say why on a fail: the report prints this under the step
Hints: read-only no · destructive no · idempotent no · open-world no
run_showread-onlyThe whole run: every step with its answer, who answered it and when, grouped by section, plus the pass, fail and outstanding counts, the failures in full, and whether it can be signed off and why not.
Parameters:
run(required) — string — The run id, e.g. RUN-2026-0001, or its title when only one carries it
Hints: read-only yes · destructive no · idempotent yes · open-world no
run_listread-onlyRuns newest first, with their checklist, progress and sign-off state. Filter by checklist, by status, by reference or to open runs only. Returns at most 500 rows.
Parameters:
status— string — Only runs in this statuschecklist— string — Only runs of this checklist, by id or nameopen_only— boolean — Only open and complete runs, the ones still editable. Default falsereference— string — Only runs against this job, order or asset id, matched case-insensitivelywith_failures— boolean — Only runs that have at least one failed step. Default false
Hints: read-only yes · destructive no · idempotent yes · open-world no
run_sign_offSign off a completed run with a name and a date, which freezes it. Refused while a required step is unanswered or failed, unless force is true, and either way the exceptions stay on the record and print on the report.
Parameters:
run(required) — string — The run id, e.g. RUN-2026-0001, or its title when only one carries itby(required) — string — Who is signing it off, as it should read on the documentdate— string — The day it was signed, YYYY-MM-DD. Default todaynote— string — What the signature covers, or the exception being acceptedforce— boolean — Sign off even though required steps are unanswered or failed. Default false; the reasons come back either way
Hints: read-only no · destructive no · idempotent no · open-world no
run_statusread-onlyMove a run back to open so a step can be answered again, or abandon it when the job did not happen. A signed-off run is refused: a signature is the point at which a run stops moving.
Parameters:
run(required) — string — The run id, e.g. RUN-2026-0001, or its title when only one carries itstatus(required) — string — open puts a complete run back into edit; abandoned closes it without a signaturedate— string — The day the step happened, YYYY-MM-DD. Default todaynote— string — Why. Kept on the run's history and printed nowhere else
Hints: read-only yes · destructive no · idempotent yes · open-world no
run_reportread-onlyThe run as plain text on every tier: every step with its mark, who answered it, the notes, the counts and a signature block or the recorded signature. Pro also gets it back as a .txt download link valid for one hour, named by out_path.
Parameters:
run(required) — string — The run id, e.g. RUN-2026-0001, or its title when only one carries itout_path— string — Name for the downloaded .txt file, e.g. site-handover-run. Pro only. Omit to get the report back as text, which every tier can do; the file comes back as a download link valid for one houroverwrite— boolean — Replace out_path if a file is already there. Default false, and an existing file is refused with nothing written
Hints: read-only yes · destructive no · idempotent yes · open-world no
run_deletedestructiveDelete a run for good, with every answer on it. A signed-off run is refused: it is the record of what somebody put their name to. Abandon a run you no longer want instead of deleting a signed one.
Parameters:
run(required) — string — The run id, e.g. RUN-2026-0001, or its title when only one carries itconfirm(required) — boolean — Must be true. There is no undo and nothing is copied anywhere first
Hints: read-only no · destructive yes · idempotent no · open-world no
license_statusread-onlyReport this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
Hints: read-only yes · destructive no · idempotent yes · open-world no
license_activateTurn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
Parameters:
key(required) — string — License key from checkout, MCPL1.<payload>.<signature>
Hints: read-only no · destructive no · idempotent no · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.