关于 workflowy
workflowy 是用 Go 编写的 Workflowy MCP 服务与命令行工具,可让 AI 助手读取和修改 Workflowy 大纲,也可在终端或脚本中使用。项目支持正则搜索、批量替换、用量报告和基于备份文件的离线访问。
主要功能
- 01支持正则的全文搜索
- 02批量查找替换,并提供试运行模式
- 03内容转换,如拆分、清理及通过 shell 命令处理
- 04用量报告,包括陈旧节点和镜像节点分析
- 05通过 --write-root-id 限制 AI 的写入范围
适用场景
- 01让 AI 助手查找并整理 Workflowy 中的待办事项
- 02批量修改大纲中的文本并先预览变更
- 03定期生成大纲用量报告,找出长期未修改的内容
MCP 相关
该项目提供 stdio 方式的 MCP 服务,将 Workflowy 的读取、搜索、创建、更新、移动和替换等操作暴露为工具。可通过参数限制为只读工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e WORKFLOWY_API_KEY ghcr.io/mholzen/workflowy:0.8.1WORKFLOWY_API_KEY密钥Your Workflowy API key (get it from https://workflowy.com/api-key/)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/mholzen/workflowy:0.8.1stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Workflowy MCP 服务与 CLI
一个功能丰富的 模型上下文协议(MCP)服务和 命令行界面(CLI),使用 Go 为 Workflowy 编写。将 AI 助手(Claude、ChatGPT 等)连接到你的 Workflowy 数据,或通过终端模拟器或脚本运行命令,支持搜索、批量替换、使用情况报告和离线访问等功能。
为什么选择这个 Workflowy MCP 服务?
- 支持正则表达式的全文搜索
- 批量搜索与替换
- 内容转换(拆分、清理、通过管道传递给大模型)
- 使用情况报告(过时节点、大小分析、镜像)
- 通过
--write-root-id实现沙盒化 AI 访问 - 通过备份文件实现离线模式
- CLI 与 MCP 服务集于一体
- 使用缓存提升性能
- 支持 Homebrew 安装
- 基本 CRUD 操作
- 使用短 ID(复制内部链接)
快速开始
通过 Homebrew 安装
brew install mholzen/workflowy/workflowy-cli
配置 API 密钥
mkdir -p ~/.workflowy
echo "your-api-key-here" > ~/.workflowy/api.key
在 https://workflowy.com/api-key/ 获取 API 密钥
运行你的第一条命令
# Get the top-level nodes, and nodes two levels deep
workflowy get
# Generate a report showing where most of your nodes are
workflowy report count | pbcopy # paste directly into Workflowy!
在 macOS 上使用 pbcopy,在 Windows 上使用 clip,在 Linux 上使用 wl-copy,或在 X11 系统上使用 xclip。
与 Claude Desktop 或 Claude Code 搭配使用
Claude Code
claude mcp add --transport=stdio workflowy -- workflowy mcp --expose=all
移除 —expose=all,即可限制为只读工具。
Claude Desktop
将以下内容添加到配置文件中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"workflowy": {
"command": "workflowy",
"args": ["mcp", "--expose=all"]
}
}
}
重启 Claude Desktop,然后就可以让 Claude 开始处理你的 Workflowy 内容了!
面向 AI 助手的 MCP 工具
读取工具(安全)
| 工具 | 描述 |
|---|---|
workflowy_get | 获取一个节点及其后代节点,并以树形结构呈现 |
workflowy_list | 以扁平列表列出后代节点 |
workflowy_search | 按文本或正则表达式搜索节点 |
workflowy_targets | 列出快捷方式和系统目标(收件箱等) |
workflowy_id | 将短 ID 或目标键解析为完整 UUID |
workflowy_report_count | 查找内容主要所在位置 |
workflowy_report_children | 查找子节点较多的节点 |
workflowy_report_created | 查找最早创建的节点 |
workflowy_report_modified | 查找长期未修改的过时节点 |
workflowy_report_mirrors | 查找镜像次数最多的节点(需要备份) |
写入工具
| 工具 | 描述 |
|---|---|
workflowy_create | 创建新节点 |
workflowy_update | 更新节点内容 |
workflowy_move | 将节点移动到新的父节点下 |
workflowy_delete | 删除节点 |
workflowy_complete | 将节点标记为已完成 |
workflowy_uncomplete | 将节点标记为未完成 |
workflowy_replace | 使用正则表达式进行批量查找与替换 |
workflowy_transform | 转换节点内容(拆分、修剪、执行 shell 命令) |
CLI 功能
搜索整个大纲
# Find all TODOs (case-insensitive)
workflowy search -i "foobar"
# Regex search for dates
workflowy search -E "<time.*>"
# Search within a specific subtree (using Internal Link)
workflowy search "bug" --item-id https://workflowy.com/#/1bdae4aecf00
批量搜索与替换
# Preview changes first (dry run)
workflowy replace --dry-run "foo" "bar"
# Interactive confirmation
workflowy replace --interactive "foo" "bar"
# Use regex capture groups
workflowy replace "TASK-([0-9]+)" 'ISSUE-$1'
一些常见的 CRUD 操作
# Add a task to your inbox
workflowy create "Buy groceries" --parent-id=inbox
# Change the name of an item
workflowy update xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --name "Project Plan v2"
# Move an item to a different parent
workflowy move <item-id> <new-parent-id>
# Mark a node as complete, using a short ID
workflowy complete https://workflowy.com/#/xxxxxxxxxxxx
# Resolve a short ID or target key to full UUID
workflowy id inbox
转换内容
# Split a node's content by newlines into child nodes
workflowy transform <item-id> split -s "\n"
# Clean up text
workflowy transform <item-id> trim
workflowy transform <item-id> no-punctuation
# Pipe content through any shell command (e.g., an LLM)
workflowy transform <item-id> -x 'echo {} | llm "summarize this"'
使用情况报告
# Where is most of my content?
workflowy report count --threshold 0.01
# Which nodes have the most children?
workflowy report children --top-n 20
# Find stale content (oldest modified)
workflowy report modified --top-n 50
# Find most mirrored nodes (requires backup)
workflowy report mirrors --top-n 20
数据访问方式
根据你的使用场景选择最合适的方式:
| 方式 | 速度 | 数据新鲜度 | 离线 | 最适合 |
|---|---|---|---|---|
--method=get | 中等 | 实时 | 否 | 特定条目 |
--method=export | 快* | 最坏情况下为 1 分钟(由于速率限制) | 否 | 访问完整树 |
--method=backup | 最快 | 可能过时 | 是 | 批量操作 |
*首次获取后会缓存
使用 Dropbox 备份的离线模式
启用 Workflowy 的 Dropbox 备份,即可离线访问数据:
workflowy get --method=backup
workflowy search -i "project" --method=backup
安装选项
Homebrew(macOS 和 Linux)
brew install mholzen/workflowy/workflowy-cli
Scoop(Windows)
scoop bucket add workflowy https://github.com/mholzen/scoop-workflowy
scoop install workflowy
使用 Go 安装
go install github.com/mholzen/workflowy/cmd/workflowy@latest
下载二进制文件
从 GitHub Releases 下载预构建的二进制文件。
Docker
docker run --rm -e WORKFLOWY_API_KEY=your-key ghcr.io/mholzen/workflowy:latest get
从源代码安装
git clone https://github.com/mholzen/workflowy.git
cd workflowy
go build ./cmd/workflowy
文档
示例
AI 助手工作流
询问 Claude:
- “在我的 Workflowy 中搜索所有包含‘会议记录’的条目”
- “显示我 6 个月未处理的节点”
- “将我的 Project A 文件夹中所有的‘v1’替换为‘v2’”
- “我的大纲中什么占用的空间最多?”
- “哪些节点被镜像的次数最多?”
- “将此条目移到我的收件箱”
CLI 工作流
# Morning review: find stale items
workflowy report modified --top-n 20
# Weekly cleanup: find oversized nodes
workflowy report count --threshold 0.05
# Find unnecessary mirrors
workflowy report mirrors --top-n 20
# Bulk rename: update project prefix
workflowy replace "OLD-" "NEW-" --parent-id projects-folder-id
# Split pasted content into child nodes
workflowy transform <item-id> split -s "\n"
贡献
欢迎贡献!请参阅贡献指南。
# Development setup
git clone https://github.com/mholzen/workflowy.git
cd workflowy
go test ./...
许可证
MIT — 请参阅 LICENSE
致谢
- 感谢 Andrew Lisy 提出添加沙盒隔离写入命令的方法
- 感谢 Craig P. Motlin 指出镜像是在备份文件中定义的
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。