Skip to main content

Docker

Run the FrootAI MCP Server as a Docker container for consistent, reproducible deployments across teams and environments.

Quick Startโ€‹

docker pull ghcr.io/frootai/frootai-mcp:latest
docker run -p 8080:8080 ghcr.io/frootai/frootai-mcp:latest

Docker Composeโ€‹

For a complete local development setup:

docker-compose.yml
version: '3.8'

services:
frootai-mcp:
image: ghcr.io/frootai/frootai-mcp:latest
ports:
- "8080:8080"
environment:
- TRANSPORT=streamable-http
- PORT=8080
- LOG_LEVEL=info
volumes:
- ./solution-plays:/data/solution-plays:ro
- ./knowledge.json:/app/knowledge.json:ro
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
docker compose up -d

Environment Variablesโ€‹

VariableDefaultDescription
TRANSPORTstdioTransport mode: stdio or streamable-http
PORT8080HTTP port (when using streamable-http transport)
LOG_LEVELinfoLogging level: debug, info, warn, error
PLAYS_DIR/data/solution-playsPath to solution plays directory
KNOWLEDGE_PATH/app/knowledge.jsonPath to knowledge base file

Building from Sourceโ€‹

cd mcp-server
docker build -t frootai-mcp:local .
docker run -p 8080:8080 frootai-mcp:local

Multi-Stage Dockerfileโ€‹

Dockerfile
FROM node:22-slim AS base
WORKDIR /app

COPY package.json package-lock.json ./
RUN npm ci --production --ignore-scripts

COPY index.js knowledge.json ./

EXPOSE 8080
ENV TRANSPORT=streamable-http
ENV PORT=8080

CMD ["node", "index.js"]

Connecting Clientsโ€‹

VS Code via HTTP Transportโ€‹

.vscode/mcp.json
{
"servers": {
"frootai": {
"url": "http://localhost:8080/mcp"
}
}
}

Claude Desktop via HTTPโ€‹

{
"mcpServers": {
"frootai": {
"url": "http://localhost:8080/mcp"
}
}
}

Health Checkโ€‹

curl http://localhost:8080/health
# {"status":"healthy","version":"3.5.0","tools":25}

Versionโ€‹

Docker image version: v3.5.0, published to ghcr.io/frootai/frootai-mcp.

Tags available:

  • latest โ€” most recent stable release
  • 3.5.0 โ€” pinned version
  • main โ€” latest from main branch (may be unstable)

See Alsoโ€‹