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
This commit is contained in:
@@ -30,6 +30,7 @@ Last validated: 2026-01-22
|
|||||||
- cloudron-mcp: Built (v0.1.0) - stdio-based, requires CLOUDRON_URL
|
- cloudron-mcp: Built (v0.1.0) - stdio-based, requires CLOUDRON_URL
|
||||||
- docker-mcp: Built (v0.1.0) - stdio-based, Python-based, requires Docker socket
|
- 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
|
- 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
|
- 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
|
- 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
|
- marksman: Built (2025-12-13) - configured in crush.json via wrapper script
|
||||||
@@ -55,6 +56,7 @@ Last validated: 2026-01-22
|
|||||||
| 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. |
|
| 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. |
|
| 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. |
|
| 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. |
|
| 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. |
|
| 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. |
|
| marksman | Built | Container built from prebuilt binary (144MB). LSP configured in crush.json via wrapper script. Version 2025-12-13. |
|
||||||
|
|||||||
@@ -385,11 +385,11 @@ services:
|
|||||||
image: kneldevstack-aimiddleware-elasticsearch-mcp
|
image: kneldevstack-aimiddleware-elasticsearch-mcp
|
||||||
build:
|
build:
|
||||||
context: ./vendor/mcp-server-elasticsearch
|
context: ./vendor/mcp-server-elasticsearch
|
||||||
dockerfile: Dockerfile
|
dockerfile: ../../dockerfiles/elasticsearch-mcp/Dockerfile
|
||||||
container_name: kneldevstack-aimiddleware-elasticsearch-mcp
|
container_name: kneldevstack-aimiddleware-elasticsearch-mcp
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- ELASTICSEARCH_URL=${ELASTICSEARCH_URL:-http://localhost:9200}
|
- ES_URL=${ES_URL:-http://localhost:9200}
|
||||||
- ELASTICSEARCH_USERNAME=${ELASTICSEARCH_USERNAME}
|
- ELASTICSEARCH_USERNAME=${ELASTICSEARCH_USERNAME}
|
||||||
- ELASTICSEARCH_PASSWORD=${ELASTICSEARCH_PASSWORD}
|
- ELASTICSEARCH_PASSWORD=${ELASTICSEARCH_PASSWORD}
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
28
dockerfiles/elasticsearch-mcp/Dockerfile
Normal file
28
dockerfiles/elasticsearch-mcp/Dockerfile
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# Copyright Elasticsearch B.V. and contributors
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
FROM rust:1.89@sha256:c50cd6e20c46b0b36730b5eb27289744e4bb8f32abc90d8c64ca09decf4f55ba AS builder
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY Cargo.toml Cargo.lock ./
|
||||||
|
|
||||||
|
# Cache dependencies
|
||||||
|
RUN mkdir -p ./src/bin && \
|
||||||
|
echo "pub fn main() {}" > ./src/bin/elasticsearch-core-mcp-server.rs && \
|
||||||
|
cargo build --release
|
||||||
|
|
||||||
|
COPY src ./src/
|
||||||
|
|
||||||
|
RUN cargo build --release
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
FROM cgr.dev/chainguard/wolfi-base:latest
|
||||||
|
|
||||||
|
COPY --from=builder /app/target/release/elasticsearch-core-mcp-server /usr/local/bin/elasticsearch-core-mcp-server
|
||||||
|
|
||||||
|
ENV CONTAINER_MODE=true
|
||||||
|
|
||||||
|
EXPOSE 8080/tcp
|
||||||
|
ENTRYPOINT ["/usr/local/bin/elasticsearch-core-mcp-server", "stdio"]
|
||||||
Reference in New Issue
Block a user