关于 work-order
work-order 是面向技工和现场团队的 MCP 服务,用于管理从创建到开票的工单。它记录人工与零件用量,生成完工报告,并根据工单明细整理可用于开票的数据。
主要功能
- 01创建并跟踪客户工单
- 02记录工时及加价零件
- 03管理状态历史、日期和备注
- 04生成文本及 PDF 完工报告
- 05准备开票所需数据
- 06列出工单并汇总看板
适用场景
- 01跟踪现场工作从排期到完工
- 02记录作业使用的工时和材料
- 03发送完工报告供客户签字
- 04将工单金额传入开票流程
MCP 相关
通过 MCP 工具提供工单创建、更新、列表和删除,以及报告生成和开票数据准备功能。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.zovo.one/mcp/work-orderclaude mcp add --transport http theluckystrike-work-order https://mcp.zovo.one/mcp/work-order{"mcpServers":{"theluckystrike-work-order":{"type":"http","url":"https://mcp.zovo.one/mcp/work-order"}}}在 Cursor 中打开{"servers":{"theluckystrike-work-order":{"type":"http","url":"https://mcp.zovo.one/mcp/work-order"}}}在 VS Code 中打开{"mcpServers":{"theluckystrike-work-order":{"type":"http","url":"https://mcp.zovo.one/mcp/work-order"}}}{"mcpServers":{"theluckystrike-work-order":{"serverUrl":"https://mcp.zovo.one/mcp/work-order"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.zovo.one/mcp/work-order需要授权工具
12| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| note | string | 否 | |
| client | string | 是 | 发票服务端客户记录中的客户名称或 ID。未知名称还必须提供 client_address,以免将拼写错误登记为新客户 |
| currency | string | 否 | 工单定价所用的 ISO 代码。默认为共享业务资料中的货币 |
| priority | enum | 否 | 工单的紧急程度。默认为 normallow | normal | high | urgent |
| description | string | 是 | 工作内容,例如:更换浸入式热水器并进行测试 |
| client_email | string | 否 | |
| duplicate_ok | boolean | 否 | 即使存在相同工单也提交,适用于确实需要重复上门的情况。默认为 false |
| site_address | string | 是 | 工作地点。这是现场地址,不是账单地址 |
| client_vat_id | string | 否 | |
| client_address | string | 否 | 客户的账单地址,适用于尚未录入发票记录的客户 |
| requested_date | string | 是 | 请求工作日期,格式为 YYYY-MM-DD |
详细介绍
mcp-work-order
已收录于官方 MCP Registry(io.github.theluckystrike/work-order)。
用于管理行业和现场工作的工单,记录方式与工作卡相同。针对客户创建工单(使用与发票相同的客户记录),填写现场地址、需求日期、工作内容和紧急程度。随着工作进展,记录实际用量:人工按工时和费率计算,零件按数量和单位成本计算,并可选填写加价比例。工单按步骤推进:从 draft 到 scheduled,再到 in progress、done 和 invoiced;每一步都会记录日期和备注。工作完成后,向客户提供完工报告,其中包含工时、材料、合计金额和签字栏;然后将发票数据直接传给 invoice_create,无需重新输入任何数字。
不虚构数据,也不重复存储:每次调用时,金额、工时、材料和 VAT 均根据明细行计算;发票数据中的单位价格已经是计费单位价格,因此发票金额与工单精确到最小货币单位一致。
@theluckystrike/mcp-work-order 的 npm 发布尚未完成,因此目前运行 npx -y @theluckystrike/mcp-work-order 会返回 404。在此之前,可使用 .mcpb 一键安装包,或克隆并构建。
安装
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或
%APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"work-order": {
"command": "npx",
"args": ["-y", "@theluckystrike/mcp-work-order"]
}
}
}
Claude Code
claude mcp add work-order -- npx -y @theluckystrike/mcp-work-order
Cursor
~/.cursor/mcp.json(全局)或 .cursor/mcp.json(项目),配置项与 Claude Desktop 相同。
工具
| 工具 | 功能 |
|---|---|
work_order_create | 创建工单并返回 WO-YYYY-NNNN 编号:客户、现场地址、需求日期、描述、优先级 |
work_order_add_line | 添加一条明细:零件需填写数量、以最小货币单位表示的单位成本和可选的加价百分比;或人工需填写工时和小时费率 |
work_order_status | 将工单推进一步:draft、scheduled、in_progress、done、invoiced,并记录日期和备注 |
work_order_get | 获取完整工单:所有明细及其计费单位、工时、材料、未税金额和 VAT,以及状态历史 |
work_order_list | 按状态、客户和需求日期范围列出工单 |
work_order_delete | 删除误创建的工单。仅限没有明细的 draft 工单。所有套餐均可免费使用 |
completion_report_text | 以纯文本形式生成完工报告,可直接粘贴到电子邮件中 |
completion_report_pdf | 生成 A4 PDF 格式的完工报告,包含签字栏 |
work_order_invoice_payload | 根据明细生成可直接用于 invoice_create 的数据,并按共享资料中的税率计算 VAT |
work_orders_report | 查看整个看板:各状态的工单数量、本月记录的工时、各币种未开票金额 |
license_status / license_activate | 查看 Free 或 Pro 许可证状态及升级方式 |
Free 与 Pro
| Free | Pro | |
|---|---|---|
| 未完成工单 | 5 | unlimited |
| 每张工单的明细行 | 200 | 200 |
| 创建、记录、推进、列出、删除 | 是 | 是 |
| 完工报告(文本) | 是 | 是 |
| 完工报告(PDF) | 否 | 是 |
| 发票数据 | 否 | 是 |
| 看板报告 | 否 | 是 |
数量上限只统计未完成工单(draft、scheduled、in progress),不包括你曾创建过的所有工单,因此完成一项工作就会释放一个名额。删除没有明细的 draft 工单也会释放名额,且所有套餐均可免费使用:只有 Pro 密钥才能使用的恢复方式,就不算真正的恢复方式。
获取 Pro:https://mcp.zovo.one/buy/work-order(一次性支付 $19,永久使用),或花费 $39 获取所有服务:https://mcp.zovo.one/buy/bundle
费用的来源
此服务本身不执行任何算术运算。computeTotals、currencyDecimals、
formatMoney 和 roundHalfUp 从 @theluckystrike/mcp-invoice/lib 导入,A4
渲染器从 @theluckystrike/mcp-billing-docs/lib 导入,损坏存储隔离功能从
@theluckystrike/mcp-timezone/lib 导入。增值税税率、货币和企业名称来自共享企业资料,该资料由发票服务中的
business_set 写入;客户信息来自该服务的客户记录。此服务不会在自身目录之外写入任何内容。
经计算验证的洞见
**加价应计入单位成本,而非行总额;两种方式相差一个最小货币单位,足以说明这一点。**七件商品,每件 EUR 12.99,加价 15%,单价为 EUR 14.94,行总额为 EUR 104.58。如果改为对行总额加价,计算结果就是 round(9093 * 1.15) = 10,457 个最小货币单位,少一分钱。两种方式看起来总额相同,但只有一种才是客户会被收取的金额:发票服务会先将单价舍入到最小货币单位,再进行乘法计算(其依据为 D-R24),因此,如果工单报价采用行总额计算出的金额,发票就无法复现该金额。每当加价后的单价无法精确到整分时,差额就会出现;由于这是舍入方向造成的,而非错误,因此不会在线条之间相互抵消;在电子表格检查中也看不出来,因为两种计算依据的总额都正确。单元测试套件明确断言这 1 个单位的差额,因此,计算依据一旦更改,构建就会失败,而不会悄悄重新定价所有待处理工作。
隐私
所有数据都保留在你的设备上,位于 ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/work-order/。
不会向任何地方发送数据。无需账户,也不需要 API 密钥。许可证密钥会离线验证。此服务会读取一个同级文件,即发票服务的 clients.json,且只写入自己的存储。
由 theluckystrike 构建。https://github.com/theluckystrike
将这些文档用作 MCP 服务
任何 MCP 客户端(Claude、Cursor、Windsurf、VS Code)都可以通过 GitMCP 直接读取此仓库的文档,无需安装:
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。