Files
KNEL-AIMiddleware/STATUS.md
Charles N Wyble c5393f9b5e feat: add elasticsearch-mcp validation
Build and validate Elasticsearch MCP server for search/indexing.

Changes:
- docker-compose.yml: Updated elasticsearch-mcp to use custom Dockerfile
  and ES_URL env var (not ELASTICSEARCH_URL)
- dockerfiles/elasticsearch-mcp/Dockerfile: Added custom Dockerfile with
  fix to pass "stdio" subcommand to ENTRYPOINT
- STATUS.md: Added elasticsearch-mcp as validated MCP (v0.2.1, 22MB)

Validation:
- Container builds successfully from Rust source (22MB)
- Fixed Dockerfile to pass "stdio" subcommand to entry point
- MCP protocol handshake verified with initialize request
- Protocol version 2024-11-05 confirmed
- Server name: rmcp, version 0.2.1
- Requires ES_URL environment variable (not ELASTICSEARCH_URL)
- NOTE: Server is deprecated, superseded by Elastic Agent Builder
- Tested with proper --name flag for container
2026-01-23 00:40:09 -05:00

4.3 KiB

MCP Servers Setup Status

Tracking the setup and validation of MCP/LSP servers via Docker Compose.

Last validated: 2026-01-22

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
  • ✓ 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

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
  • 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.
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.
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:

docker compose up -d <service-name>

To view logs:

docker compose logs -f <service-name>

To stop a server:

docker compose stop <service-name>

To rebuild a server after changes:

docker compose build --no-cache <service-name>

To test MCP server with Crush:

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