mcpField
T
TD SYNNEX MCP

TD SYNNEX MCP

本地服务
github.com/servosity商业与营销64今天更新

关于 TD SYNNEX MCP

TD SYNNEX MCP 是面向 MSP 的 StreamOne ION API MCP 服务及本地许可账本工具,可配合多种 Agent 使用。它将数据同步到 SQLite 镜像,支持跨客户汇总;HTTP 模式在修复前应避免使用。

主要功能

  1. 01同步客户、订阅和订单
  2. 02本地 SQLite 许可账本
  3. 03续订与订阅变更查询
  4. 04按客户或 SKU 分析利润
  5. 05跨分销商及账单席位核对
  6. 06订单状态查询与订阅预览

适用场景

  1. 01查找近期续订且未启用自动续订的订阅
  2. 02识别低于成本或低于标价的销售
  3. 03核对 TD SYNNEX、Pax8 与 PSA 席位
  4. 04检查受阻订单并预览订阅数量变更

MCP 相关

MCP 服务向兼容客户端提供 StreamOne ION 相关工具,并可读取本地同步数据。README 建议使用默认 stdio 传输;当前版本的 HTTP 模式因缺少请求大小和时间限制而暂停使用。

配置

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

暂未收录安装方式

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

代码仓库
安装包
mcpbtd-synnex-mcp.mcpb0.1.2

工具

还没有获取到工具列表

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

详细介绍

TD SYNNEX + AI - 适用于 ChatGPT、Claude、GitHub Copilot、Microsoft 365 Copilot、Gemini,以及任何支持 MCP 的 Agent

非官方。由社区构建的 Claude Code Skill 和 TD SYNNEX API 的 MCP 服务。与 TD SYNNEX Corporation 无关联,未获其认可或赞助。

TD SYNNEX StreamOne ION 演示 - 动态预览

▶ 观看 30 秒演示 - 演示数据为模拟数据;展示的每条命令在实际 CLI 中都存在。

所有 StreamOne ION 经销商 API,外加一本本地许可证台账,可用于续约、利润率计算和跨分销商对账。兼容你已经在使用的 AI - ChatGPT(Plus/Pro+,在此连接器重新发布前暂停使用;参见 mcp-install.md)、Claude Desktop、Codex、Claude Code、Claude Cowork 和 GitHub Copilot - 还可通过远程方式使用 Microsoft 365 Copilot / Copilot Studio 和 Google Gemini。免费、开源,可在你的笔记本电脑上运行。专为 MSP 所有者打造。无需编写代码。

适用于你的 Agent

安全提示(在此连接器重新发布前)。 请勿运行 HTTP 模式 (--transport http),即使是在 localhost 上也不行。此构建会检查令牌,但 早于修复版,因此尚未设置请求大小和时间限制。MCP 工具 也可以使用你的凭据进行更改。请使用默认的 stdio 传输。如果 你为远程 Agent 设置了隧道,请将其关闭。修复版即将推出。

MSP 所有者实际使用的六种 Agent(可自行安装,现已可用):

你的 AI Agent如何安装 TD SYNNEX skill
Claude Desktop运行安装程序,然后前往 Settings > Extensions 注册 td-synnex-mcp(无需编辑 JSON)。
ChatGPT(付费套餐)在此连接器重新发布前暂停使用:ChatGPT 需要 HTTP 模式,而此构建的该模式虽然会检查令牌,但尚未设置请求大小或时间限制。请参阅 mcp-install.md 中的安全提示。
Codex CLI粘贴下方的安装提示词。
Claude Code粘贴下方的安装提示词。
Claude Cowork粘贴下方的安装提示词。
GitHub Copilot(VS Code)运行安装程序,在 servers 键下将 td-synnex-mcp 添加到 mcp.json,然后选择 Agent 模式。

ChatGPT 需要远程 HTTPS 服务,这意味着需要使用此连接器的 HTTP 模式;在连接器重新发布前,该模式暂停使用:此构建的该模式虽然会检查令牌,但尚未设置请求大小或时间限制。请参阅 mcp-install.md 中的安全提示。

同样适用于 Microsoft 和 Google 技术栈

安装量很大,但需要如实提醒:这属于远程/企业方案,并非你刚安装的本地二进制文件。

Agent所需条件
Microsoft 365 Copilot / Copilot Studio暂停使用,直到重新发布此连接器:Copilot Studio 需要使用 HTTP 模式,而此版本的该模式会检查令牌,但尚无请求大小或时间限制。请参阅 mcp-install.md 中的安全说明。
Google GeminiGemini CLI 在本地运行,与 Claude Code 相同。Gemini 应用在远程运行,需要使用与 ChatGPT 相同的暂停 HTTP 模式。请参阅 mcp-install.md。

原生支持 Skill 的 Agent(也已涵盖): Hermes 和 OpenClaw 可直接读取此 Skill 的 SKILL.md,并且支持 MCP——请参阅下文的安装部分。Cursor、Windsurf、Cline、Continue.dev 和 Zed 也可通过 MCP 使用。各工具的完整接入说明:docs/which-agent.md。

要在多个 Agent 中安装? 只需一条命令,即可在所有 51 个以上受支持的 Agent 中安装:npx skills add Servosity/msp-skills@latest(需要 Node.js,然后运行每个 Skill 的安装程序来安装 CLI/MCP 二进制文件)。请参阅 docs/which-agent.md。

60 秒内完成安装

Claude Desktop 最快安装方式——一键安装 .mcpb

下载 TD SYNNEX MCP (.mcpb)——然后打开 Claude Desktop > Settings > Extensions 并选择该文件。一键完成,无需 JSON。ION 需要先执行一个 shell 步骤:安装 CLI(下方路径 B),并运行一次 td-synnex-cli auth mint --refresh-token-stdin(请参阅身份验证);扩展会读取它保存的令牌。(浏览 releases 页面查看所有 TD SYNNEX 版本。)

更喜欢 Claude Code 插件?添加一次市场,然后安装——立即可用,无需列出目录:

/plugin marketplace add Servosity/msp-skills
/plugin install td-synnex@msp-skills
路径 A——向 AI Agent 粘贴一条提示词(推荐)

将以下内容复制到 Claude Code、Codex CLI 或 Claude Cowork 中:

在此 Agent 工作区中,从 Servosity/msp-skills 安装 TD SYNNEX Skill 和 MCP 服务。如果此工作区使用 POSIX shell(macOS、Linux、WSL 或 Bash),请运行 bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/td-synnex/install.sh)。如果使用 Windows PowerShell,请运行 iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/td-synnex/install.ps1 | iex。然后按照 README 完成身份验证,并运行 td-synnex-cli --help 进行探索。

任何能运行 shell 的 Agent 都可以使用同一条提示词。

路径 B——自行运行安装程序

Windows(PowerShell):

iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/td-synnex/install.ps1 | iex

macOS / Linux:

bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/td-synnex/install.sh)

安装程序会将 td-synnex-cli(CLI)和 td-synnex-mcp(MCP 服务)放入用户的 bin 路径。Claude Code、Codex 和 Cowork 会通过此目录中的 SKILL.md 查找 Skill。

验证:

td-synnex-cli --version
升级到最新版本

安装程序始终会获取当前版本——重新运行即可升级:

macOS / Linux:

bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/td-synnex/install.sh)

Windows(PowerShell):

iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/td-synnex/install.ps1 | iex

Claude Desktop .mcpb 用户:下载最新的 .mcpb(见本节顶部),并在 Settings > Extensions 中重新选择该文件。Claude Code 插件用户:/plugin update td-synnex@msp-skills。

添加到 Claude Desktop、GitHub Copilot、Gemini CLI、Microsoft 365 Copilot 或其他 MCP 客户端

安装程序运行后,请参阅 mcp-install.md 和 docs/which-agent.md,了解各 Agent 的接入方式——每个 Agent 都有单独的章节,其中包括 GitHub Copilot 的 servers 键,以及远程 Microsoft 365 Copilot / Copilot Studio 接入方式。Claude Desktop 的“Settings > Extensions”面板是最简单的接入方式;mcp-install.md 中记录了 MCP 配置块(适合偏好编辑 JSON 的用户)。

为 Hermes 安装

在 Hermes CLI 中:

hermes skills install servosity/msp-skills/skills/td-synnex --force

在 Hermes 聊天会话中:

/skills install servosity/msp-skills/skills/td-synnex --force

Hermes 原生支持 MCP,因此也可以直接使用 td-synnex-mcp 服务——安装方式相同,环境变量也相同。

为 OpenClaw 安装

告诉你的 OpenClaw Agent(复制以下内容):

从 https://github.com/servosity/msp-skills/tree/main/skills/td-synnex 安装 td-synnex 技能。该技能会通过 openclaw: frontmatter 块定义如何安装所需的 CLI(td-synnex-cli)。

OpenClaw 目前尚未普遍开放;frontmatter 接入配置已预先提供,并会在 OpenClaw 启动后立即生效。

身份验证

StreamOne ION 使用 OAuth 刷新令牌让你登录。在 ION 门户中打开 Settings > Users > Edit > OAuth credentials > Request New Credentials,然后复制刷新令牌。接着设置 ION 账户 ID,并通过标准输入将令牌传给 auth mint,避免令牌留在 shell 历史记录中:

macOS / Linux:

export TD_SYNNEX_ACCOUNT_ID=<your ION account ID>   # also add this line to your shell profile (~/.zshrc or ~/.bashrc)
pbpaste | td-synnex-cli auth mint --refresh-token-stdin   # Linux: xclip -o -selection clipboard | td-synnex-cli auth mint --refresh-token-stdin
td-synnex-cli auth check

Windows(PowerShell):

setx TD_SYNNEX_ACCOUNT_ID "<your ION account ID>"   # persists for new windows
$env:TD_SYNNEX_ACCOUNT_ID = "<your ION account ID>"  # this window
Get-Clipboard | td-synnex-cli auth mint --refresh-token-stdin
td-synnex-cli auth check

请永久设置 TD_SYNNEX_ACCOUNT_ID:本地存储以此为键;如果未设置,每个新的 2 小时访问令牌都会对应一个空存储。

ION 刷新令牌只能使用 一次,有效期为 32 天;访问令牌有效期为 2 小时。auth mint 会交换令牌,在打印任何内容之前,将新的访问令牌和新的刷新令牌保存到私有凭据文件中;除非传入 --print-access-token,否则不会打印令牌。可通过 cron 或 Task Scheduler 运行 td-synnex-cli auth mint --if-expiring 15m,以保持令牌有效。auth check 会向 ION 查询两个令牌的剩余有效时间。请勿将刷新令牌交给 auth set-token,该命令存储的是访问令牌。

然后将你的产品目录拉取到本地存储,并对照门户确认数据:

td-synnex-cli sync --resources customers,subscriptions,orders
td-synnex-cli doctor

此技能的功能

MSP 经常询问的问题命令
未来 30 天内有哪些订阅将续订,但已关闭自动续订?td-synnex-cli subscriptions renewals --within 30d --auto-renew off
哪些客户的销售价格低于成本或低于目录价?td-synnex-cli margin --by customer
哪些 SKU 在所有客户中的利润率最低?td-synnex-cli margin --by sku
对每个客户和 SKU,我在 TD SYNNEX 与 Pax8 的席位数量是否一致?td-synnex-cli position trueup --with pax8-positions.csv --map company=customer_name --map sku=sku_key --map quantity=seats
我是否为从 TD SYNNEX 付费购买的每个席位都收了费?td-synnex-cli position trueup --billed psa-agreements.csv --map billed_qty=seats
本周哪些订单仍处于挂起状态或已失败?td-synnex-cli orders stuck --older-than 24h --since 7d
过去一周有哪些席位、续订和状态变更通过 ION 生效?td-synnex-cli subscriptions changes --since 7d
某个客户持有哪些订阅、费用是多少,还有哪些事项未完成?td-synnex-cli customers show "Contoso"
将此订阅改为 12 个席位会向 ION 提交什么内容?td-synnex-cli subscriptions set "10505" "108536" "1608355" --seats 12

subscriptions set 只会预览订单;添加 --confirm 才会下单。许可证账本命令(renewals、changes、margin、position、orders stuck、customers show)会读取本地存储,因此请先运行 sync。position trueup --with 和 --billed 会读取磁盘上的导出文件,因此应在 Agent 可使用 shell 的环境中(Claude Code、Codex、Cowork)或终端中运行;通过 MCP(Claude Desktop、ChatGPT、Copilot)使用时,工具会拒绝文件路径,并且只会列出某个客户在多个 TD SYNNEX 订阅中持有的 SKU。

完整命令参考:guide.md。关于 AI Agent 操作约定(--agent、--dry-run、修改前何时需要确认),请参阅 AGENTS.md。

有何不同

大多数 StreamOne ION 集成都是 PSA 计费连接器或 API 封装,每个问题都会发起一次实时调用。这对于单条记录来说没问题。但当问题规模扩大时就会失效,例如你想知道“我的 60 个客户中,哪些客户的 NCE 条款将在本月续订且已关闭自动续订,以及每个客户能带来多少收益”。

此技能会将 TD SYNNEX 同步到带有全文搜索功能的本地 SQLite 镜像中。汇总类问题只需执行一次本地 SQL 联接:响应迅速、可离线使用,AI 看到的是答案,而不是原始数据。subscriptions renewals、margin 和 position trueup 等组合命令会跨客户、订阅、订单以及 Pax8、Sherweb 或 PSA 导出数据进行联接——这是无状态 API 封装无法做到的。此技能与 ION 门户和 TD SYNNEX 的 PSA 连接器互为补充,而非取而代之:下单、配置和计费同步仍由它们负责。

解决的痛点

Microsoft New Commerce 条款只允许你在期限开始或续订后的前 7 天内减少席位或取消。错过续订时间,你就得再承担一整年的席位费用,而客户可能已经不愿意为这些席位付费。面向 MSP 的 tminus365 博客文章(我如何自动发送 Microsoft NCE 订阅续订通知,2022 年)介绍了作者如何基于分销商 API 构建 Power Automate 工作流,只为在每次续订前创建工单。再加上第二家分销商,你要付费的席位数量就分散在两个门户中,外加你用于开具账单的 PSA 协议。

  • 在窗口关闭前处理续订: td-synnex-cli subscriptions renewals --within 30d --auto-renew off 会列出所有即将续订的期限,按时间从近到远排序。
  • 亏本销售给客户: td-synnex-cli margin --by customer 会按毛利率从低到高排列客户,并标记负毛利、零毛利和低于目录价的记录。
  • 付费但从未计费的席位: td-synnex-cli position trueup --billed psa-agreements.csv 会将 ION 席位与 PSA 导出文件进行比较,标记每项不匹配记录(billed_mismatch),以及完全没有 PSA 记录计费的已付费席位(not_billed;试用席位会标记为 trial)。
  • 无人注意到的订单: td-synnex-cli orders stuck 会列出超过一天仍未完成的订单,以及失败的订单。

更长的说明请参阅 pain-point.md。

常见问题

这适用于 ChatGPT 吗?

这个版本不适用。ChatGPT(Plus、Pro、Team、Business、Enterprise 和 Education 套餐;Free 目前尚未开放 Developer Mode)只能通过 HTTPS 连接到远程 MCP 服务,这意味着需要以 HTTP 模式运行 TD SYNNEX MCP 服务。此版本的 HTTP 模式虽然会检查令牌,但尚未限制请求大小或处理时间,因此在连接器重新发布之前,请勿运行该模式,也不要将其置于隧道之后;mcp-install.md 中的安全说明解释了原因。在此之前,请使用 Claude Desktop、Claude Code 或 Codex。

这适用于 Codex、Cursor、Windsurf、Cline、Copilot 或 Gemini 吗?

适用——它们都支持 MCP。跨工具安装命令见上方的对照表,深入介绍请参阅 docs/which-agent.md。

我需要懂编程吗?

不需要。推荐的安装方式是在 Claude Code 或 Codex 中粘贴一句话——你的 Agent 会读取 SKILL.md 并完成安装。备用方案是每种操作系统对应一个单行安装命令(bash 或 PowerShell)。这两种方式都不需要编写代码。你只需输入一次 TD SYNNEX 凭据。

我的 TD SYNNEX 数据安全吗?

你的数据始终保存在你的设备上。CLI 和 MCP 服务都是本地二进制文件。SQLite 镜像位于你用户帐户下的目录中。AI Agent 只能看到 CLI 返回的内容——通常是查询结果,而不是原始批量数据。你的 ION 令牌保存在你用户帐户下的私有凭据文件中(如果你愿意,也可以保存在 TD_SYNNEX_ACCESS_TOKEN 中);它们不会被打包进此仓库,也不会由 MSP Skills 传输到任何地方。ION 在客户、订单和配置数据中返回的密码(客户用户密码、Microsoft 租户管理员凭据)会在打印、缓存、同步或交给 Agent 之前,从每个响应中清除。如果自由文本(备注、描述、报告 CSV)中的任何位置提到了 password、PIN、secret、token 或 API key 等凭据词,则会整段隐藏;因此,仅仅提到这些词的备注或 reports get-data-csv 结果(例如一条名为“Duo Hardware Token”的记录)会以 [redacted] 返回;reports get-data 会逐个单元格返回同一份报告,而名称、ID 和地址字段使用更严格的规则,因此客户名称、目录名称和 SKU 不会被隐藏。如果在备注中输入密码,但附近没有凭据词,就无法识别出来。

它如何登录 StreamOne ION?

使用 ION OAuth 刷新令牌,这需要 ION 经销商账户。在门户中依次进入 Settings > Users > Edit > OAuth credentials > Request New Credentials 来申请,并将其传入 td-synnex-cli auth mint --refresh-token-stdin。ION 刷新令牌只能使用一次,因此 auth mint 会先保存轮换后的令牌,然后才输出任何内容;如果保存失败,它会将新的刷新令牌写入私有救援文件,避免你无法登录。请参阅身份验证。

这会触及我的 ION API 限额吗?

subscriptions renewals、subscriptions changes、margin、position export、position trueup、orders stuck 和 customers show 都从本地存储读取结果。当存储数据过期时,它们会先刷新所读取的每种资源的第一页(约 100 行);因此,如果管理的客户较多,请先运行 td-synnex-cli sync 再查询整个客户群;添加 --data-source local(或设置 TD_SYNNEX_NO_AUTO_REFRESH=1),即可让这些命令完全不调用 API。实时调用会遵循 --rate-limit 限流设置。

它能更改订阅或下单吗?

可以,因此安全模型非常重要。subscriptions set 会预览 UPDATE 顺序,并且只有在使用 --confirm 时才会下单。其他写入操作(carts checkout、customer-orders create-order 和 cancel-order、customers create 和 update)会在运行时立即发送;请先使用 --dry-run 预览。设置 TD_SYNNEX_MCP_READ_ONLY=1,即可将 MCP 服务限制为只读。

毛利数字准确吗?

目前尚未验证。请参阅已知差距。

它能取代 ION 门户吗?

不能。下单、配置和开票仍在 StreamOne ION 中进行。此技能可通过终端或 Agent 回答涉及所有客户的问题。

费用是多少?

免费,采用 Apache-2.0 许可。你只需为所使用的 AI Agent(Claude、ChatGPT、Codex 等)付费,费用由你的 AI 服务提供商收取,而非我们收取。

安全模型

层级示例建议的 Agent 策略
读取subscriptions renewals、subscriptions changes、margin、position export、position trueup、orders stuck、customers show、所有 list 和 get、pricing、cloud-profiles、reports get-data、sync、auth check允许
写入(常规)customers create / update、carts create / update、cart-items create / update、reports save(这些操作会立即发送;--dry-run 是可选的预览方式)使用 --dry-run 预览,然后进行审核后的写入
订单和支出subscriptions set(席位数、续订设置、名称;只有使用 --confirm 时才会下单)、carts checkout、customer-orders create-order、cloud-providers provision-customer / link-customer、products enable / disable、programs batch-update-product仅限人工参与
破坏性操作 / 凭据subscriptions set --status suspended 或 deleted、subscriptions set --renewal cancel_at_renewal(或其别名 auto-off)、customer-orders cancel-order、carts delete、cart-items delete、reports delete、auth mint、auth set-token、auth logout仅限人工参与,并需明确确认

TD_SYNNEX_MCP_READ_ONLY=1 会从 MCP 服务中移除所有可更改 ION 的工具;它还会移除 sync 和记录学习内容的工具。保留的工具仍会写入本地状态(读取操作刷新数据时写入同步存储、命令日志和回忆统计信息)。

最有力的控制措施是你为其签发 OAuth 凭据的 ION 用户——CLI 只能执行该用户获准执行的操作。完整详情(包括如何限制权限)请参阅 governance.md。

已知差距

  • 尚未在实时 StreamOne ION 租户上运行过。 所有命令都依据 TD SYNNEX 发布的 v3 API 文档、模拟 ION 服务和未认证路由探测进行检查,并未使用真实账户数据。请先运行 td-synnex-cli doctor 和小规模的 td-synnex-cli sync --resources customers,再将首批结果与 ION 门户进行比较。
  • 利润率计算假设 ION 报告的价格是每份订阅的价格,而非每个席位的价格。 margin、subscriptions renewals、position export 和 customers show 使用 ION 报告的每份订阅价格和成本(按月计费时,使用最近一个已计费月份的数据),不会乘以席位数。如果 ION 报告的是每席位价格,多席位总额就会偏低,position trueup 的 unit_cost_by_source(成本除以席位数)也会按相同倍数偏低。在依赖这些总额前,请先将一份多席位订阅与 ION 门户进行比较。对于 ION 未提供(或 CLI 无法读取,但会保留该记录;不过,如果订阅或订单的状态、试用标记或客户 ID 无法读取,则会发出警告并跳过;subscriptions set 也会拒绝基于无法读取其 ID、所有者、状态、标记或日期的订阅创建订单)的价格、成本、席位数、订单数量、订单总额或订单期限,或 CLI 无法识别的计费周期(绝不会以承诺期限代替),系统会报告为未知(price_known、cost_known、seats_known 或 *_incomplete 标记),绝不会记为 0,并会从总额和利润率中排除。如果年度订阅未提供价格和成本,系统会汇总过去 12 个已计费月份的数据,因此,在该时间范围内从月付转为年付的订阅会同时计入两种计费方式;basis 会列明所用月份。
  • 在 ION 外部进行的更改不可见。 subscriptions changes 会解码 ION 订单,因此,直接在 Microsoft Partner Center 中进行的席位变更不会显示。
  • 不会显示生成的密码。 customers create 和 cloud-providers provision-customer 会清空 ION 返回的一次性密码以及 ION 响应中的所有其他凭据。请在 ION 门户或 Microsoft 365 管理中心设置或重置该密码。
  • position export 中的租户 ID 和域名为空。 ION 订阅不包含这些信息,因此,除非其他文件提供了相关信息,否则 position trueup 会按客户名称进行匹配。

状态

Beta 版。已依据 TD SYNNEX 发布的 v3 API 文档和模拟 ION 服务进行检查,尚未在实时租户上验证(请参阅已知差距)。我们会在每周 Build Sessions 中,与在自有生产租户上实时运行连接器的 MSP 一起验证连接器。请通过 compoundingteams.com/build-sessions 回复确认出席。


标准。 符合开放的 Agent Skills 规范(Anthropic,2025 年 12 月;支持 40 多种 Agent)。兼容 MCP,可与任何支持 MCP 的 Agent 配合使用,包括 Hermes。已做好 OpenClaw 使用准备(frontmatter 已预先配置,等待 OpenClaw 发布)。

由 Servosity 维护。采用 Apache-2.0 许可。使用 CLI Printing Press 构建。最后更新:2026-10-16。

评论

支持 Markdown

第一次接触 MCP?

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

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