mcpField
W
Workflowy

Workflowy

ローカル
github.com/jbeshir生産性13 日前に更新

Workflowy について

Workflowyは、MCPクライアントからWorkflowyのノードを読み書きするMCPサーバーです。アウトラインの検索や整理に対応し、検索結果にパンくず形式の階層情報を付け、APIリクエストを抑えるためエクスポートをキャッシュします。

主な機能

  1. 01ノード名とノートの検索
  2. 02ノード詳細と子ノードの取得
  3. 03ノードの作成、更新、削除、移動
  4. 04ノードの完了と未完了への変更
  5. 05システムの場所とユーザーショートカットの一覧
  6. 06検索結果へのパンくずパスの付加

活用シーン

  1. 01キーワードや完了日でタスクを検索
  2. 02指定した親ノードの下に項目を作成
  3. 03ノード階層の整理と内容の更新
  4. 04アウトライン内のノード位置を確認

MCP 対応

stdio経由で、検索、ノード管理、ターゲット参照のためのWorkflowy読み書きツールをMCPクライアントに提供します。読み取りにはエクスポートキャッシュを使い、書き込み後にキャッシュを無効化します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbworkflowy-mcp.mcpb

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

workflowy-mcp

Workflowyへの完全な読み書きアクセスを提供するMCPサーバーです。Claude DesktopやClaude Codeなど、MCPに対応したあらゆるクライアントから、ノードの検索、作成、整理、移動、完了ができます。サーバーはstdioで通信し、APIのレート制限を超えないようにWorkflowyのエクスポートエンドポイントをキャッシュします。

はじめに

必要条件
設定
変数必須説明
WORKFLOWY_API_TOKENはいWorkflowy APIトークン
WORKFLOWY_API_URLいいえカスタムAPI URL(デフォルト:https://workflowy.com)
ソースからインストール

Go 1.27.3以降が必要です。

go install github.com/jbeshir/mcp-servers/workflowy/cmd/workflowy-mcp@latest
Docker
docker build -t workflowy-mcp ./workflowy
docker run -e WORKFLOWY_API_TOKEN=<your-token> workflowy-mcp
Claude Desktop

Claude Desktopの設定(claude_desktop_config.json)に追加します:

{
  "mcpServers": {
    "workflowy": {
      "command": "/path/to/workflowy-mcp",
      "env": { "WORKFLOWY_API_TOKEN": "<your-token>" }
    }
  }
}
Claude Code
claude mcp add workflowy -- env WORKFLOWY_API_TOKEN=<your-token> /path/to/workflowy-mcp

ツール

ツール説明
search_nodesキーワードおよび/または完了日の範囲(completed_after/completed_before、Unix秒)で、名前とノートのフィールドを対象にノードを検索します
get_nodeIDでノードの詳細をすべて取得します
list_children親ノードの子ノードを優先度順に一覧表示します
create_node新しいノードを作成します
update_node既存ノードのプロパティを更新します
delete_nodeノードを削除します
move_nodeノードを別の親ノードに移動します
complete_nodeノードを完了としてマークします
uncomplete_nodeノードを未完了としてマークします
list_targetsシステム上の場所(home/inbox)とユーザーのショートカットを一覧表示します

主な概念

  • ノード — Workflowyの基本単位です。すべての箇条書き、見出し、ToDo、コードブロックがノードです。ノードはツリーを形成し、各ノードは子を持つことができ、ルートを除くすべてのノードには親があります。
  • ターゲット — 名前付きのシステム上の場所(home、inbox)と、ユーザーが定義したショートカットです。親IDを指定できる場所ではどこでもターゲットキーを使用できるため、UUIDがわからなくても受信トレイにノードを作成できます。
  • レイアウトモード — 各ノードには表示モードがあります:bullets(デフォルト)、todo、h1、h2、h3、code-block、quote-block。
  • パンくずリストのパス — 検索結果には、祖先名の完全な連鎖(例:Projects > Backend > Auth)が含まれ、ノードが階層のどこにあるかを把握できます。
  • 階層的な完了状態 — 親ノードを完了にすると、すべての子ノードも暗黙的に完了します。検索結果のフィルタリング時、サーバーはこの状態を考慮するため、完了日時が設定されていない子ノードでも、完了した親の配下にあれば完了済みとして扱われます。

アーキテクチャの概要

graph LR
    Client["MCP Client"]
    Server["MCP Server<br/>10 tools"]
    Cache["Export Cache<br/>TTL 60s+"]
    HTTP["HTTP Client<br/>Bearer token auth"]
    API["Workflowy REST API"]

    Client -->|"JSON-RPC over stdio"| Server
    Server -->|"reads"| Cache
    Server -->|"writes"| HTTP
    Cache -->|"cache miss"| HTTP
    HTTP -->|"HTTPS"| API

サーバーは3つの内部レイヤーで構成されています:

  • MCPサーバー(internal/server/)— 10個のツールを登録し、引数を解析して、パンくずリストのパスを含むJSONレスポンスを整形します。
  • エクスポートキャッシュ(internal/cache/)— TTLベースのノードエクスポート全体のキャッシュです。ダブルチェックロック(RWMutex)を使用して、同時に行われる取得を集約します。エクスポートエンドポイントに対するWorkflowyのレート制限を守るため、TTLの最小値は60秒です。
  • HTTPクライアント(internal/client/)— シンプルなRESTクライアントです。すべてのリクエストでBearerトークン認証を使用します。読み取り操作はキャッシュを介し、書き込み操作はAPIを直接呼び出した後、キャッシュを無効化します。

データフロー

読み取りパス(検索、取得、一覧表示)
sequenceDiagram
    participant C as MCP Client
    participant S as MCP Server
    participant Ca as Export Cache
    participant H as HTTP Client
    participant A as Workflowy API

    C->>S: search_nodes(query)
    S->>Ca: GetAllNodes()
    alt Cache hit (within TTL)
        Ca-->>S: Cached nodes
    else Cache miss or expired
        Ca->>H: ExportNodes()
        H->>A: GET /api/v1/nodes-export
        A-->>H: All nodes (JSON)
        H-->>Ca: []Node
        Ca-->>S: Fresh nodes
    end
    S-->>C: Matching nodes with breadcrumb paths
書き込みパス(作成、更新、削除、移動、完了)
sequenceDiagram
    participant C as MCP Client
    participant S as MCP Server
    participant Ca as Export Cache
    participant H as HTTP Client
    participant A as Workflowy API

    C->>S: create_node(name, parentId)
    S->>H: CreateNode(request)
    H->>A: POST /api/v1/nodes
    A-->>H: Created node ID
    H-->>S: CreateNodeResponse
    S->>Ca: Invalidate()
    S-->>C: "Created node with ID: ..."

書き込み操作はキャッシュを完全にバイパスし、Workflowy APIを直接呼び出した後、キャッシュを無効化します。これにより、次回の読み取り時に最新のデータが取得されます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。