关于 groupdocs-viewer-mcp
groupdocs-viewer-mcp 将 GroupDocs.Viewer 功能提供给 AI Agent,可检查文档信息并将指定页面渲染为 PNG。适用于需要通过 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 Agent 调用的工具的 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+ 已内置于操作系统。 |
| 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 Agent 的提示词示例
将服务接入 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 引擎在生产环境中使用时需要许可证。未提供许可证时,服务将以评估模式运行:
- 每份文档只能渲染有限数量的页面,且输出可能带有评估提示。
- 单个服务进程最多只能打开 15 份文档;超过限制后,后续调用会因评估模式上限而失败,直到服务重启。
有两种方式为服务授权。
许可证文件 — 将 GROUPDOCS_LICENSE_PATH 指向你的 GroupDocs.Total.lic。可离线使用。
计量模式(按使用量付费) — 设置 GROUPDOCS_METERED_PUBLIC_KEY 和 GROUPDOCS_METERED_PRIVATE_KEY。你只需为实际处理的内容付费,这很适合使用情况突发且难以提前预测的 AI Agent。如果同时配置了计量密钥对和许可证文件,计量模式优先,许可证文件将被忽略。
**计量模式需要出站网络连接。**使用情况会报告给 GroupDocs 服务,因此隔离网络或防火墙部署必须允许此出站流量 — 或改用许可证文件。
随时调用 get_license_status 工具,查看当前启用的模式,以及计量模式下的已用额度和剩余额度。
避免私钥出现在配置中
计量模式的私钥属于机密。MCP 客户端配置是磁盘上的普通文件,而按惯例,项目级 .mcp.json 会提交到版本控制,因此建议按以下优先顺序处理:
- **在操作系统环境中设置变量,并完全不将它们写入配置。**stdio MCP 服务会继承客户端的环境,因此这种方式适用于所有客户端。
请注意,在 macOS 上,从 Finder 启动的应用不会继承 shell 导出变量 — 请使用
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 | 计量许可公钥。需要同时提供私钥;其优先级高于许可证文件 | (未设置) |
GROUPDOCS_METERED_PRIVATE_KEY | 计量许可私钥。机密——请参阅许可 | (未设置) |
与 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。