mcpField
N
Nelson MCP — LibreOffice

Nelson MCP — LibreOffice

ローカル
github.com生産性344 週間前に更新

Nelson MCP — LibreOffice について

Nelson MCP は、開いている Writer と Calc のドキュメントを MCP サーバーとして公開する LibreOffice 拡張機能です。外部の AI クライアントが HTTP 経由で接続し、ドキュメントの読み取りと編集を行えます。既定では localhost のみにバインドされ、アクセストークンとツールエンドポイントの設定に対応しています。

主な機能

  1. 01ドキュメント種別に応じてフィルタされる 145 個のツール
  2. 02Writer、Calc、Draw、Impress に対応
  3. 03選択したツールのみを公開するカスタムエンドポイント
  4. 04Claude Code、Gemini CLI、OpenCode の起動機能
  5. 05既定で localhost のみ、任意のアクセストークン設定
  6. 06AI 画像生成とトンネル機能(任意)

活用シーン

  1. 01AI クライアントから開いている Writer のレポートを直接編集する
  2. 02Calc シートのセル、数式、グラフを読み取りおよび変更する
  3. 03少数のツールだけを含む制限付きエンドポイントを小型モデルに提供する

MCP 対応

Nelson MCP は LibreOffice 内で HTTP 形式の MCP サーバーを動作させ、既定では http://localhost:8766/mcp で待ち受けます。ドキュメントの読み取り、編集、書式設定のツールを MCP クライアントに公開します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Nelson MCP

CI

ドキュメントを MCP サーバーに変える LibreOffice 拡張機能です。外部の AI クライアントが HTTP 経由で接続し、ドキュメントツールへ完全にアクセスできます — 読み取り、編集、ナビゲーション、書式設定など。

MCP 互換のあらゆるクライアントで動作します:Claude Code、OpenCode、Goose、ollmcp など。

仕組み

Nelson MCP は LibreOffice 内で HTTP サーバーを実行し、Model Context Protocol を話します。AI エージェントが接続し、ツールを使って開いているドキュメントを操作します — コピー&ペーストも、ファイルのエクスポートも不要です。

┌─────────────────┐     HTTP/MCP     ┌────────────────┐
│  AI Client      │ ───────────────► │  LibreOffice   │
│  (Claude Code,  │    tools/call    │  + Nelson MCP  │
│  OpenCode…)     │ ◄─────────────── │                │
└─────────────────┘   tool results   └────────────────┘

実際の画面

エージェントが空の Writer ドキュメントに四半期レポートを、1 回のツール呼び出しずつ書き込んでいきます:

エージェントが Nelson を通じて LibreOffice Writer で Q3 レポートを構築する様子:テキスト、見出しの色、表の網掛け、フッター、コメント。各呼び出しは Nelson MCP サイドバーに一覧表示される

完成したレポート:Markdown としてのコンテンツ、style_set による見出しの色、網掛けされた表、Page {page} of {pages} フッター、採用行へのコメント。Nelson MCP サイドバーはすべての呼び出しを記録します。呼び出しを選択すると、その呼び出し元、ステータス、所要時間、パラメータを確認できます。

エージェントが構築した Writer レポートと、各ツール呼び出しを一覧表示する Nelson MCP サイドバー

すべては Tools > Options > Nelson で設定します。たとえば、HTTP ページではポート、バインドアドレス、アクセストークンを設定します:

Options > Nelson > Http:サーバーポート、バインドアドレス、アクセストークン、許可するブラウザオリジン

機能

  • 145 個のドキュメントツール — コンテンツの読み取り、テキストの編集、スタイルの管理、画像の挿入、表の操作、グラフ、条件付き書式、ハイパーリンク、変更履歴、ページヘッダー/フッター、見出しのナビゲーション、検索など。リストはアクティブなドキュメントの種類でフィルタリングされるため、クライアントには該当するものだけが表示されます(Writer ドキュメントでは 97 個、Calc では 50 個)
  • 自己構成するエージェント — 設定 API を有効にすると、エージェントは Nelson の設定(読み取り制限、交換フォーマット、自身の変更に付く名前)を自ら読み取り、変更できます。一方で、ユーザーを保護する設定は Options に限定されたままです。エージェントに Nelson を構成させるを参照してください
  • カスタム MCP エンドポイント — エージェントが必要とするツールだけを公開します。組み込みプリセット(minimal、writer-edit、writer-read、calc、gallery)を使うか、独自のフィルタリング済みエンドポイントを作成できます
  • Writer、Calc、Draw、Impress — ツールはアクティブなドキュメントの種類に適応します
  • Calc =PROMPT() — スプレッドシートのセルから直接 LLM を呼び出します
  • 組み込みランチャー — LibreOffice からワンクリックで Claude Code、Gemini CLI、OpenCode を起動できます。Nelson が MCP 設定、プロンプトの注入、作業ディレクトリのセットアップを自動的に処理します
  • AI 画像生成 — Stable Diffusion(A1111/Forge)、OpenAI、AI Horde を使ってテキストプロンプトから画像を生成・編集します。Automatic1111 の検出/インストール/起動をワンクリックで実行
  • 初心者にやさしいセットアップ — すべてのツールにインストールボタン、既存インストールの自動検出、ガイド付き設定が付属します。手動で編集する設定ファイルはありません
  • トンネル — ngrok、Cloudflare、bore、Tailscale 経由で MCP サーバーを外部に公開します。アクセストークンで保護されます
  • SSL — 自動生成された証明書によるオプションの HTTPS
  • モジュール式 — 各機能は独自の設定、サービス、ツールを持つ自己完結型のモジュールです

インストール

  1. リリースページから最新の .oxt をダウンロードします
  2. LibreOffice で:Tools > Extension Manager > Add
  3. LibreOffice を再起動します
  4. MCP サーバーが自動的に起動します(デフォルト:http://localhost:8766/mcp)

クイックスタート

インストールしたら、MCP クライアントをサーバーに向けます。

{
  "mcpServers": {
    "nelson": {
      "type": "http",
      "url": "http://localhost:8766/mcp"
    }
  }
}

LibreOffice でドキュメントを開き、AI クライアントに読み取りまたは編集を依頼します。

AI エージェント向け: QUICKSTART.md を参照してください — LLM エージェントがドキュメントを検出し、構造をたどり、ツールを効果的に使用する方法を説明するステップバイステップのガイドです。

エージェントに Nelson を設定させる

エージェントは、いちいち止まってあなたにオプションを開くよう頼む必要はありません。config API を有効にすると、同じ HTTP サーバー経由で Nelson の設定を自分で読み取り、変更でき、変更はすぐに適用されます。たとえば、次のことができます:

  • 長いドキュメントの前に読み取り制限を引き上げる;
  • 書式設定されたドキュメントを書き換えるために HTML に切り替える;
  • 自分の変更履歴に自分の名前を付けて署名する。

ツール > オプション > Nelson > Http > Config API を有効化で有効にし、次に:

# Read one setting, a module, or everything
curl 'http://localhost:8766/api/config?key=writer.max_content_chars'
curl 'http://localhost:8766/api/config?module=writer'

# Change several at once
curl -X POST http://localhost:8766/api/config \
     -H 'Content-Type: application/json' \
     -d '{"writer.max_content_chars": 200000, "writer.change_author": "AI agent"}'

アクセストークンが設定されたら、-H 'Authorization: Bearer <token>' を追加します。

この API は Nelson の動作を調整します。ただし、あなたを保護するものを無効にすることはできません。これらの設定はオプションに予約されており、いずれかに触れるリクエストは 403 で拒否され、何も変更されません:

  • http.*: トークン、アドレス、許可されたオリジン、SSL、および config API スイッチ自体;
  • tunnel.* および debug.*;
  • launcher.*: Nelson が実行するコマンド;
  • *.instances: ツールがアクセスできるフォルダー、および AI プロバイダーのエンドポイントとキー;
  • core.force_track_changes。

トークンや API キーなどの機密情報は *** として読み戻されます。

セキュリティ

Nelson と通信できる者は誰でも、LibreOffice で開いているすべてのドキュメントを読み取り、編集でき、あなたのアカウントが読み取れるあらゆるファイルを開くことができます。それと他の人々の間に立ちはだかるもの:

状況保護
デフォルト: ローカルのみサーバーは localhost にバインドします。お使いのマシン上の MCP クライアントには何も必要ありません。
ブラウザー内の Web ページ拒否されます。あなたが訪れるページは localhost:8766 を呼び出せません: Allowed Browser Origins にリストしない限り、ブラウザーのオリジンは拒否されます。
アクセストークンが設定されているすべてのリクエストがそれを運ぶ必要があります — Authorization: Bearer <token>、またはヘッダーを設定できないクライアント向けの ?token=<token>。組み込みのランチャーはあなたに代わってそれを渡します。
ネットワークから、またはトンネル経由で到達可能Nelson は、トークンが設定されるまで、localhost 以外にバインドすることを拒否し、トンネルの起動を拒否します。

トークンはオプション > Nelson MCP > HTTP > アクセストークンで設定します。再起動なしで適用されます。config API はそれを変更できず、他の保護設定も変更できません (上記参照) が、それ以外は読み取り、変更します: 外部から到達可能なマシンでは、これとデバッグ API をオフにしておいてください。

トンネル経由で Nelson を公開する前に、docs/howto/connect-chatgpt-tailscale.md の冒頭にある警告をお読みください。

モジュール

約 30 のモジュールがあります。主なもの:

モジュール説明
coreドキュメントアクセス、設定、イベント、書式設定
docすべてのドキュメントタイプに共通のツール — 開く、保存、閉じる、エクスポート、印刷、元に戻す/やり直す、ハイパーリンク
writerコンテンツ編集、コメント、スタイル、表、画像、ヘッダー/フッター、変更履歴
writer.nav見出しツリー、ブックマーク、近接ナビゲーション
writer.indexSnowball ステミングによる全文検索
calcセル、シート、数式、グラフ、条件付き書式、コメント
draw図形、ページ、スライド、プレースホルダー、マスタースライド、トランジション (Draw および Impress)
images / documents画像およびドキュメントのギャラリープロバイダー (既存のアセットを閲覧および再利用)
ai_imagesAI 画像生成および編集 (Stable Diffusion、OpenAI、AI Horde)
aiCalc の =PROMPT() 関数の背後にある AI テキストプロバイダー
launcherLibreOffice から Claude Code、Gemini CLI、または OpenCode を起動
panelサイドバーパネル — MCP アクションログ、実行中のジョブ
batch変数チェーンによるマルチツール実行
httpオプションの SSL を備えた共有 HTTP サーバー
mcpMCP JSON-RPC プロトコルハンドラー
tunnelトンネルマネージャー (ngrok、Cloudflare、bore、Tailscale)

使わないものをオフにする

Nelson は多くのツールを搭載していますが、クライアントがそのすべてを目にすることはなく、絞り込みのほとんどは自動的に行われます。削減効果の大きい順に並べると、次のとおりです。

レバー動作場所
ドキュメント種別ツール一覧はアクティブなドキュメントに追従します。145 個のうち、Writer では約 97 個、Calc では 50 個です。自動で行われ、変更時にはクライアントに通知されます設定不要
未設定の機能は自動的に非表示ギャラリーや AI 画像ツールは、ギャラリーや画像プロバイダーを設定するまで表示されません。ランチャーとトンネルはツールをまったく公開しません設定不要
カスタムエンドポイント選択したツールだけを専用の URL で公開します。たとえば /mcp/minimal に 8 個のツールを配置できます。小規模なモデルを軌道に乗せておくための最も確実な方法ですオプション > Nelson MCP > MCP
プリセットあらかじめ用意されたエンドポイントのツール一覧: minimal、writer-edit、writer-read、calc、galleryオプション > Nelson MCP > MCP
機能スイッチMCP サーバー、HTTP 設定 API、またはデバッグを完全にオフにしますオプション、モジュールごと
プロバイダーの選択使用するトンネル、ランチャー、AI プロバイダーを選択しますオプション、モジュールごと
起動時のスキャン起動時に画像およびドキュメントフォルダーのインデックスを再スキャンしないようにしますオプション > ギャラリーモジュール

つまり、Calc ユーザーは何も操作しなくてもすでに 48 個のツールまで絞られており、カスタムエンドポイントを使えば好きな数にまで減らせます。

Nelson に意図的にないものは、モジュールの読み込みを停止するスイッチです。それは 7 つ目の重複する制御になり、得られるものはごくわずかでしょう。完全な起動は 31 モジュールで約 370 ms であり、オプションの機能ファミリーはすでにツール一覧に表示されません。測定結果については #29 を参照してください。

開発

./install.sh              # Set up dev environment
make deploy               # Build + install + restart LO + show log
make test                 # Run tests
make release              # Tag, build and publish a release (see scripts/release.sh)

完全な開発者ガイドについては DEVEL.md を、モジュールフレームワークのリファレンスについては docs/modules.md を参照してください。

AI エージェントを使った開発

このプロジェクトは AI コーディングエージェントを使って開発されており、それを実用的にするために wbox-mcp を使用しています。

Nelson は LibreOffice の内部で動作するため、エージェントは実際に LibreOffice を実行しなければ変更を検証できません。また、ヘッドレスプロセスではロゴが本当にページヘッダーに配置されたかを確認できません。wbox-mcp は、ネストされた Wayland コンポジター内のサンドボックス化された LibreOffice をエージェントに提供する MCP サーバーです。これにより、拡張機能の終了、デプロイ、再起動、UI の操作、Nelson ログの読み取り、結果のスクリーンショット撮影が可能になります。

これでループが閉じます。エージェントはコードを編集し、再デプロイし、MCP 経由でツールを呼び出し、レンダリングされたドキュメントを見て変更を確認します。うまくいったと決めつけるのではなく。

ドキュメント

  • QUICKSTART.md — エージェントガイド: 検出、ワークフロー、ツールパターン
  • AGENTS.md — 開発者チートシート: プロジェクト構成、ビルドパイプライン、重要なルール
  • docs/howto/ — ユーザーガイド: Tailscale + ChatGPT、Forge、Ollama インデックス作成、画像ギャラリー
  • docs/roadmap.md — 今後の予定
  • CHANGELOG.md — バージョン履歴

謝辞

Nelson MCP は、他の 2 つのプロジェクトを統合および再構築した成果です:

  • LocalWriter — AI プロバイダー(OpenAI 互換 API、Ollama、AI Horde)を備えたチャットボットサイドバーを組み込んだ LibreOffice 拡張機能です。当初は Umut Çelik によって LibreCalc AI Assistant として作成され、その後 @balisujohn によってフォークおよび拡張され、@KeithCu(Keith Curtis)によって大幅に開発が進められました。同氏は AI Horde サポート、マルチプロバイダー管理、チャットボットサイドバー、Calc の =PROMPT() 統合を追加しました。モジュールフレームワーク、ツールシステム、モジュールごとの設定アーキテクチャは @quazardous によって開発されました。

  • mcp-libre — MCP を介して Writer ツールを外部 AI クライアントに公開する、スタンドアロンの LibreOffice MCP サーバーです。これは、MCP アプローチ(外部 AI + ドキュメントツール)が組み込みチャットボットよりも柔軟であることを示しました。Nelson MCP はこの MCP ファーストのアーキテクチャを採用しています。チャットボットおよび AI プロバイダーのモジュールは削除され、拡張機能は外部クライアント向けのツールサーバーであることに完全に焦点を当てています。

ライセンス

MPL 2.0 — extension/registration/license.txt を参照してください。

コメント

MCP は初めてですか?

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

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