diff --git a/mcp-audiobook-wrapper.sh b/mcp-audiobook-wrapper.sh new file mode 100755 index 0000000..fc5580b --- /dev/null +++ b/mcp-audiobook-wrapper.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# Wrapper script for audiobook-mcp +# Ensures clean container with proper name + +CONTAINER_NAME="kneldevstack-aimiddleware-audiobook-mcp-crush" +IMAGE_NAME="kneldevstack-aimiddleware-audiobook-mcp" + +# Force remove existing container if it exists (in any state) +if docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then + docker rm -f "${CONTAINER_NAME}" 2>/dev/null + # Wait for container to be fully removed + while docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | 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 "AUDIOBOOK_ROOT=${AUDIOBOOK_ROOT:-/audiobooks}" \ + "${IMAGE_NAME}" "$@" diff --git a/mcp-bitwarden-wrapper.sh b/mcp-bitwarden-wrapper.sh new file mode 100755 index 0000000..a6f2747 --- /dev/null +++ b/mcp-bitwarden-wrapper.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# Wrapper script for bitwarden-mcp +# Ensures clean container with proper name + +CONTAINER_NAME="kneldevstack-aimiddleware-bitwarden-mcp-crush" +IMAGE_NAME="kneldevstack-aimiddleware-bitwarden-mcp" + +# Force remove existing container if it exists (in any state) +if docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then + docker rm -f "${CONTAINER_NAME}" 2>/dev/null + # Wait for container to be fully removed + while docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | 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 "BITWARDEN_CLIENT_ID=${BITWARDEN_CLIENT_ID:-}" \ + -e "BITWARDEN_CLIENT_SECRET=${BITWARDEN_CLIENT_SECRET:-}" \ + -e "BITWARDEN_PASSWORD=${BITWARDEN_PASSWORD:-}" \ + -e "BITWARDEN_SERVER_URL=${BITWARDEN_SERVER_URL:-https://vault.bitwarden.com}" \ + "${IMAGE_NAME}" "$@" diff --git a/mcp-blender-wrapper.sh b/mcp-blender-wrapper.sh new file mode 100755 index 0000000..416f582 --- /dev/null +++ b/mcp-blender-wrapper.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# Wrapper script for blender-mcp +# Ensures clean container with proper name + +CONTAINER_NAME="kneldevstack-aimiddleware-blender-mcp-crush" +IMAGE_NAME="kneldevstack-aimiddleware-blender-mcp" + +# Force remove existing container if it exists (in any state) +if docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then + docker rm -f "${CONTAINER_NAME}" 2>/dev/null + # Wait for container to be fully removed + while docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | 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 "BLENDER_HOST=${BLENDER_HOST:-localhost}" \ + -e "BLENDER_PORT=${BLENDER_PORT:-8888}" \ + "${IMAGE_NAME}" "$@" diff --git a/mcp-cloudron-wrapper.sh b/mcp-cloudron-wrapper.sh new file mode 100755 index 0000000..9231b67 --- /dev/null +++ b/mcp-cloudron-wrapper.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# Wrapper script for cloudron-mcp +# Ensures clean container with proper name + +CONTAINER_NAME="kneldevstack-aimiddleware-cloudron-mcp-crush" +IMAGE_NAME="kneldevstack-aimiddleware-cloudron-mcp" + +# Force remove existing container if it exists (in any state) +if docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then + docker rm -f "${CONTAINER_NAME}" 2>/dev/null + # Wait for container to be fully removed + while docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | 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 "CLOUDRON_URL=${CLOUDRON_URL:-}" \ + -e "CLOUDRON_TOKEN=${CLOUDRON_TOKEN:-}" \ + "${IMAGE_NAME}" "$@" diff --git a/mcp-docker-wrapper.sh b/mcp-docker-wrapper.sh new file mode 100755 index 0000000..50f9bc9 --- /dev/null +++ b/mcp-docker-wrapper.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# Wrapper script for docker-mcp +# Ensures clean container with proper name and Docker socket + +CONTAINER_NAME="kneldevstack-aimiddleware-docker-mcp-crush" +IMAGE_NAME="kneldevstack-aimiddleware-docker-mcp" + +# Force remove existing container if it exists (in any state) +if docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then + docker rm -f "${CONTAINER_NAME}" 2>/dev/null + # Wait for container to be fully removed + while docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; do + sleep 0.05 + done +fi + +# Start MCP server with explicit name, Docker socket, and config +exec docker run -i --rm --name "${CONTAINER_NAME}" \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v "${HOME}/.docker/config.json:/root/.docker/config.json:ro" \ + "${IMAGE_NAME}" "$@" diff --git a/mcp-drawio-wrapper.sh b/mcp-drawio-wrapper.sh new file mode 100755 index 0000000..77596a0 --- /dev/null +++ b/mcp-drawio-wrapper.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# Wrapper script for drawio-mcp +# Ensures clean container with proper name + +CONTAINER_NAME="kneldevstack-aimiddleware-drawio-mcp-crush" +IMAGE_NAME="kneldevstack-aimiddleware-drawio-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 "DRAWIO_URL=${DRAWIO_URL:-https://app.diagrams.net}" \ + "${IMAGE_NAME}" "$@" diff --git a/mcp-elasticsearch-wrapper.sh b/mcp-elasticsearch-wrapper.sh new file mode 100755 index 0000000..88f087b --- /dev/null +++ b/mcp-elasticsearch-wrapper.sh @@ -0,0 +1,22 @@ +#!/bin/sh +# Wrapper script for elasticsearch-mcp +# Ensures clean container with proper name + +CONTAINER_NAME="kneldevstack-aimiddleware-elasticsearch-mcp-crush" +IMAGE_NAME="kneldevstack-aimiddleware-elasticsearch-mcp" + +# Force remove existing container if it exists (in any state) +if docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then + docker rm -f "${CONTAINER_NAME}" 2>/dev/null + # Wait for container to be fully removed + while docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | 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 "ES_URL=${ES_URL:-http://localhost:9200}" \ + -e "ELASTICSEARCH_USERNAME=${ELASTICSEARCH_USERNAME:-}" \ + -e "ELASTICSEARCH_PASSWORD=${ELASTICSEARCH_PASSWORD:-}" \ + "${IMAGE_NAME}" "$@"