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