935abf86d4
build-image / build (push) Failing after 18s
- Bump mcp[cli] 1.22 -> 1.28.1 (negotiates MCP protocol 2025-11-25, matching current Claude clients; the old 2025-06-18 server never got a tools/list on the connector surface). - Bake transport config into code: stateless_http + json_response for HTTP (single JSON body instead of a 34KB SSE stream, which the connector pipeline handles far more reliably). - Bake Authentik OAuth (AuthSettings + JWT TokenVerifier) into intervals_mcp_server.auth, configured from MCP_ISSUER/MCP_RESOURCE/MCP_JWKS_URI/MCP_CLIENT_ID — removes the runtime FastMCP.__init__ monkeypatch from the k8s deployment command. - Accept token audience with/without trailing slash (RFC 8707 clients use the slash-normalised resource metadata value). - Dockerfile CMD runs the module (transport via MCP_TRANSPORT); add .gitea CI to build+push the image to git.farh.net/farhoodlabs/intervalsicu-mcp. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
29 lines
829 B
Docker
29 lines
829 B
Docker
FROM python:3.12-slim
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Install build dependencies and Python build backend
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
curl \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Python build tool
|
|
RUN pip install --no-cache-dir hatchling
|
|
|
|
# Copy project files
|
|
COPY pyproject.toml pyproject.toml
|
|
COPY src src
|
|
COPY README.md README.md
|
|
COPY .env.example .env.example
|
|
|
|
# Install the package and runtime dependencies
|
|
RUN pip install --no-cache-dir .
|
|
|
|
# Run the MCP server. Transport is selected via MCP_TRANSPORT (default stdio);
|
|
# the deployment sets MCP_TRANSPORT=http for streamable-HTTP. Auth + stateless
|
|
# JSON transport are configured in code (see mcp_instance.py), no monkeypatch.
|
|
CMD ["python", "-m", "intervals_mcp_server.server"]
|