mcpField
D
docmost

docmost

github.com/dapi生产力385 次安装33 周前更新
代码仓库

关于 docmost

这是一个 CLI 技能,供 AI Agent 通过 Docmost API 管理工作区和内容。它采用实体-操作式命令,并提供结构统一的 JSON 响应,支持页面编辑、搜索、权限管理及导入导出等任务。

主要功能

  1. 01管理工作区、空间和成员
  2. 02创建、编辑及整理页面
  3. 03搜索页面并查看历史
  4. 04管理邀请、群组和共享
  5. 05导入、导出及传输文件

适用场景

  1. 01创建或更新 Docmost 文档
  2. 02查找页面并查看变更历史
  3. 03调整工作区或空间权限
  4. 04导入或导出文档及附件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dapi/docmost-cli --skill docmost

安装后在 Claude Code 中输入/docmost确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.envrc
.env.test.example
docker-compose.test.yml
README.md
LICENSE
.gitignore
CLAUDE.md
mcp_config_example.json
mise.toml
package-lock.json
package.json
.claude/
pr-review-loop-report.local.md
settings.local.json
.github/workflows/
ci.yml
docs/plans/
2026-02-27-skill-md-plan.md
2026-03-03-agent-friendly-output-design.md
2026-02-27-cli-full-crud-expansion-plan.md
2026-02-27-skill-md-design.md
2026-02-27-cli-full-crud-expansion-design.md
2026-03-07-integration-tests-plan.md
2026-03-07-integration-tests-design.md
scripts/
wait-for-docmost.sh
src/__tests__/
cli-utils.test.ts
filters.test.ts
discovery.test.ts
envelope.test.ts
src/__tests__/integration/
comment.test.ts
discovery.test.ts
file.test.ts
src/__tests__/integration/helpers/
run-cli.ts

详细介绍

docmost

面向 AI Agent 的 Docmost CLI 技能。

安装

从 GitHub 安装此技能:

npx skills add dapi/docmost-cli --skill docmost --agent '*' -g -y

安装 CLI:

npm install -g github:dapi/docmost-cli

设置环境变量(推荐):

export DOCMOST_API_URL=https://docs.example.com/api
export DOCMOST_TOKEN=<token>
# or login with email/password:
export DOCMOST_EMAIL=<email>
export DOCMOST_PASSWORD=<password>

快速检查:

docmost workspace-public --format json

命令命名:entity-action(而非 action-entity)

所有命令均采用 entity-action 格式:page-update、space-create、comment-delete。 切勿使用 update-page、create-space、delete-comment——这些命令不存在,执行会失败。

执行规则

  • 不要执行预检查。直接运行所需命令。如果找不到 docmost,请安装它(npm install -g github:dapi/docmost-cli)并重试。
  • 所有 --format json 输出都以信封格式包装:成功时为 { "ok": true, "data": ... },出错时为 { "ok": false, "error": ... }。
  • 对于 Agent 工作流,优先使用 --format json。
  • 只有在用户明确要求便于阅读的表格输出时,才使用 --format table。
  • 仅以下命令支持 --format text:
    • page-info(返回 Markdown 内容)
    • page-history-detail(返回 Markdown 内容)
    • invite-link(返回原始链接)
  • 凭据优先使用环境变量;避免将 --password 留在命令历史或进程列表中。
  • 身份验证优先级:--token > DOCMOST_TOKEN > --email/--password > DOCMOST_EMAIL/DOCMOST_PASSWORD。
  • 对列表/历史记录命令使用全局分页参数:
    • --limit <n>(1..100,默认值为 100)
    • --max-items <n>(达到总记录数 N 后停止)
  • 对于 Markdown/文本内容(page-update、comment-create、comment-update),可使用:
    • 字面字符串、@path/to/file.md 或 -(标准输入)
  • 二进制导出/下载命令会将字节写入标准输出,除非指定了 --output:
    • page-export、space-export、file-download
  • 仅关心退出状态时使用 --quiet。

输出格式

所有 --format json 响应都使用一致的信封格式:

成功(单个对象)
{ "ok": true, "data": { "id": "abc", "title": "Runbook" } }
成功(列表)
{ "ok": true, "data": [{ "id": "abc" }], "meta": { "count": 2, "hasMore": false } }
错误(stderr)
{ "ok": false, "error": { "code": "NOT_FOUND", "message": "Page not found", "details": null } }
Agent 解析规则
  • 始终先检查 ok 字段
  • 对于列表:条目位于 data 数组中;检查 meta.hasMore 以判断是否还有下一页
  • 对于变更操作:已创建/更新的对象会在 data 中返回
  • 错误包含类型化的 code:AUTH_ERROR、NOT_FOUND、VALIDATION_ERROR、NETWORK_ERROR、INTERNAL_ERROR
  • 退出码:0=成功,1=内部错误,2=身份验证错误,3=未找到,4=验证错误,5=网络错误
  • 使用 docmost commands 查看所有可用命令及其选项

核心命令模式

发现
docmost commands                          # list all commands with options as JSON
工作区 + 成员
docmost workspace-info --format json
docmost workspace-public --format json
docmost workspace-update --name "Docs" --description "Team docs" --format json
docmost workspace-update --enforce-sso true --enforce-mfa true --format json

docmost member-list --format table
docmost member-role --user-id <userId> --role admin --format json
docmost member-remove --user-id <userId> --format json
用户
docmost user-me --format json
docmost user-update --name "Alice" --locale en --page-edit-mode edit --full-page-width true --format json
空间
docmost space-list --format table
docmost space-info --space-id <spaceId> --format json

docmost space-create --name "Engineering" --slug engineering --description "Tech docs" --format json
docmost space-update --space-id <spaceId> --name "Platform" --format json
docmost space-delete --space-id <spaceId> --format json

docmost space-member-list --space-id <spaceId> --format table
docmost space-member-add --space-id <spaceId> --role writer --user-ids "u1,u2" --format json
docmost space-member-add --space-id <spaceId> --role reader --group-ids "g1,g2" --format json
docmost space-member-remove --space-id <spaceId> --user-id <userId> --format json
docmost space-member-role --space-id <spaceId> --group-id <groupId> --role admin --format json

docmost space-export --space-id <spaceId> --export-format markdown --output ./space.zip --format json
docmost space-export --space-id <spaceId> --export-format html --include-attachments > ./space.zip
页面
docmost page-list --format table
docmost page-list --space-id <spaceId> --format table

docmost page-info --page-id <pageId> --format json
docmost page-info --page-id <pageId> --format text

docmost page-create --space-id <spaceId> --title "Runbook" --icon "book" --format json
docmost page-create --space-id <spaceId> --title "Child" --parent-page-id <parentId> --format json

docmost page-update --page-id <pageId> --title "Runbook v2" --format json
docmost page-update --page-id <pageId> --content @./content.md --format json
echo "# Updated" | docmost page-update --page-id <pageId> --content - --format json

docmost page-move --page-id <pageId> --parent-page-id <parentId> --position a00000 --format json
docmost page-move --page-id <pageId> --root --format json
docmost page-move-to-space --page-id <pageId> --space-id <targetSpaceId> --format json

docmost page-delete --page-id <pageId> --format json
docmost page-delete --page-id <pageId> --permanently-delete --format json
docmost page-delete-bulk --page-ids "id1,id2,id3" --format json

docmost page-restore --page-id <pageId> --format json
docmost page-trash --space-id <spaceId> --format table
docmost page-duplicate --page-id <pageId> --format json
docmost page-duplicate --page-id <pageId> --space-id <targetSpaceId> --format json

docmost page-breadcrumbs --page-id <pageId> --format table
docmost page-tree --space-id <spaceId> --format json
docmost page-tree --page-id <pageId> --format json

docmost page-history --page-id <pageId> --limit 50 --max-items 200 --format table
docmost page-history-detail --history-id <historyId> --format json
docmost page-history-detail --history-id <historyId> --format text
页面导入/导出
docmost page-export --page-id <pageId> --export-format markdown --output ./page.zip
docmost page-export --page-id <pageId> --export-format html --include-children --include-attachments > ./page.zip

docmost page-import --file ./page.md --space-id <spaceId> --format json
docmost page-import-zip --file ./notion.zip --space-id <spaceId> --source notion --format json

page-import-zip --source 支持:generic、notion、confluence。

搜索
docmost search --query "onboarding" --format table
docmost search --query "oauth" --space-id <spaceId> --creator-id <userId> --format json

docmost search-suggest --query "auth" --format json
docmost search-suggest --query "auth" --space-id <spaceId> --include-pages --include-groups --max-results 20 --format json
邀请
docmost invite-list --format table
docmost invite-info --invitation-id <inviteId> --format json

docmost invite-create --emails "[email protected],[email protected]" --role member --format json
docmost invite-create --emails "[email protected]" --role admin --group-ids "g1,g2" --format json

docmost invite-revoke --invitation-id <inviteId> --format json
docmost invite-resend --invitation-id <inviteId> --format json
docmost invite-link --invitation-id <inviteId> --format text
群组
docmost group-list --format table
docmost group-info --group-id <groupId> --format json

docmost group-create --name "Tech Writers" --description "Docs team" --format json
docmost group-create --name "Maintainers" --user-ids "u1,u2" --format json

docmost group-update --group-id <groupId> --name "Platform Writers" --format json
docmost group-delete --group-id <groupId> --format json

docmost group-member-list --group-id <groupId> --format table
docmost group-member-add --group-id <groupId> --user-ids "u1,u2" --format json
docmost group-member-remove --group-id <groupId> --user-id <userId> --format json
评论
docmost comment-list --page-id <pageId> --format table
docmost comment-info --comment-id <commentId> --format json

docmost comment-create --page-id <pageId> --content @./comment.md --format json
docmost comment-create --page-id <pageId> --content "Please clarify" --selection "Auth flow" --format json
docmost comment-create --page-id <pageId> --content "Reply text" --parent-comment-id <commentId> --format json

docmost comment-update --comment-id <commentId> --content "Updated comment" --format json
docmost comment-delete --comment-id <commentId> --format json
分享
docmost share-list --format table
docmost share-info --share-id <shareId> --format json
docmost share-for-page --page-id <pageId> --format json

docmost share-create --page-id <pageId> --include-subpages true --search-indexing false --format json
docmost share-update --share-id <shareId> --include-subpages false --format json
docmost share-delete --share-id <shareId> --format json
文件
docmost file-upload --file ./diagram.png --page-id <pageId> --format json
docmost file-upload --file ./diagram-v2.png --page-id <pageId> --attachment-id <attachmentId> --format json

docmost file-download --file-id <fileId> --file-name diagram.png --output ./diagram.png
docmost file-download --file-id <fileId> --file-name report.pdf > ./report.pdf

Agent 工作流

页面 CRUD(推荐默认方式)

对于“创建/更新/移动/删除文档页面”之类的请求:

  1. 确定工作区和目标空间:
    • docmost workspace-info --format json → 检查 .ok,使用 .data
    • docmost space-list --format json → 遍历 .data[],检查 .meta.hasMore
  2. 检查现有页面:
    • docmost page-list --space-id <spaceId> --format json → 遍历 .data[]
  3. 修改页面时读取源页面:
    • docmost page-info --page-id <pageId> --format text
  4. 执行变更:
    • page-create / page-update / page-move / page-delete → 检查 .ok,获取 .data.id
  5. 验证:
    • docmost page-info --page-id <pageId> --format json → 检查 .ok
搜索 + 历史记录调查

对于“查找相关内容记录在哪里”或“谁修改了此内容”之类的请求:

  1. docmost search --query "..." --format table
  2. docmost page-info --page-id <pageId> --format text
  3. docmost page-history --page-id <pageId> --format table
  4. docmost page-history-detail --history-id <historyId> --format text
访问控制

对于“添加/移除访问权限”这类请求:

  1. 工作区级别:
    • member-list、member-role、member-remove、invite-*
  2. 空间级别:
    • space-member-list、space-member-add、space-member-remove、space-member-role
  3. 公开页面分享:
    • share-for-page、share-create、share-update、share-delete
导出/导入和附件
  1. 导出内容:page-export / space-export
  2. 导入内容:page-import / page-import-zip
  3. 附加文件:file-upload
  4. 下载文件:file-download

请求语义

  • “我的 workspace / 我的空间” -> docmost workspace-info
  • “spaces / 分区” -> docmost space-list
  • “pages / 页面” -> docmost page-list
  • “查找 / search” -> docmost search --query "..."
  • “更改历史记录” -> docmost page-history
  • “已删除的页面 / 回收站” -> docmost page-trash
  • “访问权限 / access” -> member-* / space-member-* / share-*

触发示例

应触发
  • “在 Docmost 中创建页面”
  • “更新 runbook 页面”
  • “在 wiki 中查找所有关于 oauth 的内容”
  • “显示此页面的更改历史记录”
  • “恢复已删除的页面”
  • “将页面移到其他 space”
  • “将 space 导出为 markdown”
  • “将用户添加到 space,并设为 reader”
  • “为页面创建公开分享”
  • “将文件上传到页面”
  • “列出所有 Docmost spaces”
  • “邀请新用户加入 workspace”
  • “将成员角色更改为 admin”
  • “将 Notion zip 导入 Docmost”
  • “显示页面树”
  • “复制页面”
不应触发
  • 不与 Docmost API 交互而编辑本地 markdown 文件
  • Git/GitHub 操作
  • Slack/Telegram/电子邮件消息任务
  • 非 Docmost 网页抓取或浏览器自动化

评论

支持 Markdown