mcpField
V
vendor-statement-open-items

vendor-statement-open-items

本地服务
mcp.zovo.one金融数据21 天前更新

关于 vendor-statement-open-items

用于财务团队的本地 MCP 服务,将供应商对账单与应付账款未结项目清单逐行比较。保留原始记录,并标出缺失项、金额或日期差异及无法安全配对的重复引用。

主要功能

  1. 01比较两侧未结项目
  2. 02标记缺失记录与差异
  3. 03识别重复引用歧义
  4. 04保留并分页查看原始证据
  5. 05导出逐条记录 CSV
  6. 06本地保存与管理报告

适用场景

  1. 01核对供应商对账单与应付账款导出
  2. 02调查金额或日期不一致
  3. 03审查重复发票引用
  4. 04导出记录用于后续检查

MCP 相关

作为本地 stdio MCP 服务,向 MCP 客户端提供对账、报告查看、分页、删除、CSV 导出及许可证管理工具。它不连接 ERP,也不读取 PDF 或批准付款。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbsupplier-statement-check.mcpb0.25.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

供应商对账单核对 MCP 服务

将收到的供应商对账单与应付账款未结项目导出数据进行比较。 找出仅在一方出现的发票或贷项通知单、未结金额或日期不一致的项目,以及无法安全配对的重复引用。本地 MCP 服务会保留每一行原始数据,并说明每项发现。它会检查两份提供的未结项目列表;不会核对期初/期末余额、匹配 付款、连接 ERP、读取 PDF 或批准付款。

由 theluckystrike 构建。MIT。支持邮箱:[email protected]。

安装前试用

在浏览器中运行免费的供应商对账单示例。 使用合成示例查看缺失项目以及金额/日期差异。 浏览器演示与此服务使用相同的比较核心。此本地服务的免费套餐无需账户或 API 密钥。 产品与安装选项。

你的任务从这里开始
将供应商/供货商对账单未结项目与应付账款未结项目导出数据进行比较此服务:supplier_statement_check。
查找所提供的发票历史记录中的重复发票引用供应商发票重复项审核。
根据采购订单和已验收的收货记录核对发票行发票三方匹配。

这些比较需要相关源数据。它们不会检索缺失的单据,也不会授权付款。完整诊断和 CSV 始终免费;付费升级仅会 取消已保存报告数量的限制。

安装

需要 Node.js 18 或更高版本,以及 MCP 客户端。Claude Desktop 可以打开 supplier-statement-check.mcpb v0.25.0 package。 其他客户端可以构建以下源代码。npm 包尚未发布; npx @theluckystrike/mcp-supplier-statement-check 不是安装方式。

git clone https://github.com/theluckystrike/mcp-servers.git
cd mcp-servers
npm install
node scripts/bootstrap-timezone.mjs
npm run build --workspace @theluckystrike/mcp-license
npm run build --workspace @theluckystrike/mcp-supplier-statement-check

这些命令只会构建共享许可证依赖项和此服务。请将下方的 /absolute/path 替换为源代码检出位置。如果 MCP 客户端找不到 node,请使用其可执行文件的完整路径。

Claude Desktop:在 macOS 上合并到 ~/Library/Application Support/Claude/claude_desktop_config.json 的 mcpServers 中,或在 Windows 上合并到 %APPDATA%\Claude\claude_desktop_config.json:

{"mcpServers":{"supplier-statement-check":{"command":"node","args":["/absolute/path/mcp-servers/servers/supplier-statement-check/dist/index.js"]}}}

Claude Code:

claude mcp add supplier-statement-check -- node /absolute/path/mcp-servers/servers/supplier-statement-check/dist/index.js

Cursor:合并到项目中的 .cursor/mcp.json 或 ~/.cursor/mcp.json:

{"mcpServers":{"supplier-statement-check":{"type":"stdio","command":"node","args":["/absolute/path/mcp-servers/servers/supplier-statement-check/dist/index.js"]}}}

VS Code:将条目放在 .vscode/mcp.json 的 servers 下:

{"servers":{"supplier-statement-check":{"type":"stdio","command":"node","args":["/absolute/path/mcp-servers/servers/supplier-statement-check/dist/index.js"]}}}

Windsurf 的旧版 Cascade Agent:在 ~/.codeium/windsurf/mcp_config.json 中使用 Claude Desktop 的 mcpServers 条目。该文件适用于 Cascade;其他 Agent 可以使用不同的配置方式。

Cline:打开 MCP Servers、Configure、Configure MCP Servers,然后添加:

{"mcpServers":{"supplier-statement-check":{"type":"stdio","command":"node","args":["/absolute/path/mcp-servers/servers/supplier-statement-check/dist/index.js"],"disabled":false,"autoApprove":[]}}}

这些都是本地 stdio 配置。此服务没有托管端点或浏览器聊天连接器。重新连接客户端,调用 license_status,然后运行下方的示例。仅发现工具并不能验证比较结果。

工具

工具输入和结果
supplier_statement_checkas_of、statement_records、ledger_records,以及可选的 save:false;完整证据,或带有免费预览 ID 的分页概览。
report_list可选的 offset:0、limit:20(最大值为 100);已保存的 UUID 和计数摘要。
report_get已保存的 id;经过验证的源行和重新计算的比较结果。
report_page已保存/预览的 id、section、可选的 offset、limit(最大值为 100)和 group_id;所有源证据。
report_delete已保存的 id;删除一份本地报告并释放一个已保存名额。
report_export_csv已保存/预览的 id、可选的 offset、limit(最大值为 2000);每个原始源项目对应一行的 CSV。
license_status无参数;当前离线等级和升级链接。
license_activatekey;验证并保存离线 Pro 许可证。

一项缺失记录和一笔金额不符

使用以下模拟输入调用 supplier_statement_check:

{
  "as_of": "2026-10-26",
  "statement_records": [
    {"record_id":"S1","entity_id":"UK-1","supplier_id":"V-9","currency":"USD","document_type":"invoice","document_reference":"INV-001","document_date":"2026-10-01","outstanding_minor":12500},
    {"record_id":"S2","entity_id":"UK-1","supplier_id":"V-9","currency":"USD","document_type":"invoice","document_reference":"INV-002","document_date":"2026-10-02","outstanding_minor":20000},
    {"record_id":"S3","entity_id":"UK-1","supplier_id":"V-9","currency":"USD","document_type":"credit_note","document_reference":"CR-003","document_date":"2026-10-03","outstanding_minor":5000}
  ],
  "ledger_records": [
    {"record_id":"L1","entity_id":"UK-1","supplier_id":"V-9","currency":"USD","document_type":"invoice","document_reference":"INV-001","document_date":"2026-10-01","outstanding_minor":12500},
    {"record_id":"L2","entity_id":"UK-1","supplier_id":"V-9","currency":"USD","document_type":"invoice","document_reference":"INV-002","document_date":"2026-10-04","outstanding_minor":19000},
    {"record_id":"L4","entity_id":"UK-1","supplier_id":"V-9","currency":"USD","document_type":"invoice","document_reference":"INV-004","document_date":"2026-10-05","outstanding_minor":7000}
  ],
  "save": false
}

结果包含四个组:一组匹配记录、一组同时存在 amount_mismatch 和 date_mismatch 的差异记录、一项仅出现在对账单中的记录,以及一项仅出现在分类账中的记录。 每一行输入记录都会保留。贷项通知单的金额为正数,不会与发票金额相抵。 不会计算余额、损失或可收回金额。 如果你在任一方的精确范围内添加另一条 INV-001,其整个组将变为 ambiguous_reference;该工具不会挑选看似合适的金额组合。

精确的输入约定和比较规则

提供一个真实的 YYYY-MM-DD as_of 日期,以及两个数组,每个数组包含 0–1000 条记录。 至少一侧必须包含一条记录。该日期声明预期的共同快照;工具无法验证导出数据的新鲜度,也不会按日期筛选行。 比较之前,请确保两个列表中的未结项目范围一致。

每条记录都必须包含 record_id、entity_id、supplier_id、三个大写字母组成的 currency、document_type(invoice 或 credit_note)、document_reference、真实的 ISO document_date,以及正的安全整数 outstanding_minor。ID 和引用长度为 1–160 个字符,且不能有首尾空格或控制字符。每侧的 ID 必须唯一;两侧可以使用相同的 ID。未知字段、无效日期、年份 0000、零/负数/小数/不安全金额以及超出上限的数组都会被拒绝。货币格式会经过检查,但不会使用外部货币列表。

金额以货币的最小单位表示:USD 12500 表示 $125.00。贷项通知单使用正的绝对未结金额,且只与其他贷项通知单比较。两侧不必使用共同的供应商名称,但 supplier_id 必须完全一致。 不同实体、供应商、货币和单据类型会分别处理。

联接键为精确的 (entity_id, supplier_id, currency, document_type, document_reference)。前导零、标点、大小写、重音符号、Unicode 形式和形似字符均会影响匹配。不会推断供应商、清理引用、贪心匹配金额、分配付款或转换货币。

分组状态含义
matched两侧各有且仅有一行;键、未结金额和单据日期一致。
only_in_statement一条对账单行找不到键完全匹配的账簿行。
only_in_ledger一条账簿行找不到键完全匹配的对账单行。
discrepancy两侧各有且仅有一行共享同一个键,但金额和/或日期不同;issues 会保留这两类原因。
ambiguous_reference某个键在任一侧重复;保留所有行,不选择配对。

缺失行和不一致可能是导出时间或范围造成的。重复引用也可能是合理的。即使提供的列表完全一致,也不能证明供应商余额正确:两份不完整的导出数据也可能一致。状态 no_discrepancies_in_supplied_open_items 仅表示这一有限结论。 已保存的报告不会成为隐藏的跨调用历史记录;每次都要包含两个列表。

分组和行会以确定性的顺序排序。每条来源行恰好属于一个分组;引擎不会展开所有可能的记录配对。分组会按对账单/账簿侧限定来源 ID,因此两侧相同的 ID 不会覆盖证据。不会发出网络或遥测请求。

免费证据、预览和 CSV

每次检查都会返回 retrieval.report_id。未保存的预览使用 preview:<UUID>,并会在内存中保留 30 分钟,供此进程内最后两次检查使用。第三次检查、重启或过期可能会清除预览;请重新提交免费检查。已保存的 UUID 会持久化到磁盘。预览数据不会写入浏览器或文件系统。

report_page 支持 statement_records、ledger_records、groups 和 group_members。分组页面包含摘要元数据和按侧分类的成员数量。使用 section:"group_members" 和准确的 group_id 读取完整的源成员。持续读取,直到 next_offset 为 null。即使达到已保存报告数量上限,分页和 CSV 仍免费。

响应使用 512 KiB 的转义 MCP 文本信封预算。较大的报告会返回分页概览;为符合该预算,页面包含的行数可能少于请求数量。CSV 每条原始源记录占一行,包含其所属侧、原始字段、分组和原因。类似公式的文本会经过转义;JSON 源值保持不变。导出会返回 CSV 文本,绝不会写入提供的文件名,并在每页重复标题行。合并页面时只保留一个标题行。请依据实际的 returned 和 next_offset 值,而不要假设返回了请求数量的记录。

免费版和 Pro

功能免费版Pro
完整检查、差异原因和原始源行包含,每侧 1000 条记录相同
预览页面和 CSV包含相同
已保存报告数量3无数量上限
已保存数据总存储量64 MiB64 MiB
单文件完整性限制8 MiB8 MiB
输入、响应、文本和预览限制相同的文档所述上限相同

达到免费版上限后,save:true 会返回诊断结果和免费预览,并附带 saved:false、save_error:"free_saved_report_cap" 以及升级链接。删除一份已保存报告即可释放名额。存储失败也会保留诊断结果。

获取 Pro:一次性支付 $19。 全部服务:$39 套装。设置 MCP_LICENSE_KEY 或调用 license_activate;许可证密钥可离线验证。Pro 仅移除已保存报告数量上限,不提供额外的会计数据、准确性保证、ERP 访问权限或安全审批。升级以保存历史记录为目标,这只是一项商业假设,并无已证实的投资回报。

所有数据都保留在本地。报告存储于 ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/supplier-statement-check/。 XDG_DATA_HOME 必须是绝对路径,且其目录祖先必须真实存在。私有 JSON 文件会在跨进程修改锁保护下以原子方式写入。读取时会验证原始输入并重新计算证据,而不是信任经过编辑的结果。激活许可证会写入共享的本地许可证配置。会计数据的访问、保留和备份由你自行管理。

开发

npm run build --workspace @theluckystrike/mcp-supplier-statement-check
npm test --workspace @theluckystrike/mcp-supplier-statement-check

在 monorepo 根目录使用 docker build -f servers/supplier-statement-check/Dockerfile . 构建 Docker 镜像。独立镜像会在生成过程中获得自己的独立 Dockerfile。测试涵盖比较预言机、严格输入、范围/Unicode 隔离、完整源覆盖、歧义、大型免费分页/CSV、安全存储、并发保存上限以及实际 stdio 调用。有签名许可证测试时会使用现有的本地私钥签名器;如果该签名器不存在,则跳过测试。私有签名密钥不会打包,也不是用户所必需的。

评论

支持 Markdown

第一次接触 MCP?

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

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