Skip to main content
Glama
run-docker-mcp.sh2.91 kB
#!/bin/bash # PrestaShop MCP Server - Docker Wrapper for Claude Desktop/Code # # This script makes it easy to run the PrestaShop MCP server in Docker # and integrate it with Claude Desktop or Claude Code. # # Usage: # ./run-docker-mcp.sh # # Environment Variables: # PRESTASHOP_DOCS_PATH - Path to local PrestaShop docs (optional, will auto-fetch if not provided) # PRESTASHOP_AUTO_FETCH - Set to "false" to disable auto-fetching (default: true) # PRESTASHOP_DB_PATH - Path to local database cache (optional) set -e # Configuration IMAGE_NAME="prestashop-mcp:latest" CONTAINER_NAME="prestashop-mcp-$$" # Unique name per invocation # Check if Docker is running if ! docker info >/dev/null 2>&1; then echo "ERROR: Docker is not running. Please start Docker Desktop." >&2 exit 1 fi # Check if image exists, build if missing if ! docker image inspect "$IMAGE_NAME" >/dev/null 2>&1; then echo "Building PrestaShop MCP Docker image..." >&2 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" docker build -f "$SCRIPT_DIR/Dockerfile.mcp" -t "$IMAGE_NAME" "$SCRIPT_DIR" >&2 echo "Build complete!" >&2 fi # Prepare Docker run arguments DOCKER_ARGS=( --rm --name "$CONTAINER_NAME" -i # Interactive mode for STDIN (NO -t for TTY!) ) # Mount local docs if available if [ -n "$PRESTASHOP_DOCS_PATH" ] && [ -d "$PRESTASHOP_DOCS_PATH" ]; then echo "Using local documentation from: $PRESTASHOP_DOCS_PATH" >&2 DOCKER_ARGS+=( -v "$PRESTASHOP_DOCS_PATH:/data/prestashop-docs:ro" -e "PRESTASHOP_DOCS_PATH=/data/prestashop-docs" ) else echo "No local docs mounted. Will auto-fetch from GitHub." >&2 fi # Mount database cache if specified if [ -n "$PRESTASHOP_DB_PATH" ]; then DB_DIR=$(dirname "$PRESTASHOP_DB_PATH") mkdir -p "$DB_DIR" echo "Using database cache: $PRESTASHOP_DB_PATH" >&2 DOCKER_ARGS+=( -v "$PRESTASHOP_DB_PATH:/app/database.db" ) fi # Set auto-fetch behavior AUTO_FETCH="${PRESTASHOP_AUTO_FETCH:-true}" DOCKER_ARGS+=(-e "PRESTASHOP_AUTO_FETCH=$AUTO_FETCH") # Print connection info (to stderr, not stdout - important for MCP!) echo "" >&2 echo "========================================" >&2 echo "PrestaShop MCP Server (Docker)" >&2 echo "========================================" >&2 echo "Ready to accept MCP requests via STDIO" >&2 echo "" >&2 echo "Add to your Claude Desktop config:" >&2 echo '{' >&2 echo ' "mcpServers": {' >&2 echo ' "prestashop": {' >&2 echo " \"command\": \"$(realpath "$0")\"" >&2 echo ' }' >&2 echo ' }' >&2 echo '}' >&2 echo "========================================" >&2 echo "" >&2 # Cleanup on exit cleanup() { docker stop "$CONTAINER_NAME" >/dev/null 2>&1 || true } trap cleanup EXIT INT TERM # Run the container # IMPORTANT: No -t flag! This breaks STDIO communication with MCP clients exec docker run "${DOCKER_ARGS[@]}" "$IMAGE_NAME"

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/florinel-chis/prestashop-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server