Build and validate GIMP MCP Server (GimpMCP v1.10.1). Changes: - dockerfiles/gimp-mcp/Dockerfile: Fixed ENTRYPOINT to use python -m instead of uvx - mcp-gimp-wrapper.sh: Created wrapper script with container cleanup - crush.json: Added gimp-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 (418MB, Python + uv) - Dockerfile fix: Changed from uvx (slow, rebuilds packages) to python -m (fast, uses .venv) - MCP protocol handshake verified with initialize request - Protocol version 2024-11-05 confirmed - Server name: GimpMCP, version 1.10.1 - Wrapper script tested and working - Environment variable: PYTHONUNBUFFERED=1 - External dependency: GIMP 3.0 with server Dockerfile Fix: - Before: ENTRYPOINT ["uvx", "gimp-mcp-server"] (slow, rebuilds on every run) - After: ENTRYPOINT ["python", "-m", "gimp_mcp_server"] (fast, uses built .venv) - Entry point: gimp-mcp-server = "gimp_mcp_server:main" (from pyproject.toml) This is fourth MCP added in alphabetical order after filtering out already working MCPs (audiobook, bitwarden, blender, cloudron, context7, docker, drawio, elasticsearch, freecad, ghost). Following ADR-007: Sequential Server Validation - one MCP at a time.
21 lines
778 B
Bash
Executable File
21 lines
778 B
Bash
Executable File
#!/bin/sh
|
|
# Wrapper script for gimp-mcp
|
|
# Ensures clean container with proper name
|
|
|
|
CONTAINER_NAME="kneldevstack-aimiddleware-gimp-mcp-crush"
|
|
IMAGE_NAME="kneldevstack-aimiddleware-gimp-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
|
|
exec docker run -i --rm --name "${CONTAINER_NAME}" \
|
|
-e "PYTHONUNBUFFERED=1" \
|
|
"${IMAGE_NAME}" "$@"
|