MCP サーバー(AI エージェント)

LightNote にはヘッドレスの MCP(Model Context Protocol)サーバーが含まれ、 ワークスペースを AI エージェント向けのツールに変えます(Claude Desktop、 Claude Code、Cursor、および MCP を話すあらゆるクライアント)。エージェントは ファイルの読み書き、検索、表形式データとデータベースのクエリ、タスクの操作、Git の 利用、HTTP リクエストの発行ができます — すべてフォルダーに限定されます (ディレクトリジェイル: .. を含む、あるいはルート外のパスは拒否)。 トランスポートは stdin/stdout 上の JSON-RPC 2.0 で、セッションごとに軽量な lnote.exe プロセスが起動し、エディターのウィンドウとは別になります。

ワンクリックのショートカット: AI → このフォルダーで AI を有効にする を選ぶと、LightNote は MCP を有効にして .mcp.json を一度に書き込みます(クリックが同意になります)。フォルダーで AI が既に有効な場合、この項目は このフォルダーの AI を設定… になり、ワークスペースの設定 を開きます。

2層のセキュリティ:(1)サーバーはそのフォルダーでオプトインして いる場合のみ起動します。(2)すべてのツールはワークスペースのルートに固定されます。 さらに、各ツールには注釈(読み取り専用・破壊的・冪等・「外部世界に触れる」) が付き、AI クライアントは呼び出す前にリスクを評価できます。

設定の手順

  1. フォルダーで MCP を有効にする。ツール → ワークスペース → ワークスペースの設定...で このワークスペースで MCP を有効にするをチェックします。このオプトインが ないとサーバーは起動を拒否します(これが主要なゲートです)。あるいはコマンド ラインから: lnote --mcp-enable "C:\Path\to\workspace" (オフにするには --mcp-disable)。
  2. lnote.exe のパスを見つける。これは lightnote.exe と同じフォルダー(アプリのインストールフォルダー)にあります。UI を持たない 「slim」なコンソール実行ファイルで、エージェントが実行するのはこれです。
  3. AI クライアントにサーバーを登録する。コマンドを lnote.exe に向け、--mcp の後にワークスペースのフォルダーを渡します。Claude Desktop / Cursor などが使う形式で:
{
  "mcpServers": {
    "lightnote": {
      "command": "C:\\Path\\to\\lnote.exe",
      "args": ["--mcp", "C:\\Path\\to\\workspace"]
    }
  }
}

設定のヒント:

  • JSON 内のバックスラッシュは例のように二重にする必要があります (C:\\Users\\...\\lnote.exe)。
  • 複数のワークスペースを公開するには、フォルダーごとに別々の名前で エントリを追加します("lightnote-projectA"、 "lightnote-projectB")。それぞれ自分のルートを指します。
  • 設定を保存したら、AI クライアントを再起動してサーバーを起動させます。 接続すると、エージェントは lightnote_* ツールを一覧するはずです。 「ワークスペースのファイルを一覧して」と頼んで動作を確認しましょう。
  • Claude Code(CLI)では、同じサーバーを次のように登録できます: claude mcp add lightnote -- "C:\Path\to\lnote.exe" --mcp "C:\Path\to\workspace"。

データベースのパスワード(任意)。db_query ツールは .lnc 接続を開きます。パスワードがセキュアフレーズで暗号化されている 場合は、サーバーブロックの環境変数 LNOTE_PASSPHRASE でフレーズを渡します (コマンドライン引数では決して渡さないこと)。パスワードが「尋ねる」モードの接続は 無人では使えません。

LightNote が開いているときは、データベースはウィンドウを経由します。アプリのターミナルで動く AI の CLI(たとえば Claude Code)は、すでに開いているセッションを通じてクエリします。Oracle を含むどのデータベースでも、入力済みのパスワードと起動済みの SSH トンネルがそのまま使えます。接続が閉じている場合はウィンドウでパスワードを尋ねます(そこで断ると AI も断られます)。AI ツールがクエリすると、ステータスバーに表示されます。大きなデータベースでクエリを書くとき、AI は db_search_objects で名前からテーブルを探し(すべてのスキーマが対象)、db_list_objects でコメントと推定行数付きの一覧を読み、db_describe で JOIN の手がかりになる外部キーを含めて複数のテーブルをまとめて説明します。アプリを閉じているときは、上記のとおりです。

AI によるクエリは接続ごとのオプトインです。フォルダーで MCP を有効にしても接続は公開されません。各 .lnc は、接続ダイアログで 「AI によるクエリを許可 (MCP)」 がオンのときだけ db_query に応答します。アクセスは読み取り専用(SELECT)です。この許可はこのコンピューターのフォルダー設定に保存されます。.lnc ファイルには書き込まれず Git でも共有されないため、AI がファイルを編集して有効にすることはできません。接続のサーバー、データベース、ユーザー、トンネルを変更すると、オプションをもう一度オンにするまで許可は停止します。ファイル型のデータベース(SQLite、DuckDB)はワークスペース内にある必要があり、DuckDB 経由で AI が読めるのはワークスペース内のファイルだけで、LightNote を開いている間はファイルを一切読めません。

エージェントによるデータベースからのエクスポート。 クエリだけでなく、db_export で SELECT をファイルに実体化できます(Parquet、CSV、JSON、.xlsx)—応答に収まらない大きな結果に便利です。同じ 3 つの安全策がこの順で適用されます:クエリは読み取り専用、接続には 「AI による照会を許可 (MCP)」 のオプトインが必要(パスワードを復号する前に確認)、出力先はワークスペースの内側。大きなエクスポートはシステムの一時フォルダーを作業領域として使い、おおむね結果と同じ容量を消費します—ディスクの空き容量を確保してください。

利用できるツール

エージェントはクライアントのプレフィックス付きでツールを見ます(例: lightnote_read_file)。カテゴリ別:

  • ファイル: read_file(行範囲は任意)、write_file、 edit_file(ファイル全体を書き換えずに正確なスニペットを置換)、 append_file、list_files、move_file、 make_dir、delete_file(ごみ箱へ。完全削除では ありません)。
  • 検索とナビゲーション: search_files(ripgrep。サブフォルダー /glob フィルターと上限付き)、list_symbols(ファイルの関数/クラスの アウトライン)、open_in_editor(LightNote のウィンドウが開いていれば ファイルを開く/フォーカス)。
  • データと SQL: query(Parquet/CSV/JSON 上の DuckDB SQL、tsv/json/markdown 出力)、describe_table(スキーマ + 統計、行は 出さない)、export_query(SELECT を COPY でファイルに 実体化)、sqlite_query(.sqlite/.db 上の SQL)、db_list_connections(ワークスペースの .lnc を 一覧)、db_query(.lnc 接続上の読み取り専用 SQL)。 結果を応答ではなくファイルに出力するには db_export(Parquet/CSV/JSON/.xlsx)。
  • さらに: search_notes(質問に対して最も関連性の高いノートの抜粋を取得 — AI チャットと同じエンジン)、list_links(ノートの発リンクを、解決済みか壊れているかで表示)、audit_vault_links(保管庫全体の壊れたリンクと孤立ノート)、list_note_templates と create_note の template パラメータ、list_due_tasks(全プロジェクトで今日締切または期限切れのタスク)、xlsx_read(.xlsx シートを TSV として読み取り)、data_diff(2つの表形式ファイルを比較)、そしてデータベースのカタログ db_list_objects/db_describe(テーブル/ビューと、テーブルの列・キー・DDL — db_query と同じ条件)。さらに note_export(ノートを docx、odt、epub、LaTeX、Typst、HTML、reStructuredText、AsciiDoc、Org、MediaWiki、Notebook、あるいは別の方言の Markdown に書き出し —— ウィンドウなしで、lnote note-export からも)。そして note_import(逆方向:docx、odt、epub、rtf、HTML、tex を、見出し・リスト・表・強調・リンク・数式・画像ごと、元ファイルの隣にノートとして取り込み —— lnote note-import からも)。 そして folder_export(フォルダーごと HTML サイト・文書のセット・Markdown になり、リンクも書き換えられます —— lnote folder-export からも)。
  • 圧縮ファイル: zip_list(.zip/.isx のメンバーを一覧)と zip_read(メンバーをテキストとして読む)— ディスクに展開せずに読み取ります。
  • タスク: list_task_projects(ワークスペースの .lnt タスクプロジェクトを一覧)、list_tasks、 list_task_statuses(ボードの列)、create_task、 update_task(タイトル、工数、列、優先度、日付、%、タグ、チェックリスト、アーカイブ)、update_task_status(列を移動)、 delete_task、task_note(タスクの .md ノートの読み書き)。1 つのワークスペースに .lnt プロジェクトが複数あってもよく、project パラメーター(list_task_projects が返す name。1 つだけなら省略可)でどれを操作するか選びます。id/status_id はセッション内の識別子です。取得のために .lnt の内部ファイルを読まず、タスクツールを使ってください。
  • ノート(PKM): create_note(.md ノートを作成)、 append_daily_note(今日のノートにキャプチャを追記)、 remember (あなたについての持続的な事実を記憶ノートに保存), list_backlinks(あるノートを参照しているノート)、 list_note_tags と search_by_tag(vault の #ハッシュタグ とそれを使うノート)、add_task (期限・タグ付きのタスクを作成。タイトルに自然言語を受け付けます)。
  • Git: git_status、git_log、 git_diff、git_restore。
  • Web と通知: http_request(HTTP リクエストを発行して ステータス/ヘッダー/本文を返す)、notify(開いているウィンドウの トレイに通知を表示 — エージェントが完了を知らせるのに便利)。
  • AI プロキシ: list_ai_models と ask_ai (下記)。
  • LightNote 自身: help_lookup(このヘルプをセクションまたは語句で、指定の言語で読む)と markdown_reference(アプリが描画する Markdown の正確な構文)。接続時にはツールを分類したサーバーの説明も届き、ヘルプと Markdown のリファレンスはリソースとしても見えます(lightnote://help/… と lightnote://markdown/…)。

サーバーはワークスペースのファイルを MCP のリソースとしても公開します (resources/list と resources/read)。read_file を呼ぶ代わりにファイルを「添付」したいクライアント向けです。

あなたのプロンプトライブラリ(ワークスペースの Prompts/ フォルダー)は MCP のプロンプトとして公開されます(prompts/list と prompts/get)。Claude Code では各プロンプトがスラッシュコマンド /mcp__lightnote__<名前> になり、AI CLI 内ですぐ使えます。

書き込みのセーフティネット。 ファイルを上書き(write_file/edit_file)または削除(delete_file)する前に、サーバーは以前のバージョンをローカル履歴(エディタと同じセーフティネット)に保存します。Git リポジトリの外でも、エージェントが行った変更を元に戻せます。

各ツールは読み取りか書き込みかを明示します。MCP のアノテーション (readOnlyHint/destructiveHint)に加えて、説明の先頭に [read-only]・[writes]・[destructive] のバッジが付きます。許可リストを安全に組むのに便利です。

AI プロキシ(別のモデルに委譲)

MCP 列にチェックして登録した API プロバイダーは、2つの ツールでエージェントに公開されます: list_ai_models(許可されたモデルを id・名前・モデルで一覧)と ask_ai({model, prompt})。これに より、メインのエージェントはサブタスクをより安価または専門的なモデルに 委譲できます。呼び出しは起動中の LightNote が仲介します(MCP の lnote.exe が内部ブリッジ経由でアプリのウィンドウに要求を転送): API キーはコンピューターから決して出ず、エージェントにも届きません。 LightNote が開いていない場合、ツールは開くよう促すエラーを返します。

目次

編集

ツール

自動化(AI / スクリプト)

リファレンス