2 changed files with 183 additions and 0 deletions
@ -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"] |
||||
@ -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…
Reference in new issue