Nelson MCP — LibreOffice について
Nelson MCP は、開いている Writer と Calc のドキュメントを MCP サーバーとして公開する LibreOffice 拡張機能です。外部の AI クライアントが HTTP 経由で接続し、ドキュメントの読み取りと編集を行えます。既定では localhost のみにバインドされ、アクセストークンとツールエンドポイントの設定に対応しています。
主な機能
- 01ドキュメント種別に応じてフィルタされる 145 個のツール
- 02Writer、Calc、Draw、Impress に対応
- 03選択したツールのみを公開するカスタムエンドポイント
- 04Claude Code、Gemini CLI、OpenCode の起動機能
- 05既定で localhost のみ、任意のアクセストークン設定
- 06AI 画像生成とトンネル機能(任意)
活用シーン
- 01AI クライアントから開いている Writer のレポートを直接編集する
- 02Calc シートのセル、数式、グラフを読み取りおよび変更する
- 03少数のツールだけを含む制限付きエンドポイントを小型モデルに提供する
MCP 対応
Nelson MCP は LibreOffice 内で HTTP 形式の MCP サーバーを動作させ、既定では http://localhost:8766/mcp で待ち受けます。ドキュメントの読み取り、編集、書式設定のツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Nelson MCP
ドキュメントを 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 回のツール呼び出しずつ書き込んでいきます:

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

すべては Tools > 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
- モジュール式 — 各機能は独自の設定、サービス、ツールを持つ自己完結型のモジュールです
インストール
- リリースページから最新の
.oxtをダウンロードします - LibreOffice で:Tools > Extension Manager > Add
- LibreOffice を再起動します
- 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.index | Snowball ステミングによる全文検索 |
calc | セル、シート、数式、グラフ、条件付き書式、コメント |
draw | 図形、ページ、スライド、プレースホルダー、マスタースライド、トランジション (Draw および Impress) |
images / documents | 画像およびドキュメントのギャラリープロバイダー (既存のアセットを閲覧および再利用) |
ai_images | AI 画像生成および編集 (Stable Diffusion、OpenAI、AI Horde) |
ai | Calc の =PROMPT() 関数の背後にある AI テキストプロバイダー |
launcher | LibreOffice から Claude Code、Gemini CLI、または OpenCode を起動 |
panel | サイドバーパネル — MCP アクションログ、実行中のジョブ |
batch | 変数チェーンによるマルチツール実行 |
http | オプションの SSL を備えた共有 HTTP サーバー |
mcp | MCP 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 を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。