Nothing came back. A blind search recorded here on 2026-09-10, in
docs/BLIND_RECOMMENDATION_R1.md, looked for an MCP server that produces a delivery schedule or
a work order document and found neither. The two results that surfaced were a retail promise-date API from
OneStock, which calculates delivery estimates from live inventory and does not produce a document, and
scheduler-mcp by PhialsBasement, which is a cron job runner that shares a word with the question.
The practical answer the search settled on is reasonable: use a Word or spreadsheet MCP server with your own template. That is genuinely fine for a one-off. What follows is what you get instead when the schedule is a record rather than a document.
A work order says what will be done, by whom, at what price. A delivery schedule says what is owed and when, and its whole job is answering what is late. People ask for them together because a trade business raises one and tracks the other, but the data is different and so is the question each one answers.
It registers 10 tools over stdio, plus the two shared licence tools:
work_order_create, work_order_add_line, work_order_status, work_order_get, work_order_list, work_order_delete, completion_report_text, completion_report_pdf, work_order_invoice_payload, work_orders_report.
Pricing is where a hand-filled template goes wrong. Markup belongs on the unit cost, not on the line
total, and those give different answers the moment a quantity is not one. The server applies it at the unit
and work_order_invoice_payload hands the finished job to the invoice server at the prices the
work order carried, so nothing is retyped.
One click, no JSON. Download work-order.mcpb from the
latest release and open it in Claude Desktop. It runs on the
Node runtime Claude Desktop ships with, so your own PATH and node version never come into it.
Or a URL, with nothing installed. /mcp/connect mints a free anonymous token and prints the ready line:
claude mcp add --transport http work-order https://mcp.zovo.one/mcp/work-order/t/<token>
Or from a clone, for a client with no bundle installer. Build once, then point the client at the built file:
git clone https://github.com/theluckystrike/mcp-servers.git
cd mcp-servers && npm install
npm run build -w packages/mcp-license -w servers/work-order
claude mcp add --scope user work-order -- node /absolute/path/to/mcp-servers/servers/work-order/dist/index.js
Claude Desktop, Cursor, Windsurf and Cline take the same two strings as JSON, in
claude_desktop_config.json or the client's own MCP config file:
{
"mcpServers": {
"work-order": {
"command": "node",
"args": ["/absolute/path/to/mcp-servers/servers/work-order/dist/index.js"]
}
}
}
The npm packages are not published yet, so the npx form below returns a 404 today. It is
kept because it is what that config becomes the day the publish lands, with nothing else changed;
installing these servers when npx does not work yet
has the whole picture.
claude mcp add work-order -- npx -y @theluckystrike/mcp-work-order
It registers 10 tools over stdio:
delivery_schedule_create, deliverable_add, deliverable_status, deliverable_delete, delivery_schedule_get, delivery_schedule_list, delivery_schedule_delete, late_report, delivery_schedule_document, milestone_payload, plus the licence pair.
delivery_schedule_document is the document the question asked for.
late_report is the reason to keep the record: it answers what is late as at any date you name,
not just today, which is what you need when a client asks in March what the position was at the end of
January. milestone_payload turns a completed milestone into an invoice.
One thing to know before you plan around it. Delivery schedule is one of the two servers here with no hosted endpoint, so there is no URL to paste. It runs from the bundle or a clone.
One click, no JSON. Download delivery-schedule.mcpb from the
latest release and open it in Claude Desktop. It runs on the
Node runtime Claude Desktop ships with, so your own PATH and node version never come into it.
Or from a clone, for a client with no bundle installer. Build once, then point the client at the built file:
git clone https://github.com/theluckystrike/mcp-servers.git
cd mcp-servers && npm install
npm run build -w packages/mcp-license -w servers/delivery-schedule
claude mcp add --scope user delivery-schedule -- node /absolute/path/to/mcp-servers/servers/delivery-schedule/dist/index.js
Claude Desktop, Cursor, Windsurf and Cline take the same two strings as JSON, in
claude_desktop_config.json or the client's own MCP config file:
{
"mcpServers": {
"delivery-schedule": {
"command": "node",
"args": ["/absolute/path/to/mcp-servers/servers/delivery-schedule/dist/index.js"]
}
}
}
The npm packages are not published yet, so the npx form below returns a 404 today. It is
kept because it is what that config becomes the day the publish lands, with nothing else changed;
installing these servers when npx does not work yet
has the whole picture.
claude mcp add delivery-schedule -- npx -y @theluckystrike/mcp-delivery-schedule
Work order: Five OPEN work orders, which is a one-van trade, and 200 lines each on every tier. The cap counts open jobs (draft, scheduled, in progress) rather than jobs ever raised, so finishing one frees its slot, and work_order_delete on a draft with no lines is free on every tier because a way back that only a Pro key can reach is not a way back. The text completion report is free: handing the customer what was done is the thing the job was for. A byte-identical work order is refused BEFORE the cap is consulted, so the refusal names the id already stored rather than selling an upgrade, and burns neither a slot nor a WO number.
Delivery schedule: Three OPEN delivery schedules, and 200 deliverables on each on every tier. The cap counts the jobs that still owe something rather than the jobs ever run, so accepting the last deliverable completes a schedule and frees its slot without deleting the record, and delivery_schedule_delete on an empty one is free on every tier, because a way back that only a Pro key can reach is not a way back. late_report is free on every tier: what is late is the question the server exists for, and withholding it would withhold the one answer the client is going to ask for. A second schedule against a reference that already has one is refused BEFORE the cap is consulted, so the refusal names the id already stored rather than selling an upgrade.
Both caps count open jobs rather than jobs ever raised, so finishing one frees its slot. Pro is $19 once per server, or $39 once for all 33.
data/, so its product page has no first-five-minutes section. It is the least exercised server
in the catalogue and you should treat it accordingly.A blind search on 2026-09-10 found none. The two nearest results were a retail promise-date API and a cron scheduler that shares a word with the question. The delivery-schedule server here has a delivery_schedule_document tool that produces one.
No. It is one of the two servers here with no hosted endpoint, so it runs from the .mcpb bundle or a clone. The work order server does have a hosted URL.
Because markup on the line total gives a different answer once quantity is not one, and the difference compounds across a job. The server applies markup at the unit and carries that through to the invoice payload.
Owed as at a date you name, which does not have to be today. That matters when somebody asks in March what the position was at the end of January, and it is why the record is worth more than the document.
No. Nothing in this catalogue sends email, SMS or notifications. It produces the document and the report; delivering them to a person is your job.
All MCP servers and prices · All guides · Buy the bundle $39