关于 scope-change
面向承接项目的企业,记录报价或工单的范围变更、客户审批及合同金额变化。待审批金额与已批准金额分开计算,并可生成不同金额单位的开票和报价条目。
主要功能
- 01记录增项、删项和变更及原因
- 02按日期追踪审批状态
- 03计算已批准与待批合同金额
- 04生成客户审阅的变更单
- 05输出开票和报价条目
适用场景
- 01记录工单执行中的范围调整
- 02核对审批后合同总额
- 03将获批变更整理为开票条目
MCP 相关
这是供 MCP 客户端调用的 MCP 服务,提供变更单创建、管理、查询和金额计算等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-change-order
位于官方 MCP Registry(io.github.theluckystrike/change-order)。
针对报价单或工单提出变更单,并像在现场处理签证一样记录:增加了什么、删去了什么、改动了什么,每项都附有原因和日期,然后发送给客户并等待回复。合同当前金额为原始金额加上客户已批准的变更额;尚未收到回复的变更额会显示为待处理,绝不会计入其中。
变更单获批后,一次调用即可返回可用于 invoice_create 的 MAJOR 单位项目,以及可用于 quote_create 的 MINOR 单位项目,并为每项标明单位尺度。
不会存储变更额。变更单保存其明细和状态历史;变更额、当前金额和增值税均在每次调用时根据发票服务自身的计算方式得出。不凭空编造数据:针对某个引用提出的第一张变更单会注明一次原始合同金额,之后的变更单都会沿用该金额;如果提供不同金额,则会明确拒绝。
安装
一键安装(.mcpb):从最新版本下载 change-order.mcpb,然后在 Claude Desktop 中双击:
https://github.com/theluckystrike/mcp-servers/releases/latest
托管服务,无需安装:让基于 URL 的客户端连接到 https://mcp.zovo.one/mcp/change-order。GET https://mcp.zovo.one/mcp/connect 会生成令牌并打印可直接使用的 URL。
@theluckystrike/mcp-change-order 的 npm 发布尚未完成,因此下方的 npx 命令目前会返回 404。
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或
%APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"change-order": {
"command": "npx",
"args": ["-y", "@theluckystrike/mcp-change-order"]
}
}
}
Claude Code
claude mcp add change-order -- npx -y @theluckystrike/mcp-change-order
Cursor
~/.cursor/mcp.json(全局)或 .cursor/mcp.json(项目),使用与 Claude Desktop 相同的条目。
工具
| 工具 | 功能 |
|---|---|
change_order_create | 针对报价单或工单提出变更单:填写引用、客户、标题、日期,以及第一张变更单的原始合同金额 |
change_order_add_line | 向草稿添加增加、删除或变更的明细,并填写数量、以次要货币单位计价的单价、原因和日期 |
change_order_status | 推进状态:草稿转为已发送,已发送转为已批准或已拒绝,草稿或已发送转为已作废;每一步都记录日期 |
change_order_get | 完整查看一张变更单:每项明细及其变更额、增值税、历史记录和该引用的当前金额 |
change_order_list | 按引用、状态、客户和日期范围筛选变更单,并按币种显示已批准和待处理的变更额 |
change_order_delete | 删除误建的空白草稿。所有套餐均可免费使用 |
contract_value | 查看某个引用的当前金额:原始金额、已批准的变更额、当前金额,以及单独列出的待处理变更额 |
change_order_document | 生成纯文本变更单,供客户审批 |
change_order_invoice_payload | 将已批准的变更额作为 invoice_create 项目(MAJOR 单位)和 quote_create 项目(MINOR 单位)返回 |
license_status / license_activate | 查看 Free 或 Pro 状态,以及升级方式 |
Free 与 Pro
| Free | Pro | |
|---|---|---|
| 未结变更单(草稿和已发送) | 5 | 无限 |
| 每张变更单的明细数 | 200 | 200 |
| 提出变更单、添加明细、推进状态、查看、列出、删除 | 是 | 是 |
| 合同当前金额 | 是 | 是 |
| 变更单文档 | 否 | 是 |
| 可直接用于发票的变更额载荷,支持两种单位尺度 | 否 | 是 |
数量上限只统计未结变更单,也就是客户尚未回复的单据,而不是你曾经提出过的所有单据。批准、拒绝或作废一张变更单都会释放名额;使用 change_order_delete 删除没有明细的草稿也会释放名额。这些操作在所有套餐中都免费,因为如果只有 Pro 密钥才能回头,那就不算真正能回头。
升级到 Pro:https://mcp.zovo.one/buy/change-order(一次性支付 $19,终身使用);或以 $39 获取所有服务:https://mcp.zovo.one/buy/bundle
状态机
draft 到 sent;sent 到 approved 或 rejected;draft 或 sent 到 void。
approved、rejected 和 void 都是最终状态。草稿不能直接获批:批准是
客户对已发送内容的答复。只有变更订单处于草稿状态时才能添加明细;已发送的订单
若需要增加明细,就会作废并重新创建,这样客户的批准始终对应他们收到的内容。
每个步骤都有自己的日期,早于上一步日期的步骤会被拒绝。
款项来源
此服务不自行进行任何计算。computeTotals、currencyDecimals、
formatMoney 和 roundHalfUp 从 @theluckystrike/mcp-invoice/lib 导入,
损坏存储的隔离处理来自 @theluckystrike/mcp-timezone/lib,感知时区的
“今天”来自 @theluckystrike/mcp-quotes/lib。VAT 税率、货币和企业名称来自共享
企业资料,该资料由发票服务中的 business_set 写入。此服务只会在自己的目录
中写入数据,不会打开任何同级服务的存储。
经过验证的洞见
变更后的明细是两项,而不是一项,因为只显示净额的明细无法让客户核对。 一项
明细从 3 x EUR 450.00 变为 5 x EUR 420.00,价值增加了 +EUR 750.00。看似简单的
做法是生成一项数量为 1、单价为 EUR 750.00 的明细,但客户无法根据他们签署的
变更订单中的任何内容重新算出这个数字。此服务生成的内容包含冲销项 -3 x EUR
450.00,以及修改后的明细 5 x EUR 420.00;每项都可以用计算器核对,而且对两项
运行 computeTotals 得出的结果仍是 +EUR 750.00,因为发票服务的 roundHalfUp
对正负数的处理是对称的。同样的规则也会将移除明细表示为负数量,并使用该明细
记录时的单价,而 invoice_create 接受这种表示方式。单元测试会对返回的内容重新
运行发票服务自己的 computeTotals,并断言四个明细值和三个总计;随后将
quote_create 的明细传入同一个计算引擎,假设其 MINOR 数值是 MAJOR 数值,并
断言净额恰好为 100 倍。这样,哪天有人“简化”内容,只保留一项净额明细,或在
两种数值尺度之间移动字段时,构建就会报错,而不是让客户发现问题。
隐私
所有数据都保留在你的设备上,位于 ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/change-order/。
不会向任何地方发送数据。无需账户,也无需 API 密钥。许可证密钥会离线验证。
此服务会读取一个不归其所有的文件,即共享企业资料,并且只会写入自己的存储。
由 theluckystrike 构建。https://github.com/theluckystrike
将这些文档用作 MCP 服务
任何 MCP 客户端(Claude、Cursor、Windsurf、VS Code)都可以通过 GitMCP 直接读取此仓库的文档,无需安装:
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。