Browse Source

Added docker/docker-compose files

master
chodak166 1 month ago
parent
commit
650f41ae13
  1. 76
      Dockerfile
  2. 107
      docker-compose.yml

76
Dockerfile

@ -0,0 +1,76 @@
FROM node:24.0.1-alpine
# Install Node.js package supergateway
RUN npm install -g supergateway
# Install system dependencies including build tools
RUN apk update && \
apk add --no-cache \
python3 \
py3-pip \
python3-dev \
bash \
screen \
rust \
cargo \
cmake \
make \
g++ \
clang \
llvm-dev \
clang-dev
### Python-based tools
# Install bindgen-cli required by aws-lc-sys (dependency of uvx)
RUN cargo install --force --locked bindgen-cli
# Add cargo bin to PATH
ENV PATH="/root/.cargo/bin:${PATH}"
ENV LIBCLANG_PATH="/usr/lib/llvm19/lib/"
# create venv
RUN python3 -m venv /venv && \
echo "source /venv/bin/activate" >> /root/.profile && \
/venv/bin/pip install --no-cache-dir uvx uvenv mcp-server-fetch matplotlib numpy pyyaml
ENV PATH="/venv/bin:${PATH}"
### Node-based tools
# Clone, install dependencies, and build google-search-mcp-server
RUN apk update && apk add --no-cache git
RUN git clone https://github.com/ayush-rudani/google-search-mcp-server.git /opt/google-search-mcp-server && \
apk add --no-cache git && \
cd /opt/google-search-mcp-server && \
npm install && \
npm run build
# Install global dependencies for Node.js-based MCP servers
RUN npm install -g \
@modelcontextprotocol/server-google-maps \
@modelcontextprotocol/server-filesystem \
@upstash/context7-mcp \
@modelcontextprotocol/server-puppeteer \
@wonderwhy-er/desktop-commander@latest \
mcp-communicator-telegram \
mcp-cli-exec
RUN npx @wonderwhy-er/desktop-commander@latest setup
# chromium and x11 buffer (xvfb) for puppeteer
RUN apk add chromium
RUN apk add xvfb xvfb-run
# Clean up apk cache
RUN rm -rf /var/cache/apk/*
# Ensure Python user binaries are in PATH
ENV PATH="/root/.local/bin:${PATH}"
WORKDIR /app
EXPOSE 8000
ENTRYPOINT ["supergateway"]
CMD ["--help"]

107
docker-compose.yml

@ -0,0 +1,107 @@
version: '3.8'
# NOTE: remember to fill your .env
services:
mcp-fetch:
image: chodak166/mcp-supergateway
container_name: mcp-fetch
ports:
- "8001:8000"
command: --stdio "mcp-server-fetch --ignore-robots-txt"
restart: unless-stopped
# mcp-google-search:
# image: chodak166/mcp-supergateway
# ports:
# - "8002:8000"
# env_file:
# - .env
# command: --stdio "node /opt/google-search-mcp-server/dist/index.js"
# restart: unless-stopped
mcp-google-maps:
image: chodak166/mcp-supergateway
ports:
- "8003:8000"
env_file:
- .env
command: --stdio "npx -y @modelcontextprotocol/server-google-maps"
restart: unless-stopped
mcp-context7:
image: chodak166/mcp-supergateway
ports:
- "8004:8000"
env_file:
- .env
command: --stdio "npx -y @upstash/context7-mcp@latest"
restart: unless-stopped
# mcp-commander:
# image: chodak166/mcp-supergateway
# ports:
# - "8005:8000"
# volumes:
# - ./volumes/mcp/workspace:/app
# command: --stdio "npx -y @wonderwhy-er/desktop-commander@latest"
# restart: unless-stopped
mcp-puppeteer:
image: chodak166/mcp-supergateway
ports:
- "8006:8000"
command: --stdio "xvfb-run --server-args='-screen 0 1920x1080x24' -a npx -y @modelcontextprotocol/server-puppeteer"
restart: unless-stopped
env_file:
- .env
# mcp-telegram:
# image: chodak166/mcp-supergateway
# ports:
# - "8007:8000"
# env_file:
# - .env
# working_dir: /app
# volumes:
# - ./:/app
# command: --stdio "npx -y mcptelegram"
# restart: unless-stopped
# mcp-filesystem:
# image: chodak166/mcp-supergateway
# ports:
# - "8008:8000"
# env_file:
# - .env
# working_dir: /app
# volumes:
# - ./:/app
# command: --stdio "npx -y @modelcontextprotocol/server-filesystem /app"
# restart: unless-stopped
mcp-excel:
image: chodak166/mcp-supergateway
ports:
- "8009:8000"
volumes:
- ~/src/mcp-excel:/app
command: --stdio "npx -y @negokaz/excel-mcp-server"
restart: unless-stopped
#
# mcp-inspector:
# image: chodak166/mcp-supergateway
# container_name: mcp-inspector
# network_mode: host
# command: --stdio "npx -y @modelcontextprotocol/inspector"
# restart: unless-stopped
mcp-brave-search:
image: chodak166/mcp-supergateway
ports:
- "8010:8000"
env_file:
- .env
command: --stdio "npx -y @brave/brave-search-mcp-server"
restart: unless-stopped
Loading…
Cancel
Save