Skip to content

Commit b9fb686

Browse files
committed
Fixed mcp server script
1 parent 9918cdc commit b9fb686

2 files changed

Lines changed: 61 additions & 10 deletions

File tree

Dockerfile

Lines changed: 54 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,54 @@
1-
# Use Python 3.12 slim image
2-
FROM python:3.12-slim
1+
# =============================================================================
2+
# Stage 1: Build Admin Frontend
3+
# =============================================================================
4+
FROM node:22-alpine AS admin-frontend-builder
35

4-
RUN apt-get update && apt-get install ffmpeg libsm6 libxext6 htop vim wget -y
6+
WORKDIR /app/packages/fetchcraft-admin/frontend
7+
8+
# Copy package files first for better caching
9+
COPY packages/fetchcraft-admin/frontend/package*.json ./
10+
11+
# Install dependencies
12+
RUN npm ci
13+
14+
# Copy frontend source
15+
COPY packages/fetchcraft-admin/frontend/ ./
16+
17+
# Build the frontend
18+
RUN npm run build
19+
20+
# =============================================================================
21+
# Stage 2: Build MCP Server Frontend
22+
# =============================================================================
23+
FROM node:22-alpine AS mcp-frontend-builder
24+
25+
WORKDIR /app/packages/fetchcraft-mcp-server/frontend
26+
27+
# Copy package files first for better caching
28+
COPY packages/fetchcraft-mcp-server/frontend/package*.json ./
29+
30+
# Install dependencies
31+
RUN npm ci
32+
33+
# Copy frontend source
34+
COPY packages/fetchcraft-mcp-server/frontend/ ./
35+
36+
# Build the frontend
37+
RUN npm run build
38+
39+
# =============================================================================
40+
# Stage 3: Python Backend
41+
# =============================================================================
42+
FROM python:3.12-slim AS backend
43+
44+
RUN apt-get update && apt-get install -y --no-install-recommends \
45+
ffmpeg \
46+
libsm6 \
47+
libxext6 \
48+
htop \
49+
vim \
50+
wget \
51+
&& rm -rf /var/lib/apt/lists/*
552

653
# Set working directory
754
WORKDIR /app
@@ -12,18 +59,17 @@ COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
1259
# Copy the entire project
1360
COPY . .
1461

62+
# Copy built frontends from builder stages
63+
COPY --from=admin-frontend-builder /app/packages/fetchcraft-admin/frontend/dist ./packages/fetchcraft-admin/frontend/dist
64+
COPY --from=mcp-frontend-builder /app/packages/fetchcraft-mcp-server/frontend/dist ./packages/fetchcraft-mcp-server/frontend/dist
65+
1566
# Sync dependencies using uv
1667
RUN uv sync --frozen
1768

1869
# Create Documents directory
1970
RUN mkdir -p /api/Documents
2071

21-
# Expose the default port
22-
#EXPOSE 8001
23-
2472
# Set environment variables
25-
#ENV HOST=0.0.0.0
26-
#ENV PORT=8001
2773
ENV PYTHONUNBUFFERED=1
2874

2975
# Run the server

packages/fetchcraft-mcp-server/src/fetchcraft/mcp/server.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,12 @@ def init_server(*args):
7575
return combined_app
7676

7777

78-
if __name__ == "__main__":
78+
def main():
79+
"""Entry point for the fetchcraft-mcp CLI command."""
7980
import uvicorn
80-
uvicorn.run("fetchcraft.mcp.server:init_server", host="0.0.0.0", port=8003, reload=True)
81+
uvicorn.run("fetchcraft.mcp.server:init_server", host="0.0.0.0", port=8003, factory=True)
82+
83+
84+
if __name__ == "__main__":
85+
main()
8186

0 commit comments

Comments
 (0)