Namespace
samanhappy
Image / Tag
mcphub:0.11.12-full
Content Digest
sha256:0d93c0950819a7965159bf9f1f58ef178b46f840bf194a171e82044f822dd886
Details
Created

2026-01-07 14:18:54 UTC

Size

988 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-01-07T14:16:59.438Z
  • org.opencontainers.image.description
    A unified hub for centrally managing and dynamically orchestrating multiple MCP servers/APIs into separate endpoints with flexible routing strategies
  • org.opencontainers.image.licenses
    Apache-2.0
  • org.opencontainers.image.revision
    6b3a077a679cab9c0e303790d3da14c88eff8577
  • 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.11.12-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

16ede7bb7cdbfa895d11b0642fa0e523f291e6487194d53cf6d3b338c3a17ea2

PYTHON_VERSION

3.13.11


Layers

[#000] sha256:0347dcb76707f7d71a7c0b3a5f4a63b97cdd9923e637e67ad65b3b2d4ba05942 - 2.72% (26.9 MB)

[#001] sha256:fc172d052919f3a8cf47383499a66d7d1623074dc61f627aa7c6e0690b82f857 - 0.34% (3.35 MB)

[#002] sha256:17ab534e11501594a6ee56e0e3432f84f5399936e751890b440086db004ca08e - 1.2% (11.9 MB)

[#003] sha256:613cb28b8fb768c27713b9dac43a9ceab83c267119aa91b32951bc1ff02ca3aa - 0.0% (249 Bytes)

[#004] sha256:befb954d96364c339144efa2553615a51c6b5b4891a52d3e0c620e2c03301db6 - 2.11% (20.8 MB)

[#005] sha256:10d9ac357adeb22756971d0747210ef16e860ca50c2afe133428070f57902fa0 - 19.89% (197 MB)

[#006] sha256:b084482b5c9a5419610ee48e6224b2deb1554fb1e8266b0f106758f7a9eba10c - 0.95% (9.37 MB)

[#007] sha256:aa054ee6f6948151254dcaaebe906371213b0ac3b8292da9b4c7f692b6d8945b - 1.9% (18.8 MB)

[#008] sha256:d17709172c41645dae2b83b1c7da67ed4683f16a1b8105f0cb6689a2d7382f54 - 45.85% (453 MB)

[#009] sha256:2fa2a4381f60bbbfba0d5001adbb1b74afe90f3c1c62694f9ed4b1194acfd3dd - 2.03% (20.1 MB)

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

[#011] sha256:5122ae4e0b46f34bdf1fd3704b22d01a22ee62115012436f7302c2316a360140 - 0.01% (98.4 KB)

[#012] sha256:aca1c02e1628562872e2d2c71cb871b565b128ec04c11ab238fc7700c42dbe5d - 22.47% (222 MB)

[#013] sha256:2951d4287505c5370e23a4814611dea69df280e030491a7f4ebac898f7f77d16 - 0.22% (2.2 MB)

[#014] sha256:f83bcfe94be6b343145af0dc10d1d190bfbbab1a4125394a66fc7cd341196d93 - 0.04% (399 KB)

[#015] sha256:034bf6753cef5b43bb3a22c9c86b7dffdff8a8c773363b2daa61e06612c7c672 - 0.25% (2.46 MB)

[#016] sha256:37660e87f1ef8ba2950827cbe6894a372ba147ba9889c847c260baf3e5c883d5 - 0.0% (832 Bytes)

[#017] sha256:f840622638f6f79dd589a302c86fe143387b38bcfce838e91752f204ccf4fa9c - 0.0% (828 Bytes)


History
2025-12-29 00:00:00 UTC (debuerreotype 0.17)

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

2025-12-30 00:35:51 UTC (buildkit.dockerfile.v0)

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

2025-12-30 00:35:51 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-12-30 00:35:51 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2025-12-30 00:35:51 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.13.11

2025-12-30 00:35:51 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=16ede7bb7cdbfa895d11b0642fa0e523f291e6487194d53cf6d3b338c3a17ea2

2025-12-30 00:46:03 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-12-30 00:46:03 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-12-30 00:46:03 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-01-07 14:17:04 UTC (buildkit.dockerfile.v0)

COPY /uv /uvx /bin/ # buildkit

2026-01-07 14:17:28 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get install -y curl gnupg git build-essential && 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

2026-01-07 14:17:29 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:17:32 UTC (buildkit.dockerfile.v0)

ENV PNPM_HOME=/usr/local/share/pnpm

2026-01-07 14:17:32 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

2026-01-07 14:17:32 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

2026-01-07 14:17:32 UTC (buildkit.dockerfile.v0)

ARG INSTALL_EXT=true

2026-01-07 14:18:21 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

2026-01-07 14:18:22 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:18:22 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-01-07 14:18:22 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:18:35 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:18:36 UTC (buildkit.dockerfile.v0)

COPY . . # buildkit

2026-01-07 14:18:36 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

2026-01-07 14:18:54 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:18:54 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:18:54 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:18:54 UTC (buildkit.dockerfile.v0)

EXPOSE [3000/tcp]

2026-01-07 14:18:54 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:18:54 UTC (buildkit.dockerfile.v0)

CMD ["pnpm" "start"]

Details
Created

2026-01-07 14:27:05 UTC

Size

653 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-01-07T14:16:59.438Z
  • org.opencontainers.image.description
    A unified hub for centrally managing and dynamically orchestrating multiple MCP servers/APIs into separate endpoints with flexible routing strategies
  • org.opencontainers.image.licenses
    Apache-2.0
  • org.opencontainers.image.revision
    6b3a077a679cab9c0e303790d3da14c88eff8577
  • 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.11.12-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

16ede7bb7cdbfa895d11b0642fa0e523f291e6487194d53cf6d3b338c3a17ea2

PYTHON_VERSION

3.13.11


Layers

[#000] sha256:b1efea88fbf7c88bbbdeec2e84bd4f8d0b814c210ee65763f6d4cc91c28365e8 - 4.1% (26.8 MB)

[#001] sha256:455e2f029487efa45bd1af4b12da5d3c6a0403c59861fb3f99527f38302d62b1 - 0.49% (3.19 MB)

[#002] sha256:bed3128d0dbfc53404221035fce19df529bd2cbb334df4a83471689070046010 - 1.81% (11.8 MB)

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

[#004] sha256:ecd9e150d8d6963358fc8a28d12258b16ba73c2ec3019b01a8a154b7078e38fe - 3.06% (20 MB)

[#005] sha256:784a5cab0a4b127cd9a3ed752ae3b3bcea439bc917033642b0dbe7b2350aeeaa - 28.79% (188 MB)

[#006] sha256:4414186d794adfb850b08bd9c39041b8b4a5e96a423fba26d21ca2039816dd5f - 1.43% (9.37 MB)

[#007] sha256:a94b6e0258ca6c4253890545b76f624168d69a26757f845d5e9e679b9b3e41e2 - 2.88% (18.8 MB)

[#008] sha256:645d4d12efd93a6f8e5cc21f44a77306eaef9a9e5cdfa7a5bdc60d9235854173 - 20.71% (135 MB)

[#009] sha256:a99e78f578e5829f46cb621e81e62b5811b66c232bb28d8561d2cb1b8507c1a6 - 3.01% (19.7 MB)

[#010] sha256:777a10573a5023c725f9756eca991ff5b8b54e4f23b9ec983be5b0fb20126185 - 0.0% (93 Bytes)

[#011] sha256:04e9de1a861690214eecd1ce7127fae6fbac5d3483a2fa7ce9a44fed08254769 - 0.01% (98.4 KB)

[#012] sha256:1656e8a059650077a9c0b3b85684c0b5019f8c44ce4d5ae652f12447b74a8af0 - 32.93% (215 MB)

[#013] sha256:2951d4287505c5370e23a4814611dea69df280e030491a7f4ebac898f7f77d16 - 0.34% (2.2 MB)

[#014] sha256:f2f161b38c1e2ca7269f1ef523a48f478bd00af9a07866a0627b346fdbca74e4 - 0.06% (399 KB)

[#015] sha256:d1142237a3c9463933dcbfc6bdbc4594d7ce42d49eebeae4125ae0cf7403649a - 0.38% (2.46 MB)

[#016] sha256:545b7e26d70ae9b1d896446c5acc995103a4e8342c87bbe118810ce3afb77046 - 0.0% (834 Bytes)

[#017] sha256:0c89fdad481b7cb15e9203eeac68b856ce788c7716c65dbb58f4cb1bca1f5187 - 0.0% (829 Bytes)


History
2025-12-29 00:00:00 UTC (debuerreotype 0.17)

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

2025-12-30 00:36:47 UTC (buildkit.dockerfile.v0)

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

2025-12-30 00:36:47 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-12-30 00:36:47 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2025-12-30 00:36:47 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.13.11

2025-12-30 00:36:47 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=16ede7bb7cdbfa895d11b0642fa0e523f291e6487194d53cf6d3b338c3a17ea2

2025-12-30 00:49:20 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-12-30 00:49:20 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-12-30 00:49:20 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-01-07 14:17:04 UTC (buildkit.dockerfile.v0)

COPY /uv /uvx /bin/ # buildkit

2026-01-07 14:20:16 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get install -y curl gnupg git build-essential && 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

2026-01-07 14:20:26 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:20:47 UTC (buildkit.dockerfile.v0)

ENV PNPM_HOME=/usr/local/share/pnpm

2026-01-07 14:20:47 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

2026-01-07 14:20:47 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

2026-01-07 14:20:47 UTC (buildkit.dockerfile.v0)

ARG INSTALL_EXT=true

2026-01-07 14:22:29 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

2026-01-07 14:22:36 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:22:36 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-01-07 14:22:36 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:23:42 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:23:43 UTC (buildkit.dockerfile.v0)

COPY . . # buildkit

2026-01-07 14:23:44 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

2026-01-07 14:27:05 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:27:05 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:27:05 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:27:05 UTC (buildkit.dockerfile.v0)

EXPOSE [3000/tcp]

2026-01-07 14:27:05 UTC (buildkit.dockerfile.v0)

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

2026-01-07 14:27:05 UTC (buildkit.dockerfile.v0)

CMD ["pnpm" "start"]