feat: integrate ONLYOFFICE docspace-mcp v3.1.0

- Updated CloneVendorRepos.sh to use official ONLYOFFICE/docspace-mcp
  repository instead of ahujasid/docspace-mcp (which was outdated)
- Successfully built and validated docspace-mcp Docker container (236MB)
- Created wrapper script mcp-docspace-wrapper.sh with environment
  variables for DOCSPACE_HOST and DOCSPACE_TOKEN
- Added docspace MCP configuration to crush.json
- Updated STATUS.md with working status for docspace-mcp

MCP handshake test confirmed server responds correctly:
- Protocol version: 2024-11-05
- Server: @onlyoffice/docspace-mcp v3.1.0
- Capabilities: tools

Also documented blocked MCPs in STATUS.md:
- matomo-mcp: vendor repo does not exist (404)
- discourse-mcp: vendor repo exists but is empty (no commits)

Related: ADR-007 Sequential MCP validation
This commit is contained in:
Charles N Wyble
2026-02-17 10:44:10 -05:00
parent 3bdf281a4a
commit 60f317e92c
4 changed files with 31 additions and 2 deletions

View File

@@ -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. |

View File

@@ -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
}
}
}

21
mcp-docspace-wrapper.sh Executable file
View File

@@ -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}" "$@"

View File

@@ -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"