Drafta について
Draftaは、AIアシスタントをDraftaのMarkdownノートライブラリにつなぐローカルMCPサーバーです。ノートの検索や編集に対応し、読み取り専用モードも選べます。stdioのみで通信し、ライブラリのファイルだけにアクセスしてネットワーク通信は行いません。
主な機能
- 01ノートの全文検索と読み取り
- 02ノートの作成、編集、タグ付け、整理
- 03読み取り専用モードでのツール公開
- 04ノートブックとタグの一覧表示
- 05最近のノートをMCPリソースとして公開
- 06ローカルファイルのみ、stdioのみで通信
活用シーン
- 01テキスト、タグ、ステータスでDraftaノートを検索
- 02アシスタントからノートを作成・更新
- 03最近のノートをクライアントのコンテキストに追加
MCP 対応
stdio経由で、ノートの検索・読み取りと任意の書き込みツールをMCPクライアントに公開します。最近のノートはMCPリソースとしても公開され、`--read-only`で書き込みツールを無効化できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
drafta-mcp
Model Context Protocol サーバーです。Drafta のノートライブラリを、Claude Code、Zed、または stdio 経由でサーバーを起動するほかの MCP クライアントから利用できるようにします。
アシスタントはノートを検索して読み取れます。また、--read-only を指定してサーバーを起動しない限り、ノートを作成したり、追記したり、タグを付けたり、ステータスを設定したり、ノートブックに整理したりできます。書き込まれた内容はすべて Drafta アプリが読み取るのと同じ Markdown ファイルに保存されるため、チャットから作成したノートも、自分で入力したノートと区別がつきません。
プライバシー
このリポジトリは、ノートがどこへ送られるのかを自分で確認できるようにするために存在します。答えは、どこにも送られない、です。
- stdio のみ。 サーバーは、起動したクライアントと stdin および stdout 経由で通信します。ソケットを開いたり、ポートで待ち受けたりすることはありません。
- ローカルファイルのみ。 ライブラリディレクトリ内のファイルだけを読み書きし、それ以外にはアクセスしません。アプリの設定、キーチェーン項目、同期状態に触れることはありません。
- ネットワーク通信なし。 このパッケージ内のコードがネットワークリクエストを行うことはありません。
Sources/内にURLSession、Networkフレームワーク、ソケットは一切ありません。依存関係は公式 MCP Swift SDK のみで、stdio トランスポートに使用します。 - アカウントなし、ライセンス確認なし、テレメトリなし。
ノートが公開される範囲は、読み取ったテキストを MCP クライアントがどのように扱うかによって決まります。そこは、接続するクライアントに委ねられます。
ビルド
macOS 13 以降と Swift 6(Xcode 16 以降)が必要です。
swift build -c release
バイナリは .build/release/drafta-mcp です。
swift test # the test suite
インストール
たとえば、バイナリを安定した場所にコピーします。
install -m 755 .build/release/drafta-mcp /usr/local/bin/drafta-mcp
使い方
usage: drafta-mcp [--library <path>] [--read-only]
-l, --library <path> library root (default: ~/Library/Application Support/Drafta/Library)
-r, --read-only publish read tools only
-h, --help print this help and exit
--library を指定しない場合、サーバーは Drafta アプリが使用するライブラリを開きます。クライアントの設定は JSON であり、シェルを介さないため、パス内の ~ はサーバーによって展開されます。不明なフラグはエラーになります。--readonly(誤記)を指定すると、書き込み可能なサーバーは起動しません。
Claude Code
claude mcp add drafta -- /usr/local/bin/drafta-mcp --library "~/Library/Application Support/Drafta/Library"
アシスタントに読み取り専用アクセスを許可するには、末尾に --read-only を追加します。
Claude Code プラグイン
このリポジトリは Claude Code のプラグインマーケットプレイスでもあります。このプラグインは Drafta.app に同梱されている drafta-mcp ヘルパーを起動するため、/Applications に Drafta.app が必要です。
/plugin marketplace add rpegorov/drafta-mcp
/plugin install drafta@drafta
プラグインはデフォルト設定(アプリのライブラリ、読み取りと書き込み)でサーバーを実行します。読み取り専用アクセスにする場合、または Drafta.app が ~/Applications にある場合は、claude mcp add を使ってヘルパーを自分で登録し、--read-only またはフルパスを指定してください。詳しくは plugins/drafta/README.md をご覧ください。
Claude Desktop(MCPB)
Releases ページから drafta-mcp.mcpb をダウンロードし、ダブルクリックします。このバンドルにはバイナリは含まれていません。Drafta.app に同梱されている drafta-mcp ヘルパーを起動するため、/Applications に Drafta.app が必要です。scripts/build-mcpb.sh を使ってソースからビルドできます。
Codex
codex plugin marketplace add rpegorov/drafta-mcp
codex plugin add drafta@drafta
プラグインは Drafta.app 内のヘルパーを起動するため、/Applications に Drafta.app が必要です。
DeepSeek Harness(DSH)
plugins/dsh-drafta は、Drafta ヘルパー用の @deepseek-ai/dsh-mcp-client の行(dsh-drafta-mcp)を追加します。ほかのローカルプラグインと同じように、link: 依存関係を使ってプロファイルの package.json にパッケージを追加し、dsh.profile.bundles に記載します。
{
"dependencies": { "dsh-drafta": "link:/path/to/drafta-mcp/plugins/dsh-drafta" },
"dsh": { "profile": { "bundles": ["dsh-drafta"] } }
}
すでに手動で Drafta を DSH に追加している場合は、どちらか一方を削除してください。両方を登録すると、どちらも drafta という名前のサーバーを登録します。
Zed
settings.json 内で設定します。
{
"context_servers": {
"drafta": {
"command": "/usr/local/bin/drafta-mcp",
"args": ["--library", "~/Library/Application Support/Drafta/Library"]
}
}
}
ツール
読み取りツール(常に公開):
| ツール | 説明 |
|---|---|
search_notes | タイトル、本文、タグを対象に全文検索します。tag、status、notebookで絞り込み可能で、新しいものから順に表示します。limitは最大100です。クエリが空の場合は、最近のノートを一覧表示します。 |
read_note | IDまたは正確なタイトルを指定して、ノートを1件全文表示します。 |
list_notebooks | ノートブックとその階層を表示します。 |
list_tags | 使用中のすべてのタグを表示します。 |
formatting_guide | DraftaがレンダリングするMarkdown形式を確認できます。コールアウト、mermaid、タスクリスト、タグ、wikiリンク、数式に対応しています。 |
書き込みツール(--read-onlyでは公開されません):
| ツール | 説明 |
|---|---|
create_note | 新しいノートを作成します。ノートブックを指定しない場合は受信トレイに追加されます。tagsとstatusは任意です。 |
append_to_note | テキストを末尾に追加します。追加前のテキストはリビジョンとして保持されます。 |
update_note | 本文を置き換えます。置き換え前のテキストはリビジョンとして保持されます。 |
set_note_status | active、onHold、completed、droppedまたはnoneに設定します。 |
tag_note | タグを追加します(配列、またはカンマ区切りの文字列)。 |
create_notebook | ノートブックを作成するか、同名のものがあれば既存のノートブックを返します。 |
trash_note | ノートをゴミ箱に移動します。ファイルは保持されます。 |
ノートはMCPリソース(drafta://note/<uuid>、最新の200件)としても公開されるため、クライアントはツールを呼び出さずにノートをコンテキストとして添付できます。
ライブラリ形式
ライブラリは通常のディレクトリです:
Library/
library.json notebooks (pretty-printed, sorted JSON)
notes/<UUID>.md one note: YAML front matter + Markdown body
revisions/<UUID>/<ms>.md previous bodies of a note, one file per revision
editor-hold.json written by the app while it holds unsaved text
これらのファイルを自分で読み書きする場合に知っておくとよいこと:
- タグは保存されません。 読み込むたびに本文中の
#tagsから抽出されます。別途追加されたタグだけが、フロントマターフィールドextraTagsに保存されます。 - タイトルは本文の1行目です。 本文にタイトルがない場合、
create_noteはタイトルを# headingとして書き込みます。 - ノートブックのないノートは孤立ノートです。 「すべてのノート」にのみ表示されるため、新しいノートは受信トレイ(存在しない場合は作成されます)に格納されます。
- 編集履歴は保持されます。
update_noteとappend_to_noteは置き換え前のテキストをrevisions/に保存します(ノートごとに30件)。アプリでは履歴として表示されます。 - 開いているノートは保護されます。 Draftaアプリがノートの未保存テキストを保持している間、そのノートは
editor-hold.jsonに記録されます。update_noteとappend_to_noteはそのノートの本文への書き込みを拒否し、その旨を通知します。書き込みが成功したと報告した直後にアプリが上書きする事態を防ぎます。 library.jsonはファイル調整のもとで編集されます。 そのため、同時にアプリが追加したノートブックが失われることはありません。
アプリの実行中・停止中を問わず、サーバーは動作します。アプリの実行中は、ファイルウォッチャーがサーバーによる書き込みを検出します。
Drafta.appとの関係
Drafta.appは、アプリバンドル内にdrafta-mcpの独自コピーを同梱しています。このリポジトリは、そのバイナリではありません。 同じサーバーを独立してスナップショットしたもので、コミュニティが編集できます。ツール名、引数、ディスク上の形式は同じですが、アプリのライセンスチェックは削除されており、ここでの書き込みは--read-onlyによってのみ制限されます。両者は別々に開発されているため、内容に差異が生じる可能性があります。アプリがライブラリ形式を変更しても、このスナップショットには自動的に反映されません。
貢献を歓迎します。
ライセンス
Apache License 2.0 — LICENSEとNOTICEをご覧ください。
Кратко по-русски
drafta-mcp — MCP-сервер для библиотеки заметок Drafta. Работает только через
stdio, читает и пишет только файлы в каталоге библиотеки и не делает ни одного
сетевого запроса. Сборка: swift build -c release. Подключение к Claude Code:
claude mcp add drafta -- /путь/к/drafta-mcp --library <путь к библиотеке>.
Флаг --read-only оставляет только инструменты чтения. Это независимый снимок
сервера, а не бинарник, который поставляется внутри Drafta.app.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。