
Service Report
io.github.theluckystrike由 GitHub 账号 theluckystrike 发布v0.22.6更新于 Oct 24, 2026
Field service reports: hours, materials, sign-off, and the invoice the visit turns into.
概览
本地 MCP 服务器,用于现场服务工单:创建工单、记录工时与材料、推进状态,并生成完工报告和发票数据。
- 可以做什么
- 创建、列出、查看和删除工单,包含客户、现场地址、申请日期、描述和优先级,并按草稿、已排期、进行中、完成、已开票逐步推进,每步记录日期和备注。添加材料行(数量、单位成本、可选加价)和工时行(小时数与费率)。生成纯文本或 A4 PDF 完工报告,含签收栏。生成可直接用于 invoice_create 的发票数据,增值税按共享配置的税率计算。汇总看板:各状态工单数、本月工时、各币种未开票金额。查询或激活许可证。
- 适用场景
- 适合以工单形式管理施工和现场服务工作的场景:让助手在作业过程中记录工时和材料,并把完成的作业转成客户签收报告和发票数据,无需重新录入数字。
- 运行要求
- 作为桌面本地进程运行,通过 .mcpb 安装包或克隆后构建安装;npm 包尚未发布,npx 目前会失败。无需账户或 API 密钥。可选的 Pro 许可证密钥通过 MCP_LICENSE_KEY 提供,离线校验。数据保存在本机用户数据目录。
安装
在 SourceWeft 中
- 打开 控制台中的 Service Report,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
mcp-work-order
In the official MCP Registry (io.github.theluckystrike/work-order).
Job orders for trades and field work, kept the way a job card is kept. Raise a work order
against a client (the same client record your invoices use), give it a site address, the
date it was asked for, what the job is and how urgent. Log what the job actually used as it
goes: labour as hours at a rate, parts as a quantity at a unit cost with an optional markup.
Move it along one step at a time, draft to scheduled to in progress to done to invoiced,
each step stamped with its date and a note. When it is finished, hand the customer a
completion report with the hours, the materials, the totals and a sign-off block, and take
the invoice payload straight to invoice_create without retyping a single figure.
Nothing is invented and nothing is stored twice: the value, the hours, the materials and the VAT are derived from the lines on every call, and the invoice payload's unit prices are already the billed units, so the invoice reproduces the work order to the minor unit.
npm publish for @theluckystrike/mcp-work-order is pending, so npx -y @theluckystrike/mcp-work-order returns 404 today. Until then, the .mcpb one-click bundle or a clone+build is the working path.
Install
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or
%APPDATA%\Claude\claude_desktop_config.json (Windows):
Claude Code
Cursor
~/.cursor/mcp.json (global) or .cursor/mcp.json (project), same entry as Claude Desktop.
Tools
Free vs Pro
The cap counts OPEN work orders (draft, scheduled, in progress), not the ones you have ever
raised, so finishing a job frees its slot. So does work_order_delete on a draft that has
no lines, which is free on every tier: a way back that only a Pro key can reach is not a way
back.
Get Pro: https://mcp.zovo.one/buy/work-order (one-time $19, lifetime), or all servers for $39: https://mcp.zovo.one/buy/bundle
Where the money comes from
This server keeps no arithmetic of its own. computeTotals, currencyDecimals,
formatMoney and roundHalfUp are imported from @theluckystrike/mcp-invoice/lib, the A4
renderer from @theluckystrike/mcp-billing-docs/lib, the corrupt-store quarantine from
@theluckystrike/mcp-timezone/lib. The VAT rate, the currency and the business name come
from the shared business profile that business_set in the invoice server writes; the
client comes from that server's client records. Nothing is written outside this server's own
directory.
The measured insight
A markup belongs on the unit cost, not on the line total, and one minor unit is what says
so. Seven parts at EUR 12.99 with 15 percent on top is EUR 14.94 a unit and EUR 104.58 on
the line. Marking up the line total instead is round(9093 * 1.15) = 10,457 minor units, a
cent less. Both look like the same sum, and only one of them is the figure the customer will
be billed: the invoice server rounds the unit price to the minor unit first and multiplies
(its D-R24 basis), so a work order that quotes the line-total figure quotes a number its own
invoice cannot reproduce. The gap appears on every line whose marked-up unit does not land on
a whole cent, it never nets out across lines because it is a rounding direction and not an
error, and it is invisible in a spreadsheet check because both bases add up correctly. The
unit suite asserts the 1-unit gap explicitly, so a change of basis fails the build instead of
quietly re-pricing every job on the board.
Privacy
All data stays on your machine, in ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/work-order/.
Nothing is sent anywhere. There is no account and no API key. License keys are verified
offline. This server reads one sibling file, the invoice server's clients.json, and writes
into no store but its own.
Built by theluckystrike. https://github.com/theluckystrike
Use these docs as an MCP server
Any MCP client (Claude, Cursor, Windsurf, VS Code) can read this repository's documentation directly via GitMCP - no install:
- Docs MCP URL: https://gitmcp.io/theluckystrike/mcp-work-order
来源:servers/work-order/README.md,提交 6535b33
工具
0版本历史
3- v0.22.6最新Oct 14, 2026
- v0.22.2Sep 23, 2026
- v0.21.0Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分