# @cmssy/mcp-server 中文文档

规范地址：https://npmcn.com/package/%40cmssy/mcp-server/

版本：0\.139\.0
npm 元数据更新时间：2026-11-09T20:11:41.559Z
中文译文更新时间：2026-11-10T04:22:50.921Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cmssy/mcp-server
原文对照：https://npmcn.com/package/%40cmssy/mcp-server/?lang=original
项目主页：https://cmssy.com/
源码仓库：https://github.com/cmssy-io/cmssy-mcp

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.1 MB，283 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：4 个
- 首次发布：2026-03-05T21:07:07.035Z
- 最新版本发布：2026-11-09T20:11:41.183Z
- 近 30 天下载量：13171（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：181（近 12 个月 181 个）

## 中文简介

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

## 安装

```sh
npm install @cmssy/mcp-server
```

也可以使用：`pnpm add @cmssy/mcp-server`、`yarn add @cmssy/mcp-server`、`bun add @cmssy/mcp-server`

## README

# @ cmssy/ mcp- 服务器

MCP 服务器 [阴道](https://cmssy.com/),一个主机无头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 (中文(简体) )](https://www.cmssy.com/docs/api/mcp)。 。 。 .

## 设置

### 先决条件

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

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

### 添加到克洛德代码

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

```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`数字 :

```bash
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 (中文(简体) )](https://www.cmssy.com/privacy)。联系人: [联系人@cmssy.com](mailto:contact@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` 当出现时浮出水面.

```jsonc
{ "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写信之前 发现标记错误.

```jsonc
{
  "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` 参数( 见 [响应形状](https://npmcn.com/package/%40cmssy/mcp-server/#readme-response-shape-write-tools)) (中文(简体) ).

| 工具 | 说明 |
| --- | --- |
| `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为身体盖上.

## 发展

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

## 常见问题

### @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 和提交记录判断。

