The Nutrient PDF Editor ships as a Claude Connector distributed as an .mcpb bundle that Claude Desktop installs and runs locally over stdio. Cowork — the surface that runs inside Claude Desktop — is what renders the embedded viewer iframe; the server itself never speaks HTTP.
In Anthropic's terminology a Connector is any MCP server a user adds to Claude. Anthropic supports two transports for Connectors:
- Streamable HTTP — a remote MCP server reachable at a public URL.
- stdio — a local subprocess, packaged as an
.mcpbbundle and installed into Claude Desktop.
This server uses the stdio path. src/mcp/index.ts only constructs a StdioServerTransport; passing anything other than --stdio exits with an error. There is no Streamable HTTP endpoint, no remote deployment, and no public URL to register.
| Surface | Supported? | Why |
|---|---|---|
| Claude Desktop with Cowork | ✓ | Installs the .mcpb, runs the server as a stdio subprocess, and Cowork renders the MCP App iframe viewer inside the chat surface. |
| Claude Desktop chat (no Cowork) | ✗ | The require-ui-capability gate fails at initialize — the host does not advertise the io.modelcontextprotocol/ui extension, so the viewer iframe cannot be mounted and tool calls would time out with VIEWER_TIMEOUT_MS. |
| claude.ai (web) | ✗ | The web surface cannot run a local stdio subprocess and does not host Cowork's iframe surface. |
| Claude mobile apps | ✗ | Same reason as claude.ai: no local subprocess host, no MCP App rendering surface. |
The viewer iframe is the entire point of the server. Cowork inside Claude Desktop is the only surface where it renders today, so it is the only supported runtime.
- Download the
.mcpbfrom the project's GitHub Releases (or build it locally vianpm run build; output lands inbuild/nutrient-pdf-editor-mcp-<version>.mcpb). - Open Claude Desktop → Settings → Connectors → install the
.mcpb. - Use the editor inside a Cowork chat in Claude Desktop. Tools register with the bare names defined in
tool-surface.md.
require-ui-capability.ts— theinitialize-time gate that rejects hosts which don't advertise the MCP App UI extension.build-and-distribution.md— how the.mcpbis built and what it contains.document-bytes-design.md— how document bytes flow over the stdio bridge.csp-allowlist.md— the iframe CSP that the embedded Cowork viewer enforces.bridge-protocol.md— the iframe-to-server wire protocol that runs on top of the stdio transport.