概览通过 MCP 连接 Creght

通过 MCP 连接 Creght

让 Claude、Cursor 等 AI 助手用你的账号操作 Creght:地址、各客户端接入方式、OAuth 授权与权限、全部 MCP 工具的参数与返回,以及 CMS 直接上线、单文件 20 MB 等限制。

Creght 提供一个 MCP server,AI 助手(Claude、Cursor 等)连上以后可以用你的账号列站点、看发布状态和访问统计、读写 CMS 内容、读表单提交、上传素材、发布站点。授权走浏览器里的 OAuth,不需要复制任何密钥。

地址

账号所在站点MCP 地址
creght.cnhttps://creght.cn/api/mcp
creght.comhttps://creght.com/api/mcp
  • 路径是 /api/mcp,不是 /mcp。https://creght.cn/mcp 返回的是编辑器页面,客户端会报「不是合法的 MCP 响应」。
  • 两个站点的账号和数据互不相通:在 creght.cn 注册的账号只能连 creght.cn 的地址。
  • 传输方式是 Streamable HTTP(无会话,每次调用一问一答),不支持旧的 SSE 传输。

接入客户端

下面以 creght.cn 为例,creght.com 的账号把地址换掉即可。

Claude Code

claude mcp add --transport http creght https://creght.cn/api/mcp

加好后在 Claude Code 里运行 /mcp,选中 creght 完成授权。

Cursor 及其他用 JSON 配置的客户端

在 ~/.cursor/mcp.json(或项目里的 .cursor/mcp.json)加:

{
  "mcpServers": {
    "creght": { "url": "https://creght.cn/api/mcp" }
  }
}

其他客户端只要支持「远程 MCP + OAuth」,填同一个地址即可,不用填 client id、secret 或 token。

Claude 网页版 / 桌面版

设置 → 连接器 → 添加自定义连接器,URL 填 https://creght.cn/api/mcp,高级设置里的 OAuth 字段留空。

授权与权限

第一次调用时服务端返回 401,客户端会自动打开浏览器:登录 Creght 账号,在授权页确认后回到客户端。整个过程客户端自己完成,你只需要点「同意」。

  • 授权页上的应用名是客户端自己报的,标着「未验证」,页面上同时显示回调地址。回调地址不是你正在用的客户端(比如本机 127.0.0.1、claude.ai)时不要同意。
  • 权限分两档:site:read(所有读工具)和 site:write(写 CMS、上传素材、发布站点、管理 webhook)。客户端没有申请 scope 时只给 site:read,这时调用写工具会报权限不足。
  • 拿到的权限不会超过账号本身:能看到的站点就是你自己的项目和被邀请加入的项目,读写能力和你在该项目里的角色一致。
  • access token 有效 1 小时,客户端用 refresh token 自动续期;refresh token 30 天内用过一次就重新计时,所以常用的客户端不需要反复授权。

工具

所有工具都要 project_id(站点相关的还要 site_id),先调 list_sites 拿到。

站点

工具权限参数返回 / 说明
list_sites读无sites[]:project_id、project_name、site_id、site_name
site_status读project_id、site_id是否发布、线上版本、live_url(优先自定义域名,没发布过是空串)、preview_url、has_changes(工作区相对线上有没有改动)
site_publish写project_id、site_id、note(可选,记进版本历史)把预览里看到的内容发布上线,和 creght publish 相同。没有改动时报错。返回发布后的状态和 version_id、version_no
visit_stats读project_id、site_id、start_at / end_at(Unix 秒,可选)、limit(每个维度前几名,默认 20)summary(pv / uv / ip)、trend(按 UTC 日期)、breakdowns(国家、城市、设备、浏览器、系统、来源域名、渠道、页面)。不填时间是最近 30 天;超出套餐可查范围的起点会被收窄,以返回的 start_at 为准

CMS

工具权限参数返回 / 说明
cms_collections读project_idcollections[]:id、key、name、desc
cms_collection读project_id、collection(key 或 id)集合信息和字段定义 fields(JSON Schema)。写内容前先看它
cms_content_list读project_id、collection、limit(默认 20,最多 100)、offset、status(online / offline)、searchtotal、has_more、list[]:id、slug、status、body、created_at、updated_at
cms_content_create写project_id、collection、slug(集合内唯一)、body新内容的 id。建好立即在线上可见
cms_content_update写project_id、collection、id、slug(可选)、body(可选)body 与已有内容合并,没传的字段不变。updated: false 表示提交的值和原来一样。改动立即上线

表单

工具权限参数返回 / 说明
form_list读project_idforms[]:id、key、name、desc、fields、submissions_total
form_submissions读project_id、form_id(可选,id 或 key)、since(RFC3339,可选)、cursor、limit(默认 50,最多 200)按提交顺序返回,带 next_cursor。增量同步时把上次的 next_cursor 传回来,不会重复也不会漏。不返回提交者 IP,只给按 IP 解析的国家代码
form_webhook_create / list / delete / testlist 读,其余写表单一有提交就实时推到你的 https 地址,见 表单提交 webhook

素材

工具权限参数返回 / 说明
asset_upload写project_id、site_id、filename(带扩展名)、content_base64(也接受 data: URL)、content_type(可选)公开地址 url,可以直接用在页面和 CMS 内容里。和 creght upload 相同,同一个文件重复上传会复用。单个文件最多 20 MB(base64 之前)

典型流程

发一篇博客并上线:

  1. list_sites 找到站点的 project_id、site_id。
  2. cms_collections 找到博客集合,cms_collection 看字段定义。
  3. 有封面图就先 asset_upload,把返回的 url 填进对应字段。
  4. cms_content_create 写入。内容此时已经在线上的列表页和详情页里了,不需要再调 site_publish。

site_publish 只在站点代码改过之后用:发布的是工作区里的页面代码和配置(也就是预览地址上看到的版本),CMS 内容不经过它。

限制

  • CMS 没有草稿。cms_content_create 和 cms_content_update 都是直接上线。要先给人审,就先写到本地、确认后再调。
  • site_publish 对所有访客立即生效。调用前先让人在 preview_url 上确认过。
  • body 的键和类型要和 cms_collection 返回的 fields 一致。
  • 没有删除 CMS 内容、改集合结构、改站点代码的工具。这些用编辑器或 creght CLI。
  • asset_upload 的文件内容要整段放进一次调用,超过 20 MB 会直接报错。更大的文件用 creght upload。

排障

现象原因
客户端报响应不是 JSON / 不是合法的 MCP 响应地址写成了 /mcp,改成 /api/mcp
授权页登录不上,提示账号不存在用错了站点:creght.cn 的账号连了 creght.com 的地址(或反过来)。改地址后删掉这个 server 重新添加
读工具能用,写工具报权限不足客户端只申请了 site:read;或者你在这个项目里只有只读角色
找不到某个站点这个项目不属于你、也没邀请你。list_sites 的结果就是你能操作的全部
site_publish 报没有改动工作区和线上一致,site_status 的 has_changes 为 false 时不用发
asset_upload 报请求太大文件超过 20 MB,改用 creght upload

Render diagnostics