什么是 io.github.mholzen/workflowy?
支持创建、更新、完成节点,并提供 regex 搜索替换、dry run、使用报告与数据转换功能。
README
Workflowy MCP Server & CLI
A feature-rich Model Context Protocol (MCP) server and Command Line Interface (CLI) for Workflowy written in Go. Connect your AI assistant (Claude, ChatGPT, etc.) to your Workflowy data or run commands from a terminal emulator or script, including search, bulk replace, usage reports, and offline access capabilities.
<a href="https://glama.ai/mcp/servers/@mholzen/workflowy"> <img width="380" height=“200" src="https://glama.ai/mcp/servers/@mholzen/workflowy/badge" /> </a>Why This Workflowy MCP Server?
- Full-text search with regex
- Bulk search & replace
- Content transformation (split, clean, pipe to LLMs)
- Usage reports (stale nodes, size analysis, mirrors)
- Sandboxed AI access with
--write-root-id - Offline mode via backup files
- CLI + MCP server in one tool
- Caching for performance
- Homebrew installation
- Basic CRUD operations
- Using short IDs (Copy Internal Link)
Quick Start
Install via Homebrew
brew install mholzen/workflowy/workflowy-cli
Configure Your API Key
mkdir -p ~/.workflowy
echo "your-api-key-here" > ~/.workflowy/api.key
Get your API key at https://workflowy.com/api-key/
Run Your First Command
# 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!
Use pbcopy on macOS, clip on Windows, wl-copy on Linux, or xclip for X11 systems.
Use with Claude Desktop or Claude Code
Claude Code
claude mcp add --transport=stdio workflowy -- workflowy mcp --expose=all
Remove —expose=all to limit to read-only tools.
Claude Desktop
Add to your configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"workflowy": {
"command": "workflowy",
"args": ["mcp", "--expose=all"]
}
}
}
Restart Claude Desktop and start asking Claude to work with your Workflowy!
MCP Tools for AI Assistants
Read Tools (Safe)
| Tool | Description |
|---|---|
workflowy_get | Get a node and its descendants as a tree |
workflowy_list | List descendants as a flat list |
workflowy_search | Search nodes by text or regex |
workflowy_targets | List shortcuts and system targets (inbox, etc.) |
workflowy_id | Resolve short ID or target key to full UUID |
workflowy_report_count | Find where most of your content lives |
workflowy_report_children | Find nodes with many children |
workflowy_report_created | Find oldest nodes |
workflowy_report_modified | Find stale, unmodified nodes |
workflowy_report_mirrors | Find most mirrored nodes (requires backup) |
Write Tools
| Tool | Description |
|---|---|
workflowy_create | Create new nodes |
workflowy_update | Update node content |
workflowy_move | Move node to a new parent |
workflowy_delete | Delete nodes |
workflowy_complete | Mark nodes complete |
workflowy_uncomplete | Mark nodes incomplete |
workflowy_replace | Bulk find-and-replace with regex |
workflowy_transform | Transform node content (split, trim, shell commands) |
CLI Features
Search Your Entire Outline
# 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
Bulk Search and Replace
# 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'
Some Common CRUD Operations
# 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
Transform Content
# 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"'
Usage Reports
# 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
Data Access Methods
Choose the best method for your use case:
| Method | Speed | Freshness | Offline | Best For |
|---|---|---|---|---|
--method=get | Medium | Real-time | No | Specific items |
--method=export | Fast* | 1 min worst case (due to rate limiting) | No | Full tree access |
--method=backup | Fastest | Stale | Yes | Bulk operations |
*Cached after first fetch
Offline Mode with Dropbox Backup
Enable Workflowy's Dropbox backup and access your data offline:
workflowy get --method=backup
workflowy search -i "project" --method=backup
Installation Options
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 Install
go install github.com/mholzen/workflowy/cmd/workflowy@latest
Download Binary
Download pre-built binaries from GitHub Releases.
Docker
docker run --rm -e WORKFLOWY_API_KEY=your-key ghcr.io/mholzen/workflowy:latest get
From Source
git clone https://github.com/mholzen/workflowy.git
cd workflowy
go build ./cmd/workflowy
Documentation
Examples
AI Assistant Workflows
Ask Claude:
- "Search my Workflowy for all items containing 'meeting notes'"
- "Show me nodes I haven't touched in 6 months"
- "Replace all 'v1' with 'v2' in my Project A folder"
- "What's taking up the most space in my outline?"
- "Which nodes are mirrored the most?"
- "Move this item to my inbox"
CLI Workflows
# 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"
Contributing
Contributions welcome! See the Contributing Guide.
# Development setup
git clone https://github.com/mholzen/workflowy.git
cd workflowy
go test ./...
License
MIT — see LICENSE
Acknowledgments
- Thanks to Andrew Lisy for requesting a method to sandbox write commands
- Thanks to Craig P. Motlin for pointing out mirrors are defined in the backup files
常见问题
io.github.mholzen/workflowy 是什么?
支持创建、更新、完成节点,并提供 regex 搜索替换、dry run、使用报告与数据转换功能。
相关 Skills
前端设计
by anthropics
面向组件、页面、海报和 Web 应用开发,按鲜明视觉方向生成可直接落地的前端代码与高质感 UI,适合做 landing page、Dashboard 或美化现有界面,避开千篇一律的 AI 审美。
✎ 想把页面做得既能上线又有设计感,就用前端设计:组件到整站都能产出,难得的是能避开千篇一律的 AI 味。
网页应用测试
by anthropics
用 Playwright 为本地 Web 应用编写自动化测试,支持启动开发服务器、校验前端交互、排查 UI 异常、抓取截图与浏览器日志,适合调试动态页面和回归验证。
✎ 借助 Playwright 一站式验证本地 Web 应用前端功能,调 UI 时还能同步查看日志和截图,定位问题更快。
网页构建器
by anthropics
面向复杂 claude.ai HTML artifact 开发,快速初始化 React + Tailwind CSS + shadcn/ui 项目并打包为单文件 HTML,适合需要状态管理、路由或多组件交互的页面。
✎ 在 claude.ai 里做复杂网页 Artifact 很省心,多组件、状态和路由都能顺手搭起来,React、Tailwind 与 shadcn/ui 组合效率高、成品也更精致。
相关 MCP Server
GitHub
编辑精选by GitHub
GitHub 是 MCP 官方参考服务器,让 Claude 直接读写你的代码仓库和 Issues。
✎ 这个参考服务器解决了开发者想让 AI 安全访问 GitHub 数据的问题,适合需要自动化代码审查或 Issue 管理的团队。但注意它只是参考实现,生产环境得自己加固安全。
Context7 文档查询
编辑精选by Context7
Context7 是实时拉取最新文档和代码示例的智能助手,让你告别过时资料。
✎ 它能解决开发者查找文档时信息滞后的问题,特别适合快速上手新库或跟进更新。不过,依赖外部源可能导致偶尔的数据延迟,建议结合官方文档使用。
by tldraw
tldraw 是让 AI 助手直接在无限画布上绘图和协作的 MCP 服务器。
✎ 这解决了 AI 只能输出文本、无法视觉化协作的痛点——想象让 Claude 帮你画流程图或白板讨论。最适合需要快速原型设计或头脑风暴的开发者。不过,目前它只是个基础连接器,你得自己搭建画布应用才能发挥全部潜力。