# workflowy

Connects your Workflowy outline to an AI assistant: search, create and edit nodes, run usage reports, work offline from a backup.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 72
- Author: mholzen
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/mholzen/workflowy
- Updated: 2026-08-14
- HTML: https://affpapa.org/en/nevibecode/mcp/workflowy

## What it does

Written in Go, this tool ships as both an MCP server and a CLI. Through MCP the assistant gets read tools (`workflowy_get`, `workflowy_list`, `workflowy_search`, `workflowy_report_count` and others) plus write tools (`workflowy_create`, `workflowy_update`, `workflowy_move`, `workflowy_replace`, `workflowy_transform`). Search takes regular expressions, and replace supports a dry run and interactive confirmation.

Data comes from one of three methods: `--method=get` for live single nodes, `--method=export` for the full tree, `--method=backup` for offline work from a Dropbox backup. Backup is the fastest, though the data is stale. Reports show where most of your content sits, which nodes have the most children, what has not been touched in a while, and what gets mirrored most.

You need a Workflowy API key, either in `~/.workflowy/api.key` or passed as `WORKFLOWY_API_KEY`. The `--write-root-id` flag confines writes to one subtree. Drop `--expose=all` and the server exposes read-only tools only. The `report mirrors` command needs a backup to be enabled.

## Requirements
- Needs: Docker
- Environment variables: `WORKFLOWY_API_KEY` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env WORKFLOWY_API_KEY=<WORKFLOWY_API_KEY> --transport stdio workflowy -- docker run -i --rm -e WORKFLOWY_API_KEY ghcr.io/mholzen/workflowy:0.8.1
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add workflowy --env WORKFLOWY_API_KEY=<WORKFLOWY_API_KEY> -- docker run -i --rm -e WORKFLOWY_API_KEY ghcr.io/mholzen/workflowy:0.8.1
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "workflowy": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "WORKFLOWY_API_KEY",
                "ghcr.io/mholzen/workflowy:0.8.1"
            ],
            "env": {
                "WORKFLOWY_API_KEY": "<WORKFLOWY_API_KEY>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "workflowy": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "WORKFLOWY_API_KEY",
                "ghcr.io/mholzen/workflowy:0.8.1"
            ],
            "env": {
                "WORKFLOWY_API_KEY": "<WORKFLOWY_API_KEY>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e WORKFLOWY_API_KEY=<WORKFLOWY_API_KEY> workflowy docker run -i --rm -e WORKFLOWY_API_KEY ghcr.io/mholzen/workflowy:0.8.1
```
Replace <…> with your own values

## When to use it
- find every task containing a given word across the outline
- replace labels in nodes by regex after previewing the changes
- split a node's content into children on line breaks
- spot nodes that have not been modified in a long time
- add a task to the inbox from the terminal

## Example prompts
- Search my Workflowy for every node containing "report" and show them as a tree
- Replace `TASK-` with `ISSUE-` across all nodes, show me the diff first
- Split the content of node `1bdae4aecf00` into child nodes on line breaks

## Similar
- [Reactive Resume](https://affpapa.org/en/nevibecode/mcp/reactive-resume.md) — MCP server · ★ 44874
- [screenpipe](https://affpapa.org/en/nevibecode/mcp/screenpipe.md) — MCP server · ★ 22053
- [Inbox Zero](https://affpapa.org/en/nevibecode/mcp/inbox-zero.md) — MCP server · ★ 12791
- [kaneo](https://affpapa.org/en/nevibecode/mcp/kaneo.md) — MCP server · ★ 9602
- [Mindwtr](https://affpapa.org/en/nevibecode/mcp/mindwtr.md) — MCP server · ★ 2318
- [Azure DevOps (ADO)](https://affpapa.org/en/nevibecode/mcp/azure-devops-ado.md) — MCP server · ★ 2067

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
