Dockerfile•1.11 kB
# Generated by https://smithery.ai. See: https://smithery.ai/docs/build/project-config
# Use Python 3.12 slim as base image
FROM python:3.12-slim
# Set environment variables
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
UV_CACHE_DIR=/tmp/uv-cache
# Install uv directly (most dependencies should be available in the base image)
RUN pip install uv
# Set work directory
WORKDIR /app
# Copy dependency files
COPY pyproject.toml uv.lock ./
# Create a minimal package structure for uv sync
RUN mkdir -p mlb_stats_mcp && touch mlb_stats_mcp/__init__.py
# Copy the entire project
COPY mlb_stats_mcp /app/mlb_stats_mcp
# # Copy .env file to the working directory
# COPY .env /app/.env
# Create logs directory
RUN mkdir -p /app/logs
# Install the package in development mode system-wide
RUN uv pip install --system -e .
# Patch data for pybaseball
RUN uv run python mlb_stats_mcp/utils/scripts/data_download.py
# Expose port for HTTP transport (Smithery provides $PORT, default 8081)
EXPOSE 8081
# Run the MCP server with HTTP transport
CMD ["python", "-m", "mlb_stats_mcp.server", "--http"]