Namespace
samanhappy
Image / Tag
mcphub:0.9.16-full
Content Digest
sha256:d51b032908cf66bc682fdb4f67080da4b566662b367a7c1ccab85bdf145f9bbd
Details
Created

2025-10-22 04:09:03 UTC

Size

944 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2025-10-22T04:07:18.270Z
  • org.opencontainers.image.description
    A unified hub for centralized management and dynamic organization of multiple MCP servers/APIs into streamable HTTP (SSE) endpoints, with support for flexible routing strategies
  • org.opencontainers.image.licenses
    Apache-2.0
  • org.opencontainers.image.revision
    1130f6833e3b6f0cad99a7ca4449d043366d3fa3
  • org.opencontainers.image.source
    https://github.com/samanhappy/mcphub
  • org.opencontainers.image.title
    mcphub
  • org.opencontainers.image.url
    https://github.com/samanhappy/mcphub
  • org.opencontainers.image.version
    0.9.16-full

Environment
GPG_KEY

7169605F62C751356D054A26A821E680E5FA6305

PATH

/usr/local/share/pnpm:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PNPM_HOME

/usr/local/share/pnpm

PYTHON_SHA256

ed5ef34cda36cfa2f3a340f07cac7e7814f91c7f3c411f6d3562323a866c5c66

PYTHON_VERSION

3.13.9


Layers

[#000] sha256:abe1fea375429ba91b23776f15f53da4ed790fa2b779b40d20f21e69bd66de5a - 2.85% (26.9 MB)

[#001] sha256:1dba44ed9c8df9cf9f621b8a3c1347b947a4b36f8ef6d7a644c0eeed164e5cf1 - 0.36% (3.35 MB)

[#002] sha256:4e84bd2d2984891c46ef006f301c3c483692600980f04b293783b3324ce758d7 - 1.25% (11.8 MB)

[#003] sha256:256cc6aa0e8105f712facac61fed2d82d1d016fc4d4f5f38a2575823d8c7401a - 0.0% (248 Bytes)

[#004] sha256:aa6e7ac4377782d5d448e7ba811e20a4b03cd473a61a2bcd7ad88e3ca69d14fe - 2.14% (20.2 MB)

[#005] sha256:a92b54bf65015162d807e3648b74233bab4233a1570bf80ec3fd1164bb899d31 - 10.74% (101 MB)

[#006] sha256:d4ad2ca56d08c760b8338cbd8a359aee9a866f0055564b86f7ecc59ec58eafb1 - 0.99% (9.32 MB)

[#007] sha256:504ee3bb7807b6ad5c66adacf310e54860d46bd5271186863d69dab0f3613de3 - 1.72% (16.2 MB)

[#008] sha256:f99a950f1298c89be1226486b3be9125fbd1282d28e8f990a483c17cc81cbd73 - 52.22% (493 MB)

[#009] sha256:4d8fa40cf3f43b09a968480cd1e506f35b45226676f16bc9f6cf25d25fe7c292 - 1.55% (14.7 MB)

[#010] sha256:e3b16461b3b1a15482a30cfce37411a89ea27edb3dee41d4c5bb49dcd28d1920 - 0.0% (91 Bytes)

[#011] sha256:d549a68b51e94fa110ca4ccf7b19bfc37ef15cd4a4e0d6c4a486ee2dda8b1956 - 0.01% (100 KB)

[#012] sha256:ddf81f237b8c85d1bf9740fcf649e86f3d2f32a39f268c9b05d3af8e7a68ea24 - 25.64% (242 MB)

[#013] sha256:38e47c6a5b4eb0b94a80cd464752680fe63f8bbc4917244d7b4c0180f29aef4a - 0.23% (2.19 MB)

[#014] sha256:4e972c6fbaa4633c8db94513c020365b43781a0f99fb0140930b32d75c563ae2 - 0.04% (397 KB)

[#015] sha256:afc950fce6cd48cc46f1f6f2965fcfbe8e042433afea80e47c4a23578a26a225 - 0.25% (2.38 MB)

[#016] sha256:6e3a7fc85a7da37b91486e2282abf8324903f21045128362892f0f98177a1ff5 - 0.0% (830 Bytes)

[#017] sha256:9796a3bad74034214fc0c50a5b8980a9380dac1d02e66b92bae93b3e63c16bb7 - 0.0% (826 Bytes)


History
2025-10-14 21:49:24 UTC (debuerreotype 0.16)

# debian.sh --arch 'amd64' out/ 'bookworm' '@1760918400'

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; rm -rf /var/lib/apt/lists/* # buildkit

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.13.9

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=ed5ef34cda36cfa2f3a340f07cac7e7814f91c7f3c411f6d3562323a866c5c66

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev gcc gnupg libbluetooth-dev libbz2-dev libc6-dev libdb-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev make tk-dev uuid-dev wget xz-utils zlib1g-dev ; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; gpg --batch --verify python.tar.xz.asc python.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME" python.tar.xz.asc; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-optimizations --enable-option-checking=fatal --enable-shared $(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:--Wl},--strip-all"; arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; case "$arch" in amd64|arm64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; i386) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:--Wl},-rpath='\$\$ORIGIN/../lib'" python ; make install; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; ldconfig; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2025-10-22 04:07:25 UTC (buildkit.dockerfile.v0)

COPY /uv /uvx /bin/ # buildkit

2025-10-22 04:07:40 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get install -y curl gnupg git && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && apt-get install -y nodejs && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit

2025-10-22 04:07:42 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c npm install -g pnpm # buildkit

2025-10-22 04:07:44 UTC (buildkit.dockerfile.v0)

ENV PNPM_HOME=/usr/local/share/pnpm

2025-10-22 04:07:44 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/share/pnpm:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2025-10-22 04:07:44 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p $PNPM_HOME && pnpm add -g @amap/amap-maps-mcp-server @playwright/mcp@latest tavily-mcp@latest @modelcontextprotocol/server-github @modelcontextprotocol/server-slack # buildkit

2025-10-22 04:07:44 UTC (buildkit.dockerfile.v0)

ARG INSTALL_EXT=true

2025-10-22 04:08:32 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c if [ "$INSTALL_EXT" = "true" ]; then ARCH=$(uname -m); if [ "$ARCH" = "x86_64" ]; then npx -y playwright install --with-deps chrome; else echo "Skipping Chrome installation on non-amd64 architecture: $ARCH"; fi; apt-get update && apt-get install -y ca-certificates curl iptables && install -m 0755 -d /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc && chmod a+r /etc/apt/keyrings/docker.asc && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io && apt-get clean && rm -rf /var/lib/apt/lists/*; fi # buildkit

2025-10-22 04:08:32 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c uv tool install mcp-server-fetch # buildkit

2025-10-22 04:08:32 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2025-10-22 04:08:32 UTC (buildkit.dockerfile.v0)

COPY package.json pnpm-lock.yaml ./ # buildkit

2025-10-22 04:08:45 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c pnpm install # buildkit

2025-10-22 04:08:45 UTC (buildkit.dockerfile.v0)

COPY . . # buildkit

2025-10-22 04:08:46 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c curl -s -f --connect-timeout 10 https://mcpm.sh/api/servers.json -o servers.json || echo "Failed to download servers.json, using bundled version" # buildkit

2025-10-22 04:09:03 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c pnpm frontend:build && pnpm build # buildkit

2025-10-22 04:09:03 UTC (buildkit.dockerfile.v0)

COPY entrypoint.sh /usr/local/bin/entrypoint.sh # buildkit

2025-10-22 04:09:03 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c chmod +x /usr/local/bin/entrypoint.sh # buildkit

2025-10-22 04:09:03 UTC (buildkit.dockerfile.v0)

EXPOSE [3000/tcp]

2025-10-22 04:09:03 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

2025-10-22 04:09:03 UTC (buildkit.dockerfile.v0)

CMD ["pnpm" "start"]

Details
Created

2025-10-22 04:15:59 UTC

Size

590 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2025-10-22T04:07:18.270Z
  • org.opencontainers.image.description
    A unified hub for centralized management and dynamic organization of multiple MCP servers/APIs into streamable HTTP (SSE) endpoints, with support for flexible routing strategies
  • org.opencontainers.image.licenses
    Apache-2.0
  • org.opencontainers.image.revision
    1130f6833e3b6f0cad99a7ca4449d043366d3fa3
  • org.opencontainers.image.source
    https://github.com/samanhappy/mcphub
  • org.opencontainers.image.title
    mcphub
  • org.opencontainers.image.url
    https://github.com/samanhappy/mcphub
  • org.opencontainers.image.version
    0.9.16-full

Environment
GPG_KEY

7169605F62C751356D054A26A821E680E5FA6305

PATH

/usr/local/share/pnpm:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PNPM_HOME

/usr/local/share/pnpm

PYTHON_SHA256

ed5ef34cda36cfa2f3a340f07cac7e7814f91c7f3c411f6d3562323a866c5c66

PYTHON_VERSION

3.13.9


Layers

[#000] sha256:21b7accdc53fc02b56a5c1cccd412be04189e5a5e674fd092ffbedc72596be91 - 4.54% (26.8 MB)

[#001] sha256:ea8f6fc578efcd5fa02f6e32c91e95d3bce475aaee9e442fb08836cfae297947 - 0.54% (3.19 MB)

[#002] sha256:b6dcc448f70baa8e327e44b0966a2d4bb3889d0a6391f75ded943be764966c65 - 1.99% (11.7 MB)

[#003] sha256:4dc344ae9558f152f55445cafd19d0360b8aa0894f6e6226744f2e456bb4b4fb - 0.0% (249 Bytes)

[#004] sha256:f3a7c894c553e6c59b7c100353389a2ec20a52ba348908c685988332422b6084 - 3.31% (19.5 MB)

[#005] sha256:dc8c72e30d624b8f2502b43aff76eb4aa43d5761fa84bdd6e53ba01db9e300f3 - 17.2% (102 MB)

[#006] sha256:d1bc04b10837dfe0b1f125941042adf7d394fab5e1b6aea1d138be46e8d5f479 - 1.58% (9.32 MB)

[#007] sha256:c04e1513c08953bfc9f84bd58e23bea9a0d737566f2ecb893cdb3499baaf0a53 - 2.75% (16.2 MB)

[#008] sha256:c833ec01a9121f55e09313811eaba34a8ab60e9bd32e3ab9cd3ee56466b926fc - 25.2% (149 MB)

[#009] sha256:3c90c00be6ddd1e73f35eda6960fb0dbe4ad6aa3b59527070cf68b0d67520b89 - 2.44% (14.4 MB)

[#010] sha256:61c28c1e1118202880857d42c96ce5d67dd8327cdecedbcecf03870f0f35aa10 - 0.0% (93 Bytes)

[#011] sha256:a2248387c13d957be7643acf06c2aeb8cb8fba1084454b08ad9b5a021e2953f9 - 0.02% (100 KB)

[#012] sha256:56656e1f39beb48996763dc0d2c5a26d73dae5722d5ad8f0a3b2fb8101f2aa2f - 39.6% (234 MB)

[#013] sha256:38e47c6a5b4eb0b94a80cd464752680fe63f8bbc4917244d7b4c0180f29aef4a - 0.37% (2.19 MB)

[#014] sha256:1a7bf402cfd25cd4489be733122f0d532b9aabb192c81869cb2b3de6ee99d475 - 0.07% (397 KB)

[#015] sha256:affa95fe8db7345e9aee88d3c3ac640e3cbf8789269ac5bb2d139042aa9e114f - 0.4% (2.38 MB)

[#016] sha256:117818beb0d1453e9baccc3452044668be2592c26ccfb369f6fedef33466657d - 0.0% (830 Bytes)

[#017] sha256:a8d5550f480dc25dff35238f206ad9707a9815d5a90f18f150990b742434f42a - 0.0% (826 Bytes)


History
2025-10-14 21:49:24 UTC (debuerreotype 0.16)

# debian.sh --arch 'arm64' out/ 'bookworm' '@1760918400'

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; rm -rf /var/lib/apt/lists/* # buildkit

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.13.9

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=ed5ef34cda36cfa2f3a340f07cac7e7814f91c7f3c411f6d3562323a866c5c66

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev gcc gnupg libbluetooth-dev libbz2-dev libc6-dev libdb-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev make tk-dev uuid-dev wget xz-utils zlib1g-dev ; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; gpg --batch --verify python.tar.xz.asc python.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME" python.tar.xz.asc; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-optimizations --enable-option-checking=fatal --enable-shared $(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:--Wl},--strip-all"; arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; case "$arch" in amd64|arm64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; i386) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:--Wl},-rpath='\$\$ORIGIN/../lib'" python ; make install; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; ldconfig; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit

2025-10-14 21:49:24 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2025-10-22 04:07:24 UTC (buildkit.dockerfile.v0)

COPY /uv /uvx /bin/ # buildkit

2025-10-22 04:09:39 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get install -y curl gnupg git && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && apt-get install -y nodejs && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit

2025-10-22 04:09:48 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c npm install -g pnpm # buildkit

2025-10-22 04:10:06 UTC (buildkit.dockerfile.v0)

ENV PNPM_HOME=/usr/local/share/pnpm

2025-10-22 04:10:06 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/share/pnpm:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2025-10-22 04:10:06 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p $PNPM_HOME && pnpm add -g @amap/amap-maps-mcp-server @playwright/mcp@latest tavily-mcp@latest @modelcontextprotocol/server-github @modelcontextprotocol/server-slack # buildkit

2025-10-22 04:10:06 UTC (buildkit.dockerfile.v0)

ARG INSTALL_EXT=true

2025-10-22 04:11:45 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c if [ "$INSTALL_EXT" = "true" ]; then ARCH=$(uname -m); if [ "$ARCH" = "x86_64" ]; then npx -y playwright install --with-deps chrome; else echo "Skipping Chrome installation on non-amd64 architecture: $ARCH"; fi; apt-get update && apt-get install -y ca-certificates curl iptables && install -m 0755 -d /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc && chmod a+r /etc/apt/keyrings/docker.asc && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io && apt-get clean && rm -rf /var/lib/apt/lists/*; fi # buildkit

2025-10-22 04:11:51 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c uv tool install mcp-server-fetch # buildkit

2025-10-22 04:11:51 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2025-10-22 04:11:51 UTC (buildkit.dockerfile.v0)

COPY package.json pnpm-lock.yaml ./ # buildkit

2025-10-22 04:12:55 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c pnpm install # buildkit

2025-10-22 04:12:56 UTC (buildkit.dockerfile.v0)

COPY . . # buildkit

2025-10-22 04:12:57 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c curl -s -f --connect-timeout 10 https://mcpm.sh/api/servers.json -o servers.json || echo "Failed to download servers.json, using bundled version" # buildkit

2025-10-22 04:15:59 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c pnpm frontend:build && pnpm build # buildkit

2025-10-22 04:15:59 UTC (buildkit.dockerfile.v0)

COPY entrypoint.sh /usr/local/bin/entrypoint.sh # buildkit

2025-10-22 04:15:59 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c chmod +x /usr/local/bin/entrypoint.sh # buildkit

2025-10-22 04:15:59 UTC (buildkit.dockerfile.v0)

EXPOSE [3000/tcp]

2025-10-22 04:15:59 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

2025-10-22 04:15:59 UTC (buildkit.dockerfile.v0)

CMD ["pnpm" "start"]