mcpField
C
catalogue

catalogue

远程服务
mcp.zovo.one商业与营销21 天前更新

关于 catalogue

catalogue 是一款 MCP 服务,用于维护产品价格和人工费率,面向制作报价与发票的团队。它会按日期将价格转换为两种服务器所需的明细格式;遇到未知代码不会猜价,也不会改写历史价格。

主要功能

  1. 01按生效日期维护 SKU 价格
  2. 02按角色设置小时费率
  3. 03为发票和报价解析明细
  4. 04以文本或 PDF 查看价目表
  5. 05报告目录价格覆盖情况

适用场景

  1. 01准备价格准确的报价明细
  2. 02根据目录 SKU 生成发票项目
  3. 03查询过去日期适用的价格
  4. 04检查各币种缺失的价格

MCP 相关

向 MCP 客户端提供目录、费率卡、明细解析和价目表工具。`lines_resolve` 会返回符合 `invoice_create` 和 `quote_create` 格式的明细。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.zovo.one/mcp/catalogue
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://mcp.zovo.one/mcp/catalogue需要授权
安装包
mcpbcatalogue.mcpb0.22.5

工具

12
参数类型必填说明
skustring是代码,例如 WEB-AUDIT。使用大写字母,不含空格。发票行将归入此代码
namestring是显示在客户单据上的项目名称,例如 Website audit
notestring否
tierstring否价格层级,例如 trade 或 list。默认值为 standard。第二个价格层级属于 Pro 版
unitstring否计量单位,例如 each、hour、month、1000 words。默认值为 each。首次设置时必填
currencystring否此价格使用的 ISO 代码。默认采用共享业务资料中的货币
vat_ratenumber否此产品的 VAT 百分比;在已解析的行上覆盖共享资料中的默认值
valid_fromstring否此价格生效的第一天,格式为 YYYY-MM-DD。默认值为今天
price_minorinteger是单个商品的价格,以整数小单位表示。45000 表示 EUR 450.00。不得使用小数
duplicate_okboolean否即使已有其他代码对应相同产品且价格相同,也添加此项。默认值为 false

详细介绍

mcp-catalogue

位于官方 MCP Registry(io.github.theluckystrike/catalogue)。 一份价目表和一份费率表,放在发票和报价单都能读取的地方。 为产品指定代码、名称、单位和以最小货币单位表示的价格,以及价格生效日期。为角色指定小时费率,方式相同。然后将客户购买的项目列表交给目录,它就会返回已定价的明细:数量、描述、单价和 VAT 税率,参数结构与 invoice_create 和 quote_create 接受的完全一致。

不凭空编造,也不重复存储。一个 SKU 保存其价格行,每行都有生效日期;价格会在调用时按日期计算,因此 7 月涨价不会改写 6 月工作的报价。遇到未知代码时,系统会拒绝并指出该代码,绝不会猜测价格。

@theluckystrike/mcp-catalogue 的 npm 发布尚未完成,因此今天运行 npx -y @theluckystrike/mcp-catalogue 会返回 404。在此之前,可使用 .mcpb 一键安装包,或通过克隆并构建来运行。

安装

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "catalogue": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-catalogue"]
    }
  }
}
Claude Code
claude mcp add catalogue -- npx -y @theluckystrike/mcp-catalogue
Cursor

~/.cursor/mcp.json(全局)或 .cursor/mcp.json(项目),使用与 Claude Desktop 相同的配置项。

工具

工具功能
sku_set添加目录条目或重新定价:代码、名称、单位、可选的 VAT 税率,以及适用于一种货币、价格层级和生效日期的最小货币单位价格
sku_get查询某个 SKU 截至指定日期的价格,指出价格来源行及已登记的后续价格
sku_list列出目录及当前生效价格,可按代码前缀、货币和价格层级筛选
sku_delete删除误添加且没有任何依赖项的条目。所有价格层级均可免费使用
rate_set为角色的费率表设置小时费率,并指定生效日期;也可选择关联 SKU
rate_get查询某个角色截至指定日期的小时费率,或查看所有费率表
lines_resolve为 SKU 和角色明细列表定价,生成可直接用于 invoice_create 和 quote_create 的条目
price_list_text以纯文本显示价目表:当前生效价格、生效日期,然后是人工费率
price_list_pdf按货币和价格层级生成 A4 PDF 价目表
catalogue_report查看 SKU、当前生效的价格行、已被后续行替代的价格行,以及默认货币中没有价格的条目
license_status / license_activate查看 Free 或 Pro 许可,以及升级方式

Free 与 Pro

FreePro
目录中的 SKU 数量25不限
每个 SKU 的价格行数100100
费率表不限不限
设置、定价、列出、解析明细是是
价目表(文本)是是
删除未使用的 SKU是是
standard 以外的价格层级否是
价目表(PDF)否是
目录报告否是

获取 Pro:https://mcp.zovo.one/buy/catalogue(此服务一次性支付 $19,全部服务一次性支付 $39,终身使用)。密钥会在本地离线验证;不会向任何地方发送数据。

价格的来源

价格行是 (currency, tier, valid_from, amount)。对于指定货币和价格层级,某个日期的价格是 valid_from 不晚于该日期的最新一行。在已存在的键上设置价格行会替换原有行,因此不会有两行共享同一个键,“当天的价格”也绝非掷硬币决定。若指定日期早于所有价格行,则没有价格并会被拒绝;尚未生效的价格不算价格。

此处不会进行货币换算。若在 PLN 标题下显示 EUR 价格,就等于编造数字。因此,对于所请求货币中没有价格的 SKU,系统会将其列为无价格,并由 catalogue_report 统计。

经过验证的洞察

本目录接入的两个服务使用不同的计价单位表示相同的价格,差距正好是 100 倍。 invoice_create 的项目使用以主要货币单位表示的 unit_price(“每单位的价格,以主要货币单位表示,例如 90 表示 90 EUR”,servers/invoice/src/index.ts);quote_create 的项目使用以次要货币单位表示的 unit_price_minor(“9000 = 90.00 EUR,90 = JPY 90。不能使用小数”,servers/quotes/src/index.ts)。两个字段都叫单位价格,都接受普通数字,而且两个工具都无法判断传入的数字是否按另一个工具的单位换算过:将 45000 作为 unit_price 传入,是一条有效的发票项目,金额为 EUR 45,000.00。

在 test/unit.test.mjs 中的实际案例中,正确的负载合计为 EUR 2,613.63;将相同项目的报价服务字段传入发票服务的引擎,合计为 EUR 261,363.00,测试套件断言这恰好是 100 倍。对于 KWD 这类 3 位小数的货币,差距则是 1000 倍。因此,本目录以次要货币单位存储价格,因为这是唯一无损的形式,并在一次调用中自行构建两个负载,同时标明各自的单位。这就是 lines_resolve 返回两个负载,而不是返回一个由调用方重新调整的“价格”的全部原因。

除此之外,每个存储的价格都是次要货币单位的整数,因此 invoice_create 自己的 computeTotals 会将主要货币单位形式直接舍入回原来的整数。解析结果中的 rounding_drift_minor 按设计始终为零,测试套件也会对此进行断言;这就是“发票显示的金额与价目表一致”的可机器验证形式。

隐私

所有数据都保存在本地:${XDG_DATA_HOME:-~/.local/share}/mcp-servers/catalogue/。任何工具都不会进行网络调用。此服务唯一会访问该目录之外的文件是共享业务资料;它以只读方式读取默认货币、默认 VAT 税率以及价目表顶部的名称。它不会创建发票或报价。

由 theluckystrike 构建。

将这些文档用作 MCP 服务

任何 MCP 客户端(Claude、Cursor、Windsurf、VS Code)都可以通过 GitMCP 直接读取此仓库的文档,无需安装:

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。