mcpField
C
Crystallize MCP

Crystallize MCP

本地服务
github.com/HayoDev商业与营销029 周前更新

关于 Crystallize MCP

Crystallize MCP 是面向 AI Agent 的 Crystallize 无头商务 MCP 服务,可读写商品目录、产品、订单、客户及租户配置。它提供变更预览、客户数据脱敏和返回 Crystallize UI 的深层链接。

主要功能

  1. 01读取和搜索商品目录
  2. 02查询产品变体及库存
  3. 03查看形状、订单和客户
  4. 04创建条目并更新组件
  5. 05写入前预览变更
  6. 06客户与订单数据脱敏

适用场景

  1. 01检索商品及其价格库存
  2. 02查询客户订单和租户信息
  3. 03在草稿中创建或修改内容
  4. 04审查变更并在 UI 中发布

MCP 相关

该项目是 MCP 服务,向兼容客户端提供 Crystallize 目录、形状、订单、客户和内容操作工具。写入工具支持 dry-run,并在响应中提供 UI 深层链接。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"hayodev-crystallize": {
"command": "npx",
"args": [
"-y",
"@hayodev/crystallize-mcp"
],
"env": {
"CRYSTALLIZE_TENANT_IDENTIFIER": "<CRYSTALLIZE_TENANT_IDENTIFIER>",
"CRYSTALLIZE_ACCESS_TOKEN_ID": "<CRYSTALLIZE_ACCESS_TOKEN_ID>",
"CRYSTALLIZE_ACCESS_TOKEN_SECRET": "<CRYSTALLIZE_ACCESS_TOKEN_SECRET>",
"CRYSTALLIZE_STATIC_AUTH_TOKEN": "<CRYSTALLIZE_STATIC_AUTH_TOKEN>",
"CRYSTALLIZE_ACCESS_MODE": "<CRYSTALLIZE_ACCESS_MODE>"
}
}
}
}
启动命令npx -y @hayodev/crystallize-mcp
需要配置的环境变量
CRYSTALLIZE_TENANT_IDENTIFIERYour Crystallize tenant identifier (e.g. 'my-store'). Find it in your Crystallize dashboard URL: app.crystallize.com/{tenant}
CRYSTALLIZE_ACCESS_TOKEN_ID密钥Access Token ID for authenticated API access. Create one at Settings > Access Tokens in your Crystallize dashboard. Optional — public catalogue and Discovery API work without auth.
CRYSTALLIZE_ACCESS_TOKEN_SECRET密钥Access Token Secret (paired with Access Token ID).
CRYSTALLIZE_STATIC_AUTH_TOKEN密钥Static auth token (alternative to token ID/secret pair). Read-only.
CRYSTALLIZE_ACCESS_MODEControls which tools are available: 'read' (default, safe), 'write' (can create/update items), 'admin' (full access including webhooks).

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@hayodev/crystallize-mcp0.2.0

工具

还没有获取到工具列表

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

详细介绍

Crystallize MCP

npm version npm downloads license node

面向 Crystallize 无头商务的 MCP 服务。为 AI Agent 提供对目录、产品、形状、订单、客户和租户配置的读写权限,并支持跳转回 Crystallize UI 的深层链接、变更操作的试运行安全机制,以及客户数据的 PII 屏蔽。

可与 Claude Code、Claude Desktop、Cursor、Windsurf、Copilot 及任何兼容 MCP 的客户端配合使用。

开始使用

设置向导

交互式向导可一步完成配置、身份验证令牌、钥匙串存储和 PII 模式的设置:

# Project-level — writes .mcp.json in the current directory (shared with your team)
npx @hayodev/crystallize-mcp --setup

# Global — registers via `claude mcp add` (Claude Code) or writes Claude Desktop config
npx @hayodev/crystallize-mcp --setup --global
手动配置

标准 MCP 配置(适用于任何客户端):

{
  "mcpServers": {
    "crystallize": {
      "command": "npx",
      "args": ["-y", "@hayodev/crystallize-mcp@latest"],
      "env": {
        "CRYSTALLIZE_TENANT_IDENTIFIER": "your-tenant"
      }
    }
  }
}

对于 PIM 工具(形状、订单、客户),请将 CRYSTALLIZE_ACCESS_TOKEN_ID 和 CRYSTALLIZE_ACCESS_TOKEN_SECRET 添加到 env 块中。请参阅身份验证。

Claude Code(CLI)
claude mcp add crystallize \
  -e CRYSTALLIZE_TENANT_IDENTIFIER=your-tenant \
  -e CRYSTALLIZE_ACCESS_TOKEN_ID=your-token-id \
  -e CRYSTALLIZE_ACCESS_TOKEN_SECRET=your-token-secret \
  -- npx -y @hayodev/crystallize-mcp@latest

使用 --scope project 将配置写入 .mcp.json(与团队共享),或使用 --scope user 供所有项目中的个人使用。

Claude Desktop

将标准配置添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows)。

Cursor

将标准配置添加到 Cursor MCP 设置(~/.cursor/mcp.json 或项目级 .cursor/mcp.json)。

VS Code / GitHub Copilot

将标准配置添加到项目根目录下的 .vscode/mcp.json。

{
  "servers": {
    "crystallize": {
      "command": "npx",
      "args": ["-y", "@hayodev/crystallize-mcp@latest"],
      "env": {
        "CRYSTALLIZE_TENANT_IDENTIFIER": "your-tenant",
        "CRYSTALLIZE_ACCESS_TOKEN_ID": "your-token-id",
        "CRYSTALLIZE_ACCESS_TOKEN_SECRET": "your-token-secret"
      }
    }
  }
}
Windsurf

将标准配置添加到 ~/.codeium/windsurf/mcp_config.json。

Gemini CLI

将标准配置添加到 ~/.gemini/settings.json。

JetBrains AI Assistant

将标准配置添加到项目根目录下的 .junie/mcp.json。

Warp

将标准配置添加到 ~/.warp/mcp.json。

Raycast

在 Raycast 中打开“Install MCP Server”并填写:

  • Command:npx
  • Arguments:-y @hayodev/crystallize-mcp@latest
  • Environment:添加 CRYSTALLIZE_TENANT_IDENTIFIER 和令牌变量

也可以在打开命令前复制上方的标准配置 JSON,Raycast 会自动填充表单。

从源码运行(维护者)

--local 标志用于开发 crystallize-mcp 本身。它会写入指向本地构建输出的 .mcp.json——仅可在仓库根目录运行此命令:

git clone https://github.com/HayoDev/crystallize-mcp.git
cd crystallize-mcp
npm install && npm run build
npx . --setup --local   # writes .mcp.json pointing to ./build/

或者将 MCP 客户端直接指向构建后的入口文件:

{
  "mcpServers": {
    "crystallize": {
      "command": "node",
      "args": ["/path/to/crystallize-mcp/build/src/bin/crystallize-mcp.js"],
      "env": {
        "CRYSTALLIZE_TENANT_IDENTIFIER": "your-tenant"
      }
    }
  }
}

工具(16)

目录(4 个工具)
ToolDescription
browse_catalogue按路径遍历条目树
get_item按路径或 ID 获取条目及完整组件数据
search_catalogue在所有条目中进行关键词搜索
get_product_variants列出包含价格和库存信息的变体
发现(3 个工具)
工具描述
list_discovery_shapes列出所有可查询字段的形状
browse_shape使用筛选条件、分页和字段选择浏览某个形状中的项目
get_shape_fields获取特定形状的详细字段信息
形状与租户(3 个工具,需要身份验证)
工具描述
list_shapes列出所有形状及其组件摘要
get_shape获取某个形状的完整组件定义
get_tenant_info获取租户配置和可用语言
订单(2 个工具,需要身份验证)
工具描述
list_orders分页列出某位客户的订单
get_order获取订单完整详情——购物车、付款、客户和总计
客户(2 个工具,需要身份验证)
工具描述
list_customers搜索并分页列出客户
get_customer获取客户完整档案——地址、元数据、外部引用
内容(2 个工具,需要身份验证和写入模式)
工具描述
create_item创建带有组件的新项目(产品、文档或文件夹)
update_component更新单个组件的值——支持通过点号表示法更新嵌套内容块(例如 hero.title)

写入工具

写入工具需要设置 CRYSTALLIZE_ACCESS_MODE=write(或 admin),并使用具有写入权限的令牌。

试运行模式

设置 CRYSTALLIZE_DRY_RUN=true,即可预览变更而不执行。响应会准确显示将要发生的变更——变更载荷、变更前后的值,以及指向该项目的深层链接:

"env": {
  "CRYSTALLIZE_ACCESS_MODE": "write",
  "CRYSTALLIZE_DRY_RUN": "true"
}
示例提示词

创建项目:

“使用 article 形状,在 /blog 下创建一篇标题为 ‘Getting Started’ 的新博客文章”

更新顶层组件:

“找到 /products/summer-collection 中的项目,并将其描述更新为 ‘New summer arrivals’”

更新内容块中的组件:

“获取 /articles/my-post 中的项目,然后将 hero.title 更新为 ‘Updated Headline’,并提供用于查看草稿的深层链接”

附带变更摘要进行更新:

“获取 /articles/guides/my-guide 中的项目,将其 title 组件更新为 ‘New Guide Title’,提供深层链接,并用表格展示内容块中哪些字段发生了变更、哪些保持不变,以及变更前后的值”

Agent 只会更新目标组件的草稿,保留内容块中的所有同级组件,并返回类似以下摘要:

组件状态变更前变更后
title✏️ 已更新Old Guide TitleNew Guide Title
image未变更(现有图片)(现有图片)
description未变更(现有文本)(现有文本)

不会发布任何内容——你可以通过深层链接在 Crystallize 界面中查看变更,并在准备就绪后发布。

身份验证

目录和发现工具无需身份验证,只需设置 CRYSTALLIZE_TENANT_IDENTIFIER。

对于 PIM 工具(类型、租户信息、订单、客户),请在以下位置创建访问令牌: https://app.crystallize.com/{tenant}/en/settings/access-tokens

注意: Crystallize 令牌继承创建者的权限。如需将 Agent 限制为只读访问,请使用具有只读角色的用户生成令牌。请参阅 Crystallize 角色。

环境变量
变量必需描述
CRYSTALLIZE_TENANT_IDENTIFIER是来自 app.crystallize.com/{tenant} 的租户标识符
CRYSTALLIZE_ACCESS_TOKEN_ID否PIM API 的访问令牌 ID
CRYSTALLIZE_ACCESS_TOKEN_SECRET否访问令牌密钥(与令牌 ID 配对使用)
CRYSTALLIZE_STATIC_AUTH_TOKEN否静态身份验证令牌(可替代 ID/密钥组合)
CRYSTALLIZE_ACCESS_MODE否read(默认)、write 或 admin — 控制注册哪些工具
CRYSTALLIZE_DRY_RUN否设置为 true 可预览写入操作但不执行 — 请参阅写入工具
CRYSTALLIZE_PII_MODE否full(默认)、masked 或 none — 控制客户/订单响应中的 PII
CRYSTALLIZE_AUDIT_LOG否审计日志的写入路径 — ~ 会展开(例如 ~/.crystallize-mcp/audit.log)
PII 模式(选择启用)

默认情况下,所有客户和订单数据都会原样返回(full)。将 CRYSTALLIZE_PII_MODE 设为相应值,可选择启用数据最小化:

模式行为
full默认 — 返回所有字段,不作更改
masked电子邮件 → h***@example.com,电话 → ***-1234,地址 → 仅保留城市和国家/地区
none移除联系信息/PII 字段 — 移除姓名、电子邮件、电话、地址、meta 和外部引用。非联系信息数据(订单项、付款类型、总额)仍可能存在。

适用于处理真实客户数据的团队、需遵守 GDPR 第 25 条(通过设计实现数据最小化)的场景,或 AI 无需原始联系信息即可完成任务的环境。常见做法是在生产环境使用 masked,在开发环境使用 full。

审计日志(可选启用)

将 CRYSTALLIZE_AUDIT_LOG 设置为绝对文件路径,即可启用对每次工具调用进行结构化日志记录:

{
  "ts": "2026-04-03T14:38:41Z",
  "tool": "list_customers",
  "params": { "first": 10 },
  "result": "ok",
  "tenant": "my-store"
}

每次调用记录一行 JSON,包含时间戳、工具名称、参数、结果(ok/error)和租户。写入工具还会记录变更元数据(变更前后的状态),用于审计追踪。

**注意:**参数会原样记录,可能包含个人身份信息(PII),例如值为 [email protected] 的 searchTerm 或 customerIdentifier。请将审计日志文件视为敏感数据,并采取相应措施限制访问。参数脱敏功能已列入路线图,但尚未实现。

可轻松将日志传输至日志聚合器(Datadog、CloudWatch、Splunk),但请确保你的管道对文件实施了适当的访问控制。

钥匙串存储(可选)

设置向导(npx @hayodev/crystallize-mcp --setup)可以将令牌存储在操作系统钥匙串(macOS Keychain、Windows Credential Manager 或 Linux 上的 libsecret)中,使其不会以明文形式出现在配置文件中。MCP 服务会在启动时自动从钥匙串读取凭据,无需额外配置。

适用于以下情况:

  • 你的 .mcp.json 已提交到 git——钥匙串可避免令牌进入代码仓库
  • 你不希望机密信息以明文形式保存在配置文件中——配置中只需包含 CRYSTALLIZE_TENANT_IDENTIFIER

使用 Claude Code 的 --setup --global 时,只有在钥匙串存储可用且你选择启用时,此功能才会生效:此时,向导会运行 claude mcp add,且只传入非机密环境变量;运行时会从钥匙串读取令牌,因此令牌不会出现在 Claude Code 配置中。如果钥匙串存储不可用,或你选择不使用它,向导会将令牌环境变量传递给 claude mcp add,而 Claude Code 可能会以明文形式保存这些变量。

访问模式

CRYSTALLIZE_ACCESS_MODE 用于控制 MCP 服务在启动时注册哪些工具:

  • read(默认)——仅包含只读工具
  • write——包含内容创建和组件更新(支持试运行)
  • admin——拥有完整访问权限,包括结构修改和租户配置

深层链接

每个响应都包含指向 Crystallize UI 的可点击链接:

  • 项目 → app.crystallize.com/@{tenant}/{language}/catalogue/{type}/{itemId}
  • 结构 → app.crystallize.com/@{tenant}/{language}/settings/shapes/{identifier}
  • 订单 → app.crystallize.com/@{tenant}/{language}/orders/{orderId}

语言部分会在服务启动时根据租户的默认语言自动设置,无需配置。接受 language 参数的工具(catalogue、search)会在 API 调用和生成的链接中使用请求的语言。

开发

npm install
npm run build
npm run dev          # build + start
npm run lint         # oxlint
npm run format       # oxlint --fix + oxfmt
npm run typecheck    # tsc --noEmit
npm run test         # build + node --test

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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