fix: configure stdio-based MCP servers (penpot, imap)
- Set penpot-mcp restart: "no" for on-demand execution - Create custom Dockerfile for imap-mcp with python module entrypoint - Fix IMAP_HOST environment variable naming (was IMAP_SERVER) - Update .env and docker-compose.yml for IMAP_HOST - Remove command overrides from imap-mcp and penpot-mcp - Verify penpot-mcp and imap-mcp work correctly
This commit is contained in:
2
.env
2
.env
@@ -43,7 +43,7 @@ DISCOURSE_API_KEY=dummy-api-key-replace-with-real
|
|||||||
DISCOURSE_API_USERNAME=admin
|
DISCOURSE_API_USERNAME=admin
|
||||||
|
|
||||||
# IMAP
|
# IMAP
|
||||||
IMAP_SERVER=imap.example.com
|
IMAP_HOST=imap.example.com
|
||||||
IMAP_PORT=993
|
IMAP_PORT=993
|
||||||
IMAP_USERNAME=user@example.com
|
IMAP_USERNAME=user@example.com
|
||||||
IMAP_PASSWORD=dummy-password-replace-with-real
|
IMAP_PASSWORD=dummy-password-replace-with-real
|
||||||
|
|||||||
@@ -248,20 +248,20 @@ services:
|
|||||||
- ops
|
- ops
|
||||||
|
|
||||||
# IMAP MCP - Email processing
|
# IMAP MCP - Email processing
|
||||||
|
# NOTE: This is a stdio-based MCP server, run on-demand by Crush via docker run
|
||||||
imap-mcp:
|
imap-mcp:
|
||||||
image: kneldevstack-aimiddleware-imap-mcp
|
image: kneldevstack-aimiddleware-imap-mcp
|
||||||
build:
|
build:
|
||||||
context: ./vendor/imap-mcp
|
context: ./vendor/imap-mcp
|
||||||
dockerfile: Dockerfile
|
dockerfile: ../../dockerfiles/imap-mcp/Dockerfile
|
||||||
container_name: kneldevstack-aimiddleware-imap-mcp
|
container_name: kneldevstack-aimiddleware-imap-mcp
|
||||||
restart: unless-stopped
|
restart: "no"
|
||||||
environment:
|
environment:
|
||||||
- PYTHONUNBUFFERED=1
|
- PYTHONUNBUFFERED=1
|
||||||
- IMAP_SERVER=${IMAP_SERVER}
|
- IMAP_HOST=${IMAP_HOST}
|
||||||
- IMAP_PORT=${IMAP_PORT:-993}
|
- IMAP_PORT=${IMAP_PORT:-993}
|
||||||
- IMAP_USERNAME=${IMAP_USERNAME}
|
- IMAP_USERNAME=${IMAP_USERNAME}
|
||||||
- IMAP_PASSWORD=${IMAP_PASSWORD}
|
- IMAP_PASSWORD=${IMAP_PASSWORD}
|
||||||
command: ["uvx", "imap-mcp"]
|
|
||||||
profiles:
|
profiles:
|
||||||
- ops
|
- ops
|
||||||
|
|
||||||
@@ -460,13 +460,14 @@ services:
|
|||||||
# ==========================================
|
# ==========================================
|
||||||
|
|
||||||
# Penpot MCP - Design collaboration platform
|
# Penpot MCP - Design collaboration platform
|
||||||
|
# NOTE: This is a stdio-based MCP server, run on-demand by Crush via docker run
|
||||||
penpot-mcp:
|
penpot-mcp:
|
||||||
image: kneldevstack-aimiddleware-penpot-mcp
|
image: kneldevstack-aimiddleware-penpot-mcp
|
||||||
build:
|
build:
|
||||||
context: ./vendor/penpot-mcp
|
context: ./vendor/penpot-mcp
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
container_name: kneldevstack-aimiddleware-penpot-mcp
|
container_name: kneldevstack-aimiddleware-penpot-mcp
|
||||||
restart: unless-stopped
|
restart: "no"
|
||||||
environment:
|
environment:
|
||||||
- PENPOT_URL=${PENPOT_URL:-https://design.penpot.app}
|
- PENPOT_URL=${PENPOT_URL:-https://design.penpot.app}
|
||||||
- PENPOT_TOKEN=${PENPOT_TOKEN}
|
- PENPOT_TOKEN=${PENPOT_TOKEN}
|
||||||
|
|||||||
24
dockerfiles/imap-mcp/Dockerfile
Normal file
24
dockerfiles/imap-mcp/Dockerfile
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
# Install uv for faster package management
|
||||||
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy dependency files
|
||||||
|
COPY pyproject.toml ./
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
RUN uv sync --no-dev --no-install-project --no-cache
|
||||||
|
|
||||||
|
# Copy source code
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Install the project
|
||||||
|
RUN uv sync --no-dev --no-editable --no-cache
|
||||||
|
|
||||||
|
# Set up environment
|
||||||
|
ENV PYTHONUNBUFFERED=1
|
||||||
|
ENV PATH=/app/.venv/bin:$PATH
|
||||||
|
|
||||||
|
ENTRYPOINT ["python", "-m", "imap_mcp.server"]
|
||||||
Reference in New Issue
Block a user