diff --git a/STATUS.md b/STATUS.md index 0a80572..5133ba7 100644 --- a/STATUS.md +++ b/STATUS.md @@ -2,7 +2,7 @@ Tracking the setup and validation of MCP/LSP servers via Docker Compose. -Last validated: 2026-01-23 +Last validated: 2026-02-17 ## Validation Summary @@ -13,6 +13,7 @@ Last validated: 2026-01-23 - ✓ cloudron-mcp: Working (cloudron-mcp v0.1.0) - requires CLOUDRON_URL env var - ✓ context7-mcp: Working (Context7 v2.1.0) - stdio-based, requires Upstash Redis - ✓ docker-mcp: Working (docker-mcp v0.1.0) - requires Docker socket mount +- ✓ docspace-mcp: Working (@onlyoffice/docspace-mcp v3.1.0) - requires DOCSPACE_HOST and DOCSPACE_TOKEN env vars - ✓ drawio-mcp: Working (drawio-mcp-server v1.4.0) - requires DRAWIO_URL env var - ✓ elasticsearch-mcp: Working (rmcp v0.2.1, deprecated) - requires ES_URL env var - ✓ freecad-mcp: Working (FreeCADMCP v1.25.0) - requires FreeCAD with addon running @@ -40,6 +41,7 @@ Last validated: 2026-01-23 - context7-mcp: Built (v2.1.0) - stdio-based, TypeScript-based, requires Upstash Redis - docker-mcp: Built (v0.1.0) - stdio-based, Python-based, requires Docker socket - drawio-mcp: Built (v1.4.0) - stdio-based, TypeScript/pnpm, requires DRAWIO_URL +- docspace-mcp: Built (v3.1.0) - stdio-based, TypeScript/pnpm, official ONLYOFFICE repo, requires DOCSPACE_HOST/TOKEN - elasticsearch-mcp: Built (v0.2.1) - stdio-based, Rust-based, requires ES_URL - bash-language-server: Built (v5.6.0) - configured in crush.json via wrapper script - docker-language-server: Built (v0.0.0) - configured in crush.json via wrapper script @@ -70,6 +72,7 @@ Last validated: 2026-01-23 | cloudron-mcp | Built | Container built from source (374MB). Fixed Dockerfile CMD to use dist/server.js. MCP stdio-based, requires CLOUDRON_URL env var. Version 0.1.0. | | context7-mcp | Built | Container built from source (224MB). Multi-stage Node.js build with tsc. MCP stdio-based, requires UPSTASH_REDIS_REST_URL and TOKEN env vars. Version 2.1.0. | | docker-mcp | Built | Container built from Python source (188MB). Uses uv package manager. MCP stdio-based, requires Docker socket mount (/var/run/docker.sock). Version 0.1.0. | +| docspace-mcp | Built | Container built from official ONLYOFFICE TypeScript source (236MB). Uses pnpm package manager. MCP stdio-based, requires DOCSPACE_HOST and DOCSPACE_TOKEN env vars. Version 3.1.0. | | drawio-mcp | Built | Container built from TypeScript source (302MB). Uses pnpm package manager. MCP stdio-based, requires DRAWIO_URL env var. Version 1.4.0. | | elasticsearch-mcp | Built | Container built from Rust source (22MB). Fixed Dockerfile to pass "stdio" subcommand. MCP stdio-based, requires ES_URL env var. NOTE: Server is deprecated. Version 0.2.1. | | freecad-mcp | Built | Container built from Python source (317MB). Uses uv package manager. MCP stdio-based, requires FreeCAD running with addon. Version 1.25.0. | diff --git a/crush.json b/crush.json index fd82dd0..567f2f5 100644 --- a/crush.json +++ b/crush.json @@ -71,6 +71,11 @@ "type": "stdio", "command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-imap-wrapper.sh", "timeout": 60 + }, + "docspace": { + "type": "stdio", + "command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-docspace-wrapper.sh", + "timeout": 60 } } } diff --git a/mcp-docspace-wrapper.sh b/mcp-docspace-wrapper.sh new file mode 100755 index 0000000..4ca30fc --- /dev/null +++ b/mcp-docspace-wrapper.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# Wrapper script for docspace-mcp +# Ensures clean container with proper name + +CONTAINER_NAME="kneldevstack-aimiddleware-docspace-mcp-crush" +IMAGE_NAME="kneldevstack-aimiddleware-docspace-mcp" + +# Force remove existing container if it exists (in any state) +if docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' 2>/dev/null | grep -q "^${CONTAINER_NAME}$"; then + docker rm -f "${CONTAINER_NAME}" >/dev/null 2>&1 + # Wait for container to be fully removed + while docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' 2>/dev/null | grep -q "^${CONTAINER_NAME}$"; do + sleep 0.05 + done +fi + +# Start MCP server with explicit name and environment variables +exec docker run -i --rm --name "${CONTAINER_NAME}" \ + -e "DOCSPACE_HOST=${DOCSPACE_HOST:-}" \ + -e "DOCSPACE_TOKEN=${DOCSPACE_TOKEN:-}" \ + "${IMAGE_NAME}" "$@" diff --git a/scripts/CloneVendorRepos.sh b/scripts/CloneVendorRepos.sh index 6efde47..cc66704 100755 --- a/scripts/CloneVendorRepos.sh +++ b/scripts/CloneVendorRepos.sh @@ -66,7 +66,7 @@ clone_repo "mcp-cloudron" "https://github.com/ahujasid/mcp-cloudron.git" clone_repo "postizz-MCP" "https://github.com/ahujasid/postizz-MCP.git" clone_repo "snipeit-mcp" "https://github.com/ahujasid/snipeit-mcp.git" clone_repo "nextcloud-mcp-server" "https://github.com/ahujasid/nextcloud-mcp-server.git" -clone_repo "docspace-mcp" "https://github.com/ahujasid/docspace-mcp.git" +clone_repo "docspace-mcp" "https://github.com/ONLYOFFICE/docspace-mcp.git" clone_repo "docker-mcp" "https://github.com/ahujasid/docker-mcp.git" clone_repo "kubernetes-mcp-server" "https://github.com/ahujasid/kubernetes-mcp-server.git" clone_repo "ProxmoxMCP" "https://github.com/ahujasid/ProxmoxMCP.git"