mcwaddams/docker-compose.yml
Ryan Malloy b0477103d5 Add file_content parameter for hosted HTTP transport
- Add MCP_ALLOW_LOCAL_FILES env var (default false for security)
- All tools now accept file_content (base64) for remote document upload
- Local file access blocked on hosted servers unless explicitly enabled
- Update docker-compose to set MCP_ALLOW_LOCAL_FILES=false
- Fix test assertions for updated function signatures
2026-01-20 18:47:19 -07:00

49 lines
1.4 KiB
YAML

# mcwaddams MCP Server - Docker Compose
# "I could set the building on fire..."
services:
mcwaddams:
build:
context: .
dockerfile: Dockerfile
target: production
container_name: mcwaddams-mcp
restart: unless-stopped
environment:
- MCP_TRANSPORT=streamable-http
- MCP_HOST=0.0.0.0
- MCP_PORT=8000
- DEBUG=${DEBUG:-false}
- OFFICE_TEMP_DIR=/tmp/mcwaddams
# Security: Disable local file access for hosted server
# Clients must use file_content parameter to upload documents
- MCP_ALLOW_LOCAL_FILES=false
volumes:
# Temp directory for document processing
- mcwaddams-temp:/tmp/mcwaddams
networks:
- caddy
labels:
# Caddy-docker-proxy labels - direct reverse proxy (no path stripping)
# MCP is served at /mcp on the backend
caddy: ${MCWADDAMS_HOST:-mcwaddams.l.supported.systems}
caddy.reverse_proxy: "{{upstreams 8000}}"
caddy.reverse_proxy.flush_interval: "-1"
caddy.reverse_proxy.transport: "http"
caddy.reverse_proxy.transport.read_timeout: "0"
caddy.reverse_proxy.transport.write_timeout: "0"
caddy.reverse_proxy.stream_timeout: "24h"
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
volumes:
mcwaddams-temp:
networks:
caddy:
external: true