Build and validate FreeCAD MCP Server (v1.25.0). Changes: - mcp-freecad-wrapper.sh: Created wrapper script with container cleanup - crush.json: Added freecad-mcp entry with type: stdio and timeout: 180 - STATUS.md: Updated working MCP list and detailed status table - JOURNAL.md: Documented integration with full validation results Validation: - Container builds successfully (317MB, Python + uv) - MCP protocol handshake verified with initialize request - Protocol version 2024-11-05 confirmed - Server name: FreeCADMCP, version 1.25.0 - Wrapper script tested and working - Environment variable: PYTHONUNBUFFERED=1 - External dependency: FreeCAD with MCP addon (warning if not running) Similar to blender-mcp: - Both Python-based with uv package manager - Both require CAD application with addon running - Both show warning on startup when CAD app not connected - Both still initialize properly for MCP protocol handshake This is second MCP added in alphabetical order after filtering out already working MCPs (audiobook, bitwarden, blender, cloudron, context7, docker, drawio, elasticsearch). Following ADR-007: Sequential Server Validation - one MCP at a time, awaiting user validation before proceeding to next MCP.
104 lines
4.9 KiB
Markdown
104 lines
4.9 KiB
Markdown
# MCP Servers Setup Status
|
|
|
|
Tracking the setup and validation of MCP/LSP servers via Docker Compose.
|
|
|
|
Last validated: 2026-01-23
|
|
|
|
## Validation Summary
|
|
|
|
**Working MCP Servers:**
|
|
- ✓ audiobook-mcp: Working (audiobook-library v1.1.0) - requires AUDIOBOOK_ROOT env var
|
|
- ✓ bitwarden-mcp: Working (Bitwarden MCP Server v2026.1.0) - requires Bitwarden credentials
|
|
- ✓ blender-mcp: Working (BlenderMCP v1.25.0) - requires Blender with addon running
|
|
- ✓ 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
|
|
- ✓ 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
|
|
|
|
**MCP Servers with Configuration Issues:**
|
|
- None
|
|
|
|
**HTTP-based MCP Servers:**
|
|
- None
|
|
|
|
**Pending Build:**
|
|
- All other MCP servers pending build
|
|
|
|
**Recently Built:**
|
|
- audiobook-mcp: Built (v1.1.0) - stdio-based, requires AUDIOBOOK_ROOT
|
|
- bitwarden-mcp: Built (v2026.1.0) - stdio-based, requires Bitwarden credentials
|
|
- blender-mcp: Built (v1.25.0) - stdio-based, Python-based, requires Blender with addon
|
|
- cloudron-mcp: Built (v0.1.0) - stdio-based, requires CLOUDRON_URL
|
|
- 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
|
|
- 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
|
|
- marksman: Built (2025-12-13) - configured in crush.json via wrapper script
|
|
|
|
**Builds in Progress:**
|
|
- None
|
|
|
|
**Build Failures:**
|
|
- None
|
|
|
|
**LSP Servers:**
|
|
- ✓ bash-language-server: Working (v5.6.0) - stdio-based, configured in crush.json
|
|
- ✓ docker-language-server: Working (v0.0.0) - stdio-based, configured in crush.json
|
|
- ✓ marksman: Working (2025-12-13) - stdio-based, configured in crush.json
|
|
|
|
## Detailed Status
|
|
|
|
| Repository | Status | Notes |
|
|
|------------|--------|-------|
|
|
| audiobook-mcp | Built | Container built from source (361MB). MCP stdio-based, requires AUDIOBOOK_ROOT env var. Fixed Dockerfile to use npm install instead of npm ci. Version 1.1.0. |
|
|
| bitwarden-mcp | Built | Container built from source (377MB). Multi-stage distroless build. MCP stdio-based, requires Bitwarden credentials. Version 2026.1.0. |
|
|
| blender-mcp | Built | Container built from source (321MB). Python-based with uv package manager. MCP stdio-based, requires Blender running with addon. Version 1.25.0. |
|
|
| 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. |
|
|
| 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. |
|
|
| bash-language-server | Built | Container built using prebuilt npm package (190MB). LSP configured in crush.json via wrapper script. Version 5.6.0. |
|
|
| docker-language-server | Built | Container built from Go source (49.2MB). LSP configured in crush.json via wrapper script. Version 0.0.0. |
|
|
| marksman | Built | Container built from prebuilt binary (144MB). LSP configured in crush.json via wrapper script. Version 2025-12-13. |
|
|
|
|
## Known Issues
|
|
|
|
None
|
|
|
|
## Usage
|
|
|
|
To build and start a specific server:
|
|
```bash
|
|
docker compose up -d <service-name>
|
|
```
|
|
|
|
To view logs:
|
|
```bash
|
|
docker compose logs -f <service-name>
|
|
```
|
|
|
|
To stop a server:
|
|
```bash
|
|
docker compose stop <service-name>
|
|
```
|
|
|
|
To rebuild a server after changes:
|
|
```bash
|
|
docker compose build --no-cache <service-name>
|
|
```
|
|
|
|
To test MCP server with Crush:
|
|
```bash
|
|
# Stdio-based servers are run on-demand by Crush
|
|
# Configuration is in crush.json
|
|
# Crush automatically handles docker run -i --rm
|
|
```
|
|
|
|
Note: Use lowercase service names from compose file. Container names will be prefixed with kneldevstack-aimiddleware-.
|