groupdocs-viewer-mcp について
groupdocs-viewer-mcp は GroupDocs.Viewer の機能を AI エージェントに提供し、ドキュメントのページ描画と情報確認を行います。MCP クライアントから多様な形式を確認したいユーザー向けです。
主な機能
- 01ページを PNG に描画
- 02ファイル形式とページ数の確認
- 03各ページの寸法を取得
- 04パスワード保護文書に対応
活用シーン
- 01レポートやプレゼン資料のページ確認
- 02描画前のページ数確認
- 03保護された文書のページ情報確認
MCP 対応
MCP サーバーはページ描画用の RenderPage と、文書情報確認用の GetViewInfo を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GroupDocs.Viewer MCP サーバー
GroupDocs.Viewer を、Claude、Cursor、GitHub Copilot、その他の MCP エージェントから呼び出せるツールとして公開する MCP サーバーです。
インストール
ワンクリックインストールでは、サポートされているすべての設定が事前入力されます。インストール後にプレースホルダーのドキュメントフォルダーを編集してください(出力先はデフォルトで同じフォルダーです)。GROUPDOCS_LICENSE_PATH が空の場合は評価モードで実行されます。制限を解除するには、ライセンスへのパスを指定してください。
その他のクライアント - Claude Code、Codex CLI、Visual Studio 2022、 Cursor、Windsurf、Cline、JetBrains Rider 用の設定済み構成は
install/generated/にあります。
.NET 10 SDK が必要です。
dnx で直接実行(推奨 — インストール不要):
dnx GroupDocs.Viewer.Mcp --yes
呼び出すたびに、最新の安定版リリースが取得されます。特定の
バージョンに固定するには(共有構成や CI での使用を推奨)、@<version> を追加します。
dnx [email protected] --yes
または、グローバル dotnet ツールとしてインストール:
dotnet tool install -g GroupDocs.Viewer.Mcp
groupdocs-viewer-mcp
または、Docker 経由で実行:
docker run --rm -i \
-v $(pwd)/documents:/data \
ghcr.io/groupdocs-viewer/viewer-net-mcp:latest
ネイティブ環境での前提条件
基盤となる GroupDocs エンジンは、一部の操作で System.Drawing(GDI+)を使用します。Linux または macOS でサーバーをネイティブ環境で(dnx またはグローバル dotnet ツール経由で)実行する場合は、まずネイティブの libgdiplus ライブラリをインストールしてください。
| プラットフォーム | セットアップ |
|---|---|
| Windows | 不要 — GDI+ は OS に組み込まれています。 |
| Linux | sudo apt-get install -y libgdiplus libfontconfig1 ttf-mscorefonts-installer |
| macOS | brew install mono-libgdiplus |
| Docker | 不要 — イメージに libgdiplus がすでに含まれています。 |
Linux/macOS でこれを省略すると、ツールの応答に DllNotFoundException: libgdiplus が表示されます。Linux/macOS で最も手軽なセットアップ不要の方法は、Docker イメージを使うことです。
利用可能な MCP ツール
| ツール | 説明 |
|---|---|
RenderPage | ドキュメントの単一ページを PNG 画像としてレンダリングし、インラインで返します(さらに <source-stem>_page<N>.png としてストレージにもコピーを保存します)。PDF、Word、Excel、PowerPoint、ODT、RTF、HTML など、170 種類以上の形式に対応しています。保護されたドキュメントでは、オプションで password を指定できます。 |
GetViewInfo | ファイル形式、ページ数、ページごとの寸法を、レンダリングせずに JSON として返します。どのページをレンダリングするかを決める前の事前確認に便利です。保護されたドキュメントでは、オプションで password を指定できます。 |
AI エージェント向けのプロンプト例
サーバーを MCP クライアント(Claude Desktop、Cursor、VS Code Copilot など)に接続したら、次のプロンプトを試してください。
Render page 1 of report.pdf — show me the image.
How many pages does contract.docx have? What size is each page?
Show me page 5 of the slide deck quarterly.pptx.
Inspect /docs/legal-brief.pdf — what file type and page count?
Render the first three pages of presentation.pptx as PNGs.
クライアントは、「ページを見せて」というリクエストには RenderPage を選択し、確認のみの質問には GetViewInfo を選択します。
ライセンス
MCP サーバー自体は MIT ライセンスですが、基盤となる GroupDocs.Viewer エンジンを本番環境で使用するにはライセンスが必要です。 ライセンスがない場合、サーバーは評価モードで動作します。
- レンダリングできるページ数はドキュメントごとに制限され、出力に評価版の通知が含まれることがあります。
- 1 つのサーバープロセスで開けるドキュメントは最大 15 件です。それ以降の呼び出しは、サーバーを再起動するまで評価上限エラーで失敗します。
サーバーにライセンスを設定する方法は 2 つあります。
ライセンスファイル — GROUPDOCS_LICENSE_PATH に GroupDocs.Total.lic のパスを指定します。オフラインで動作します。
従量課金 — GROUPDOCS_METERED_PUBLIC_KEY と
GROUPDOCS_METERED_PRIVATE_KEY の両方を設定します。実際に処理した分だけ請求されます。使用量が急増しやすく、事前に予測しにくい AI エージェントに適しています。従量課金のキーのペアとライセンスファイルの両方が設定されている場合は、従量課金が優先され、ファイルは無視されます。
従量課金モードには外部への接続が必要です。 使用状況は GroupDocs サーバーに報告されるため、外部ネットワークから隔離された環境やファイアウォールで保護された環境では、その外向き通信を許可するか、ライセンスファイルを使用してください。
いつでも get_license_status ツールを呼び出すと、現在のモードと、従量課金の場合は消費量および残りのクレジットを確認できます。
秘密鍵を設定ファイルに記載しない方法
従量課金の秘密鍵は機密情報です。MCP クライアントの設定はディスク上に保存されるプレーンテキストのファイルであり、プロジェクトスコープの .mcp.json は慣例としてコミットされるため、次の順に優先してください。
- OS の環境変数に設定し、設定ファイルには一切記載しないでください。 stdio MCP サーバーはクライアントの環境を引き継ぐため、どのクライアントでも機能します。macOS では、Finder から起動したアプリはシェルのエクスポートを引き継がない点に注意してください。
launchctl setenvを使用するか、ターミナルからクライアントを起動してください。 - クライアントが対応している場合は、間接的に参照してください(Claude Code は
${VAR}を展開し、VS Code は${env:VAR}と${input:...}を使用します)。 - ユーザースコープの設定(例:
~/.claude.json)に値を直接記載する方法は、個人での使用であれば許容されます。 - プロジェクトスコープの
.mcp.jsonにキーを直接記載して、コミットしないでください。
Docker では、値をファイルに書き込まずに渡してください。
docker run --rm -i \
-e GROUPDOCS_METERED_PUBLIC_KEY -e GROUPDOCS_METERED_PRIVATE_KEY \
-v /path/to/documents:/data \
ghcr.io/groupdocs-viewer/viewer-net-mcp:latest
ライセンスファイルを使用して制限を解除するには、次の手順を実行してください。
設定
| 変数 | 説明 | デフォルト |
|---|---|---|
GROUPDOCS_MCP_STORAGE_PATH | 入力ファイルと出力ファイルのベースフォルダー | 現在のディレクトリ |
GROUPDOCS_MCP_OUTPUT_PATH | (任意) 出力ファイル用の別フォルダー | GROUPDOCS_MCP_STORAGE_PATH |
GROUPDOCS_LICENSE_PATH | GroupDocs ライセンスファイルへのパス | (評価モード) |
GROUPDOCS_METERED_PUBLIC_KEY | Metered 公開キー。秘密キーも必要です。ライセンスファイルより優先されます | (未設定) |
GROUPDOCS_METERED_PRIVATE_KEY | Metered 秘密キー。シークレット — ライセンスを参照してください | (未設定) |
Claude Desktop での使用
{
"mcpServers": {
"groupdocs-viewer": {
"type": "stdio",
"command": "dnx",
"args": ["GroupDocs.Viewer.Mcp", "--yes"],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "/path/to/documents"
}
}
}
}
特定のバージョンに固定するには、
args内の"GroupDocs.Viewer.Mcp"を"[email protected]"に置き換えます。予期しないアップグレードを避けるため、 共有またはコミットする設定ではバージョンの固定をおすすめします。
VS Code / GitHub Copilot での使用
NuGet.org は、パッケージページで、そのまま使える mcp.json スニペットを生成します。
これを .vscode/mcp.json に直接コピーしてください。
または、.vscode/mcp.json に手動で追加します。
{
"inputs": [
{
"type": "promptString",
"id": "storage_path",
"description": "Base folder for input and output files.",
"password": false
}
],
"servers": {
"groupdocs-viewer": {
"type": "stdio",
"command": "dnx",
"args": ["GroupDocs.Viewer.Mcp", "--yes"],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "${input:storage_path}"
}
}
}
}
上記と同じルールでバージョンを固定できます。特定のリリースに固定するには、
"GroupDocs.Viewer.Mcp"を"[email protected]"に置き換えます。
Docker Compose での使用
cd docker
docker compose up
docker/docker-compose.yml を編集して、ボリュームがローカルのドキュメントフォルダーを参照するようにします。
ドキュメントとガイド
ステップごとのデプロイガイドと、公開済みパッケージを対象とする統合テストスイートは、 関連リポジトリ GroupDocs.Viewer.Mcp.Testsにあります。
- NuGet からインストール —
dnx、グローバルツール、バージョン固定と常に最新のバージョンの比較 - Docker 経由で実行
- MCP レジストリで検証
- Claude Desktop で使用
- VS Code / GitHub Copilot で使用
- 統合テストを実行
このリポジトリでは、CI で Linux、macOS、Windows 上の公開済み NuGet 成果物を使って、案内されているすべてのツールもテストしています。そのため、上記のスニペットは リリースのたびにエンドツーエンドで検証されます。
ライセンス
MIT — LICENSEを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。