@cmssy/mcp-server

中文文档
0.139.0发布于 2026/11/10MITTypeScriptES Module构建来源已验证近 30 天下载 1.3万

Cmsy 的 MCP 服务器 - 主机无头 CMS 有本地商业, 由您的 AI 代理运行

中文使用文档
文档目录24 节
  1. 主机服务器( 未安装)
  2. 设置
  3. 先决条件
  4. 添加到克洛德代码
  5. 环境变量
  6. 正在检查哪个构建正在运行
  7. 隐私政策
  8. 反应形状( 写工具)
  9. 建一个站点
  10. 可用工具
  11. 读取工具
  12. 写入工具
  13. 块帮助工具
  14. 模型工具(海关数据模型)
  15. 商业工具(订单、货物、折扣)
  16. 客户工具
  17. 价格列表工具
  18. 销售频道工具
  19. Webhook 工具
  20. 电子邮件工具
  21. 资源
  22. 示例工作流程
  23. 正在主机服务器( 图书馆)
  24. 发展

@ cmssy/ mcp- 服务器

MCP 服务器 阴道,一个主机无头CMS 与内置商务。 让一个AI代理在一个Cmsy工作空间中与页面,记录,媒体,表格,产品,订单,退款以及折扣一起工作.

主机服务器( 未安装)

https://api.cmssy.io/mcp 在HTTP上提供同样的工具。 Claude(网络,桌面,代码)和Codex通过签名连接到cmsy. 一个请求服务器 URL 和 API 密钥的客户端 - v0, 可爱的, 博尔特 或您自己的 - 发送一个 cs_ 代号 :

URL:    https://api.cmssy.io/mcp
Header: Authorization: Bearer cs_YOUR_TOKEN

一个瞄准一个工作空间的符号只到达那个工作空间;一个没有瞄准的符号到达你所属的每一个工作空间. 每个工具都需要一个 workspace (单位:千美元)<orgSlug>/<workspaceSlug>),以及 list_workspaces 指定标志可能使用的名称。 它与你在每个工作区的角色一起读写. 更改密码不会取消 - 在 Dashboard > API Tokens 下删除它 。 细节 : cmssy.com/docs/api/mcp (中文(简体) )。 。 。 .

设置

先决条件

  1. Cmsy 工作空间 - 免费计划有效; 推车和退票需要 Pro
  2. API 令牌( Dashboard > API) 托肯斯,从 cs_(中文(简体) )
  3. 您的工作空间标识( 工作空间设置 > 常规)

服务器说话到 https://api.cmssy.io 默认。 过 --api-url 只用于另一个后端.

添加到克洛德代码

添加为 .mcp.json 在您的工程根中 :

{
  "mcpServers": {
    "cmssy": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cmssy/mcp-server@latest",
        "--token",
        "cs_YOUR_TOKEN",
        "--workspace-id",
        "YOUR_WORKSPACE_ID"
      ]
    }
  }
}

环境变量

而非 CLI 参数, 您可以设定 :

  • CMSSY_API_TOKEN - API 令牌(cs_xxx(中文(简体) )
  • CMSSY_WORKSPACE_ID - 工作空间标识
  • CMSSY_API_URL — API URL( 可选; 默认为 https://api.cmssy.io后端)

正在检查哪个构建正在运行

--version 财务报告和审定财务报表 --help 不需要任何标志,所以即使服务器是 未配置 。 运行旗子对 同样的光谱 您的客户端启动, (中文(简体) ), 从您的复制 mcp.json数字 :

npx -y @cmssy/mcp-server --version          # what an unpinned config runs
npx -y @cmssy/mcp-server@latest --version   # what the registry serves today
npm view @cmssy/mcp-server version          # the newest published version

前两个可以不同意, 而分歧是答案: 一个温暖的 npx 缓存保存一个未绑定的 spec 解析到更早,同时 @latest 重新解决并报告最新的一个。 这么说吧 @latest --version 无法诊断 是命令隐藏它。 先问未标注的光谱 当一个工具在一个字段上失败时, API 应该服务, 然后比较 .

清除缓存是 npx clear-npx-cache,或将版本刻入您的配置 所以没什么需要诊断的.

隐私政策

完全政策: https://www.cmssy.com/privacy (中文(简体) )。联系人: 联系人@cmssy.com。 。 。 .

  • 此服务器收集的内容:无自取. 它没有本地数据库,没有写文件,也没有向任何分析服务发送任何信息.
  • 它发出什么,在哪里:每个工具调用成为 GraphQL 对 Cmsy API 的请求(https://api.cmssy.io 除非你设定 CMSSY_API_URL),携带您的 API 令牌,您的工作空间ID,工具的参数,客户端名称和版本,以及正在运行的工具名称. Cmssy API 记录了从最后两个工具调用的一个使用事件.
  • 文件和 URL数字 : upload_media 仅读取本地文件路径,或只下载您通过的 URL,然后将字节上传到 API 返回的 Cmsy 存储 URL。 没有其他文件.
  • 使用和储存: Cmsy API在欧盟存储上述政策所描述的工作空间内容(页,记录,媒体,订单,客户). 内容不出售,也不用于培训AI模型.
  • 第三方分享:服务器只与 Cmssy API 和 Cmssy 存储 URL 进行交谈,并加上您交出的任何 URL upload_media保险单列出了Cmsy服务本身使用的第三方.
  • 保留数据:在呼叫返回后,服务器不保留任何内容 。 工作空间数据在您删除或关闭账户之前会保留;保留期在保单中.
  • 你的纪念品:经创建它的成员的许可进行操作. 在 Dashboard > API 下撤消 随时托克.

反应形状( 写工具)

截止0.6.0,大多数写工具接受可选 response 参数 :

  • response: "minimal" (default) - 返回一个小块(~200字节) : {id, slug, hasUnpublishedChanges, updatedAt} 用于页面工具, {pageId, blockId, hasUnpublishedChanges, updatedAt} 对于块工具, {id, slug, status, updatedAt} 为形式工具, {id, slug, updatedAt} 用于模型工具, {id, status, updatedAt} 为记录工具, {id, orderNumber, status, paymentStatus, fulfillmentStatus, total, balanceDue, currency, updatedAt} 用于订单工具, {id, code, type, value, enabled, updatedAt} 用于折扣工具.
  • response: "full" - 返回完整的突变反应(前0.6行为).

使用 "full" 只当您需要后写入状态内入; 否则会发出一个 后续行动 get_page编号 :get_form编号 :get_model编号 :get_record。这保持代理 上下文窗口从被回放内容所吞噬.

接受的工具 response数字 : create_page, (中文(简体) ), update_page_blocks, (中文(简体) ), update_page_settings, (中文(简体) ), publish_page, (中文(简体) ), unpublish_page, (中文(简体) ), revert_to_published, (中文(简体) ), update_page_layout, (中文(简体) ), add_block_to_page, (中文(简体) ), update_block_content, (中文(简体) ), remove_block_from_page, (中文(简体) ), create_form, (中文(简体) ), update_form, (中文(简体) ), create_model, (中文(简体) ), update_model, (中文(简体) ), create_record, (中文(简体) ), update_record, (中文(简体) ), create_manual_order, (中文(简体) ), edit_order, (中文(简体) ), update_order_details, (中文(简体) ), mark_order_paid, (中文(简体) ), record_order_payment, (中文(简体) ), refund_order, (中文(简体) ), cancel_order, (中文(简体) ), close_order, (中文(简体) ), reopen_order, (中文(简体) ), create_return, (中文(简体) ), approve_return, (中文(简体) ), reject_return, (中文(简体) ), cancel_return, (中文(简体) ), receive_return, (中文(简体) ), refund_return, (中文(简体) ), complete_return, (中文(简体) ), update_return_tracking, (中文(简体) ), create_shipment, (中文(简体) ), update_shipment, (中文(简体) ), set_order_pipeline_stage, (中文(简体) ), record_order_invoice, (中文(简体) ), record_order_invoice_correction, (中文(简体) ), create_discount, (中文(简体) ), update_discount, (中文(简体) ), set_discount_enabled。 。 。 .

patch_block_content 和各种 delete_* / 只有状态的工具 (单位:千美元)update_form_submission_status, (中文(简体) ), import_records(中文(简体) ) 已经返回一个紧凑的 ack 并且不要拿 response。 。 。 .

建一个站点

连接服务器时,会发出指示,将一个代理(v0,Lovable, Bolt, Claude)发送到 get_site_setup 先说 它会返回文件 cmssy init 为 Next.js 写 - call- all page, 编辑器路由, 代理, 配置, 块注册, 头部/脚部区域 - 并填入工作空间的 env vars 。 特工就部署,打电话 set_preview_url,创建 content.changed 网络浏览 /api/revalidate,用户一旦打开编辑器,块类型就会注册,在其布局区域创建有页眉和页脚的页面,并公布.

可用工具

读取工具

工具说明
get_site_setup要在工作空间上建立一个站点的一切:要写的文件,包,env vars填入的文件,步骤
list_pages有层次的页面树( 可选) search 过滤器)
get_page包含块、 i18n 内容和区域设置的完整页面( 属于 regionSettings + 解决 resolvedRegions 和遗产来源) 由 swit 或 id
get_site_config语文、导航、站名
get_workspace_info工作空间名称、计划、限制
list_media媒体库列表
list_trashed_pages页面垃圾: 删除了被删除的组, 子树大小和每组被清除( 删除后30天)

写入工具

工具说明
create_page创建新页面
update_page_blocks在一页设置完整的块数组
update_page_settings更新页面元数据和 SIO
publish_page发布一页
set_preview_url将编辑器指向已部署的应用程序( 存储 URL 的出处)
unpublish_page取消页面
delete_page将一个页面及其子树移动到垃圾堆中, 持续30天
restore_page将已丢弃的页面组恢复为未发布的草稿
revert_to_published丢弃草稿,恢复公布

块帮助工具

工具说明
add_block_to_page在位置插入块( 自动生成 UUID + 翻译)
update_block_content合并内容为已存在的块
patch_block_content外科 HTML 补丁( 插入/替换到唯一标记周围)
remove_block_from_page以 ID 删除块
update_page_layout更新布局块和覆盖
update_region_settings设置一个布局区域设置( 明显验证; 其他区域未更改)

update_region_settings

区域( 显示位置) 设置由工作空间的布局宣布 你当明白,你当明白,你当明白。 工具读取当前页面 layoutRegionSettings,仅替换命名区域并写入整个 列表后,所以兄弟地区保留其数值(区域 区域计划已经不存在的关键 在路上掉下来的—— 同样的pruning管理员编辑器做。 后端的自带 BAD_USER_INPUT 消息为未知区域逐字返回,未知 键,或非空 values 没有声明设置的区域(此类区域) 区域接受 values: {} 仅此而已); blockWarnings 当出现时浮出水面.

{ "pageId": "...", "region": "sidebar", "values": { "width": "wide" } }

儿童页面继承一个区域的设置,除非它们设置自己的 - get_page 显示每个区域在 resolvedRegions (单位:千美元)settingsAreInherited, (中文(简体) ), settingsSourcePageId) (中文(简体) ).

patch_block_content

对于长 HTML 内容字符串上的小编辑( 如 a) docs-article 身体状况, patch_block_content 值值为~10x,比 update_block_content 然后在给DB写信之前 发现标记错误.

{
  "pageId": "...",
  "blockId": "...",
  "locale": "en",
  "operations": [
    {
      "op": "insert_before",
      "marker": "<h2>Environment Variables</h2>",
      "html": "<hr><h2>cmssy skills install</h2><p>...</p>",
    },
  ],
}

四项行动: insert_before, (中文(简体) ), insert_after, (中文(简体) ), replace_section, (中文(简体) ), replace_all。 。 。 . 每个标记必须匹配 {\fn华文仿宋\fs16\1chd1d1d1}就是一次 - 0或2+ 与错误匹配 实际计算(无静态半应用状态)。 对于 replace_section, (中文(简体) ), startMarker 包容性和 endMarker 这是独家的. replace_all 设置 整个字符串并取 expected,当前值 - 如果移动则拒绝.

要求数 @cmssy/cli- 注册的工作空间 PAGES_EDIT 允许. 默认 fieldPath 实值 "content" (Docs-article上的HTML正文); 覆盖 如果补入不同的字符串字段。 点片段到达了嵌入的字符串,例如. tabs.0.label 第一个标签的标签.

模型工具(海关数据模型)

AI代理可以定义ModelDefinitions和CRUD他们的记录. 司马/外地 跟着 PropertyField 从 @cmssy/types; 对照 每一个字的模型.

工具说明
list_models列出工作空间中的所有模型定义
get_model通过 id(ObjectId) 或 slock 获得模型
create_model创建模型( 名称、 弹片、 字段、 可选状态 )
update_model更新模型中的任何字段( 字段会改变 schema 迁移)
delete_model删除一个模型—— 级联至其所有记录
list_records列出带有过滤器( JSON) 、 排序、 pagination 、 可选填充功能的记录
get_record由识别码获取记录;公司记录带有增值税识别码、核查和豁免
create_record创建记录; data 按模式字段键键
update_record更新记录的数据并(或)过渡其地位
delete_record删除记录
import_records批量导入最多 1000 个记录; 返回 { importedCount, errors }
bulk_update_records设置最多 200 个ID 或每个过滤匹配的数据和/或状态

需要工作空间权限 MODELS_VIEW (已读) / MODELS_CREATE 编号 : MODELS_EDIT 编号 : MODELS_DELETE 取决于操作.

商业工具(订单、货物、折扣)

管理店面的订单 手推车和折扣码. 所有钱田 是整数小单位(分数). 顺序/贴现工具接受 response 参数( 见 响应形状) (中文(简体) ).

工具说明
list_orders按付款/完成/交付/状态、仓库队列、客户、货币、日期列出订单 skip编号 :limit
get_order订购物品、付款、包裹、发票和校正、税收汇总和处理、销售渠道和定价价格清单
get_order_pipeline得到工作空间的可配置订单管道阶段
create_manual_order创建包含管理员的订单, 并附带可选的运输地址
edit_order替换一个命令的行项目(重新计算总数)
update_order_details更新客户邮件、笔记、邮号和运输地址
mark_order_paid记录全额付款(人工核对,没有供应商核查)
record_order_payment将部分付款记入应付款余额
refund_order退还命令(全额或部分与 amount(中文(简体) )
cancel_order取消命令
close_order标出已执行的命令; 如果支付或实现滑动, 重新打开
reopen_order重新打开已关闭的命令
create_return打开返回:线路、数量、原因、返回空间跟踪
approve_return批准客户要求的回报
reject_return拒绝请求的返回
cancel_return取消尚未退还的返回
receive_return每行记录收到的单位以及有多少个返回库存
refund_return记录退款回报
complete_return关闭未退款的已收回报
update_return_tracking设定返回包裹的载体和跟踪编号
create_shipment在命令中添加一个包裹( carrier, 跟踪号, 链接, 状态)
update_shipment更改包裹状态或跟踪, 并附上其历史记录
set_order_pipeline_stage将命令移至管道阶段
record_order_invoice在订单中附上发票(号码、url、提供者)
record_order_invoice_correction在发票定单上附上更正发票(信用证)
list_carts列出购物车( admin视图、 可选状态过滤器) 及其销售通道
delete_carts永久删除 1-100 个推车, 全部或无
list_discounts列表折扣代码( 以启用/ 类型/ 代码过滤)
get_discount由ID打折
create_discount创建折扣( E)percentage 编号 : fixed 编号 : free_shipping(中文(简体) )
update_discount部分更新( 代码/ 类型/ 货币锁定, 一旦使用代码)
set_discount_enabled启用或禁用折扣
list_products有库存+变种信息的产品目录(通过一个数据模型)
bulk_update_products成套散装/适当状态、库存或选定产品的价格
bulk_delete_products大量删除所选产品记录
set_product_tiers设定产品创纪录的售出价格
set_product_variants替换一个产品的全部变种集
set_product_currency_prices替换产品价格和以其他货币折价,变数的币种价格不触及库存

产品是自定义数据模型的记录;这些工具增加了产品意识 在通用记录工具上阅读和批量写作。 这个 散装工具针对明确 ids 列表 或者说 所有符合 filter (单位:千美元)allMatching: true) (中文(简体) ). 没有零星的股票,也没有独立的 库存突变 -- -- 通过批量设置/调整库存 patch.setStock 编号 : patch.adjustStock。 。 。 .

需要工作空间权限 ORDERS_VIEW 编号 : ORDERS_MANAGE (订单), CARTS_VIEW (条款), DISCOUNTS_VIEW 编号 : DISCOUNTS_MANAGE (贴现), MODELS_VIEW 编号 : MODELS_EDIT 编号 : MODELS_DELETE (产品).

客户工具

客户是签到现场的账户 - 一个模型的记录 启用账户, 而不是管理工作空间的团队 (单位:千美元)list_team) (中文(简体) ).

工具说明
list_customers列出身份、核查、最后登录、公司和订单统计(贴出)的客户名单
get_customer一个客户的账户汇总 加上档案记录的数据
suspend_customer屏蔽登录并结束每次直播会话(订单和推车停留)
unsuspend_customer让暂停的客户再次签名
send_customer_password_reset向活动客户发布重置令牌; 应用程序的 account.* webhook 发送邮件
resend_customer_verification向待办客户发布新验证符; 应用程序的 Webhook 发送邮件
unlock_customer清除失败的登录计数器并关闭
set_customer_company_role让客户在他们的公司中发挥作用(admin 看每个公司的命令, buyer 他们自己的)
set_customer_price_list(一) 向没有公司的客户分发价格清单; null 未指派

价格列表工具

价目表(金、银、经销商等级)对买方的定价比 每个产品或变体的目录加固定价格。 每个买方有一个清单: 一个公司的成员支付公司名单,一个没有公司的客户 他们自己的.

工具说明
list_price_lists每个价格列表, 包含%Off, 固定价格计数, 任务计数和频道
get_price_list一份附有固定价格一页的清单(按产品过滤,光标涂页)
create_price_list创建列表, 列出名称、 可选 % 及其公布的频道
update_price_list重命名一个列表, 更改其 %Off、 窗口或频道([] 无法读取)
delete_price_list删除列表并取消在任何地方的指派
set_price_list_entry设置一个产品或变体的固定价格,可选的音量间隔
set_price_list_entries一次提升至1000个固定价格,全部或无
remove_price_list_entries按产品/变式计算,取消高达1 000个固定价格
set_company_price_list将价格清单分配给公司记录;每个成员支付; null 未指派
set_company_price_display_mode确定公司买主是净价还是总价; null = 默认(净额)
set_company_tax_rounding设定公司的增值税四舍五入,每行或每行税率; 3; null = 工作空间设置
set_company_vat_id设置或清除公司的欧盟增值税标识;更改后的标识不再被验证
set_company_vat_verified测试或取出公司的增值税代号;驱动反向收费
set_company_tax_exemption以合法理由免除公司增值税的命令; null 清除

销售频道工具

销售渠道(零售道,horeca道,b2b道)是商店前期发送要定价的密钥 从向它公布的价目单中提取的:买方自己或公司的产品 列表获胜,然后是频道日期列表,然后是其基准列表,然后是 目录。 名单公布于 create_price_list 编号 : update_price_list channels。 。 。 .

工具说明
list_sales_channels每个带密钥、显示模式、价格存取、活动列表和开卡计数的频道
get_sales_channel一个频道及其公布的列表, 下一个 ChangeAt 和活跃的CartCount
create_sales_channel创建一个频道( 键已建立后固定), 每个工作空间最多20个
update_sales_channel重命名频道或更改其显示模式或价格访问
delete_sales_channel删除一个频道, 取消其列表, 放弃打开的手推车

Webhook 工具

管理出局事件 Webhoks. create_webhook 财务报告和审定财务报表 rotate_webhook_secret 返回签名秘密 一次 - 无法再次取回.

工具说明
list_webhooks列出 Webhook 端点( 密件从未返回)
list_webhook_deliveries最近交付的尝试(待定/成功/失败)
list_webhook_event_types可分类事件的权威授权列表
create_webhook创建终点; 返回终点 + 密( 一次)
update_webhook部分更新; 通过 enabled 启用/残疾
rotate_webhook_secret旋转签名密钥( 返回一次新密钥)
delete_webhook删除一个终点

需要工作空间权限 WEBHOOKS_VIEW (已读) / WEBHOOKS_MANAGE (创建,更新,旋转,删除).

电子邮件工具

工具说明
list_email_configurations电子邮件配置 id 写在表格上 emailConfigurationId没有证书或收件人地址

需要工作空间许可 EMAIL_CONFIG_VIEW。 。 。 .

资源

URI 资源说明
cmssy://sitemap作为 JSON 的完整页面树
cmssy://workspace工作空间信息+站点配置

示例工作流程

> List all pages in my workspace
> Search for pages matching "blog"
> Show me the available block types
> Which pages still use block types the site no longer registers?
> Create a new "Features" page with content in English and Polish
> Add a hero block to the Features page
> Publish the Features page

正在主机服务器( 图书馆)

createHostedServer 从没有符号和磁盘的主机提供相同的工具。 每个工具都需要一个 workspace (单位:千美元)<orgSlug>/<workspaceSlug>(三); list_workspaces 指定连接可能使用的名称。 包只检查形状 workspace - 下面的一切都是主持人的工作:

  • resolveWorkspace(workspace) 是授权. 每通电话都检查一下,呼叫者是否仍然是该工作空间的成员,而且联系得到了批准. 为“不存在”和“不是您的”投出相同的信息,所以拒绝不会显示哪些工作空间存在.
  • 执行者是范围. 这个 CmssyApi 它返回( e)createCmssyApi(execute, workspaceId))以该工作空间的用户身份运行每个文档;软件包不会发送任何内容.
  • fetchUrl 是 SSRF 边界 . 拒绝私有,回回回和链接本地地址,并重新检查每个方向. 包裹在读取时会以50MB为身体盖上.

发展

pnpm install
pnpm dev -- --token cs_xxx --workspace-id xxx --api-url http://localhost:4000

版本与发布记录

@cmssy/mcp-server 共发布 181 个版本,首次发布于 2026/03/06;过去 12 个月发布了 181 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.139.0latest2026/11/10今天
0.138.02026/11/10今天
0.137.02026/11/091 天前
0.136.02026/11/081 天前
0.135.12026/11/063 天前
0.135.02026/11/063 天前

关于 @cmssy/mcp-server 的常见问题

@cmssy/mcp-server 是什么?

Cmsy 的 MCP 服务器 - 主机无头 CMS 有本地商业, 由您的 AI 代理运行

如何安装 @cmssy/mcp-server?

在项目目录运行 npm install @cmssy/mcp-server,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 cmssy-mcp,可以用 npx cmssy-mcp 直接运行。

@cmssy/mcp-server 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cmssy/mcp-server 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cmssy/mcp-server 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cmssy/mcp-server 可以商用吗?

@cmssy/mcp-server 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@cmssy/mcp-server 的下载量有多少?

根据 npm 官方下载统计,@cmssy/mcp-server 在 2026/10/10 – 2026/11/08 这 30 天内被下载 13,171 次,日均约 439 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cmssy/mcp-server 还在维护吗?

最新版本 0.139.0 发布于 2026/11/10(今天);至今共发布 181 个版本,其中过去 12 个月发布了 181 个;首次发布于 2026/03/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。