fix(mcp): resolve proxmox-mcp fastmcp import, mark snipeit-mcp blocked
- proxmox-mcp: Fixed by patching pyproject.toml to use fastmcp from PyPI and updating imports from mcp.server.fastmcp to fastmcp. Container now builds and runs (requires PROXMOX_MCP_CONFIG env var). - snipeit-mcp: Created stub Dockerfile that exits with error message. Upstream depends on private snipeit-api package never published to PyPI. - STATUS.md: Updated to reflect 25 working MCP servers including proxmox-mcp. - .env: Added template with placeholders for required credentials. 💘 Generated with Crush Assisted-by: GLM-5 via Crush <crush@charm.land>
This commit is contained in:
@@ -1,23 +1,21 @@
|
||||
FROM python:3.12-slim
|
||||
|
||||
# Install git for git+ dependencies
|
||||
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install uv for faster package management
|
||||
# Install uv for faster package management and git for any git dependencies
|
||||
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends git && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy dependency files
|
||||
COPY pyproject.toml ./
|
||||
|
||||
# Install dependencies
|
||||
RUN uv sync --no-dev --no-install-project --no-cache
|
||||
|
||||
# Copy source code
|
||||
# Copy all source code first
|
||||
COPY . .
|
||||
|
||||
# Install the project
|
||||
# Replace mcp git dependency with fastmcp from PyPI
|
||||
RUN sed -i 's|"mcp @ git+https://github.com/modelcontextprotocol/python-sdk.git"|"fastmcp"|' pyproject.toml
|
||||
|
||||
# Patch imports to use fastmcp instead of mcp.server.fastmcp
|
||||
RUN find . -name "*.py" -exec sed -i 's/from mcp\.server\.fastmcp/from fastmcp/g' {} \;
|
||||
|
||||
# Install dependencies and project
|
||||
RUN uv sync --no-dev --no-editable --no-cache
|
||||
|
||||
# Set up environment
|
||||
|
||||
@@ -1,21 +1,14 @@
|
||||
FROM python:3.12-slim
|
||||
# snipeit-mcp is BLOCKED - requires private snipeit-api package
|
||||
# The upstream author created a private package that was never published
|
||||
# See: https://github.com/ directa-innovations/snipeit-mcp
|
||||
FROM alpine:3.20
|
||||
|
||||
# Install uv for faster package management
|
||||
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
||||
RUN echo '#!/bin/sh' > /entrypoint.sh && \
|
||||
echo 'echo "ERROR: snipeit-mcp is blocked due to missing private dependency (snipeit-api)"' >> /entrypoint.sh && \
|
||||
echo 'echo "The upstream author created a private snipeit-api package that was never published to PyPI."' >> /entrypoint.sh && \
|
||||
echo 'echo "Public snipeit package (v1.1, archived 2022) has incompatible API."' >> /entrypoint.sh && \
|
||||
echo 'echo "Contact upstream author or rewrite using public snipeit package API."' >> /entrypoint.sh && \
|
||||
echo 'exit 1' >> /entrypoint.sh && \
|
||||
chmod +x /entrypoint.sh
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy only the snipeit-mcp project
|
||||
COPY snipeit-mcp /app/
|
||||
|
||||
# Replace local snipeit-api dependency with PyPI package
|
||||
RUN sed -i 's|snipeit-api @ file:///Users/work/Documents/Projects/Inventory/snipeit-python-api|snipeit>=0.2.0|g' pyproject.toml
|
||||
|
||||
# Install the project with uv
|
||||
RUN uv venv && uv pip install --no-cache -e .
|
||||
|
||||
# Set up environment
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
ENV PATH=/app/.venv/bin:$PATH
|
||||
|
||||
ENTRYPOINT ["python", "server.py"]
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
|
||||
Reference in New Issue
Block a user