# docx-mcp Server - Deployment Quick Reference ## Key Facts | Item | Value | |------|-------| | **Transport Method** | stdio (stdin/stdout) | | **Network Port** | Not required for local use | | **API Key** | Not required | | **Authentication** | OS-level + container security | --- ## Port Requirements ### Local Deployment (Recommended) **No port required** - the server communicates via stdin/stdout directly. ### Remote Deployment (Optional) If remote access is needed, wrap with a stdio-to-network bridge: | Bridge Type | Port | Protocol | |-------------|------|----------| | WebSocket | 8080 | ws:// | | TCP | 8080 | tcp:// | --- ## Quick Start ### Build ```bash # Minimal (recommended) docker build -f Dockerfile.sandboxed -t docx-mcp:sandboxed . # With LibreOffice (better PDF conversion) docker build -f Dockerfile.libreoffice -t docx-mcp:libreoffice . ``` ### Run (Local) ```bash docker run --rm \ --name docx-mcp \ --read-only \ --cap-drop ALL \ --tmpfs /tmp/docx-mcp \ --memory 512m \ docx-mcp:sandboxed ``` ### Run (Remote via Docker Compose) ```bash docker-compose up -d ``` --- ## MCP Client Configuration ### Claude Desktop ```json { "mcpServers": { "docx": { "command": "docker", "args": [ "run", "--rm", "--read-only", "--cap-drop ALL", "--tmpfs /tmp/docx-mcp", "--memory 512m", "docx-mcp:sandboxed" ] } } } ``` ### Cursor ```json { "mcp": { "servers": { "docx": { "command": "docker", "args": [ "run", "--rm", "--read-only", "--cap-drop ALL", "--tmpfs /tmp/docx-mcp", "--memory 512m", "docx-mcp:sandboxed" ] } } } } ``` --- ## Security Profiles ### Readonly Mode ```bash docker run --rm \ -e DOCX_MCP_READONLY=true \ -e DOCX_MCP_WHITELIST="open_document,extract_text,get_metadata,search_text" \ docx-mcp:sandboxed ``` ### Maximum Security ```bash docker run --rm \ --read-only \ --cap-drop ALL \ --network none \ --tmpfs /tmp/docx-mcp \ -e DOCX_MCP_READONLY=true \ -e DOCX_MCP_SANDBOX=true \ -e DOCX_MCP_NO_EXTERNAL_TOOLS=true \ -e DOCX_MCP_NO_NETWORK=true \ docx-mcp:sandboxed ``` --- ## Environment Variables | Variable | Default | Description | |----------|---------|-------------| | `DOCX_MCP_READONLY` | `false` | Restrict to read-only operations | | `DOCX_MCP_SANDBOX` | `true` | Restrict file operations to temp | | `DOCX_MCP_NO_EXTERNAL_TOOLS` | `true` | Disable LibreOffice etc. | | `DOCX_MCP_NO_NETWORK` | `true` | Disable network access | | `DOCX_MCP_MAX_SIZE` | `52428800` | Max document size (bytes) | | `DOCX_MCP_MAX_DOCS` | `20` | Max concurrent documents | | `DOCX_MCP_WHITELIST` | - | Allowed tools (comma-separated) | | `DOCX_MCP_BLACKLIST` | - | Blocked tools (comma-separated) | --- ## Files Created | File | Description | |------|-------------| | `Dockerfile.sandboxed` | Minimal security-focused image | | `Dockerfile.libreoffice` | Full features with LibreOffice | | `docker-compose.yml` | Production deployment config | | `DEPLOYMENT.md` | Comprehensive deployment guide | --- ## Summary - **Port Required:** No (for local) / 8080 (for remote with bridge) - **API Key:** No - **Authentication:** Container isolation + OS controls - **Recommended:** Local stdio transport with security features enabled