Namespace
samanhappy
Image / Tag
mcphub:1.0.21-full
Content Digest
sha256:22ca2ad16bb046b688a81178e85b21f903c7812a53ae27040b920bde446f1ec7
Details
Created

2026-06-30 01:49:59 UTC

Size

1.21 GB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-06-30T01:47:23.903Z
  • 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
    8700cc7d1be3090511c6930b4e28004637a8e855
  • 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
    1.0.21-full

Environment
CARGO_HOME

/usr/local/cargo

GPG_KEY

7169605F62C751356D054A26A821E680E5FA6305

PATH

/usr/local/cargo/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PYTHON_SHA256

639e43243c620a308f968213df9e00f2f8f62332f7adbaa7a7eeb9783057c690

PYTHON_VERSION

3.13.14

RUSTUP_HOME

/usr/local/rustup


Layers

[#000] sha256:68629629b516c3cd6f5e71ffbe18e32afb1ae5b4926c92d058c0f11ef1fd58a3 - 2.17% (26.9 MB)

[#001] sha256:0e26001d5620dfc2698f3a683c497e1cabdcc4757f4ca4ff70e33cb36057df02 - 0.27% (3.36 MB)

[#002] sha256:c90b26812a028bfa582bede756e645cf91fe9d05f2991b0862d719a003cce5ed - 0.97% (12 MB)

[#003] sha256:d229a71b9e515d634cb7f17b8bfe71586ed1282edbcfb81faaca1aebd0ed028b - 0.0% (251 Bytes)

[#004] sha256:7d86fdca72cb2d78c7641581eeb29e36013eb0ba8f42f87a07a10e03726547cb - 1.99% (24.6 MB)

[#005] sha256:168f64d1b63c6b5044f3f5d892cb92b568ab99eeeb1923a3534fece32a34b1fa - 15.88% (197 MB)

[#006] sha256:1dc3491d86d83180d295910178091de1a2cab7607c3ab683932def1d369171ab - 0.34% (4.22 MB)

[#007] sha256:8cebdbe10ec52a4155aaae90ae97134a8380931479f5147f20590acc366476f6 - 66.29% (821 MB)

[#008] sha256:e67be67be3a9365f77230d5dd018b526ca9598cc5c2208db53946679c57806ee - 1.68% (20.8 MB)

[#009] sha256:ca7508133f070d2996b1ebf25a11a9a4e9fb814ac53085ec464d02abbb71bbc5 - 0.0% (93 Bytes)

[#010] sha256:fe37b0e29fa51166fc014714c66a6101eb807a989d4b4bf4b8f73e2bde59ebcc - 0.01% (108 KB)

[#011] sha256:8a202de0d28235bfb783621e4f34a59070e1fd56c75d4e2f8e7ee3b347829d95 - 9.88% (122 MB)

[#012] sha256:efd43dab681f7a7f4a41940cf5232badbd261fbb2adade77b668142babed6e9a - 0.01% (160 KB)

[#013] sha256:c6a3c98f51bc33da228bf9f908a578fd3ec7b69b3c4e7523d94a313d9c0fc98e - 0.23% (2.87 MB)

[#014] sha256:fa3a1381b1fcdf2882b0ebc55ca689f6f25dddd8450e410c275e192fec7b5d4f - 0.03% (402 KB)

[#015] sha256:ed85600568a02dcc1f2b82b2f640902a716951a8962d2fbb0b0af2d039930240 - 0.24% (2.97 MB)

[#016] sha256:047d77350266fef76b9820708e25ae4a0b228750d680f7def839d058401d1c2a - 0.0% (836 Bytes)

[#017] sha256:35dc60bd37c666d8f8ff43300538f4a9d30742f6a79b6ab5ff3882b94b75b3a7 - 0.0% (833 Bytes)


History
2026-06-23 00:00:00 UTC (debuerreotype 0.17)

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

2026-06-24 01:59:00 UTC (buildkit.dockerfile.v0)

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

2026-06-24 01:59:00 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

2026-06-24 01:59:00 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2026-06-24 01:59:00 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.13.14

2026-06-24 01:59:00 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=639e43243c620a308f968213df9e00f2f8f62332f7adbaa7a7eeb9783057c690

2026-06-24 02:10:55 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

2026-06-24 02:10:55 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

2026-06-24 02:10:55 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-06-30 01:47:30 UTC (buildkit.dockerfile.v0)

COPY /uv /uvx /bin/ # buildkit

2026-06-30 01:47:53 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-06-30 01:47:54 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c corepack enable && corepack prepare pnpm@10.12.4 --activate # buildkit

2026-06-30 01:49:28 UTC (buildkit.dockerfile.v0)

ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo PATH=/usr/local/cargo/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-06-30 01:49:28 UTC (buildkit.dockerfile.v0)

ARG INSTALL_EXT=false

2026-06-30 01:49:28 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 firefox; else echo "Skipping Chrome and Firefox installation on non-amd64 architecture: $ARCH"; fi; apt-get update && apt-get install -y ca-certificates curl iptables && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal && cargo --version && rustc --version && 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-06-30 01:49:29 UTC (buildkit.dockerfile.v0)

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

2026-06-30 01:49:29 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-06-30 01:49:29 UTC (buildkit.dockerfile.v0)

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

2026-06-30 01:49:40 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c pnpm config set store-dir /pnpm/store && pnpm fetch --frozen-lockfile # buildkit

2026-06-30 01:49:42 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c pnpm config set store-dir /pnpm/store && pnpm install --frozen-lockfile --offline # buildkit

2026-06-30 01:49:42 UTC (buildkit.dockerfile.v0)

COPY . . # buildkit

2026-06-30 01:49:43 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-06-30 01:49:58 UTC (buildkit.dockerfile.v0)

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

2026-06-30 01:49:58 UTC (buildkit.dockerfile.v0)

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

2026-06-30 01:49:59 UTC (buildkit.dockerfile.v0)

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

2026-06-30 01:49:59 UTC (buildkit.dockerfile.v0)

EXPOSE map[3000/tcp:{}]

2026-06-30 01:49:59 UTC (buildkit.dockerfile.v0)

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

2026-06-30 01:49:59 UTC (buildkit.dockerfile.v0)

CMD ["pnpm" "start"]

Details
Created

2026-06-30 01:57:00 UTC

Size

702 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-06-30T01:47:23.903Z
  • 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
    8700cc7d1be3090511c6930b4e28004637a8e855
  • 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
    1.0.21-full

Environment
CARGO_HOME

/usr/local/cargo

GPG_KEY

7169605F62C751356D054A26A821E680E5FA6305

PATH

/usr/local/cargo/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PYTHON_SHA256

639e43243c620a308f968213df9e00f2f8f62332f7adbaa7a7eeb9783057c690

PYTHON_VERSION

3.13.14

RUSTUP_HOME

/usr/local/rustup


Layers

[#000] sha256:74f1dcfcc9c80045f6f6394ffcfc261cb19d0c71b97e964aec3d4abf4e0f7009 - 3.82% (26.8 MB)

[#001] sha256:cb8e03177a4ba5d2a105c80da4d791b999a2c0d8592218bf604937099767dce4 - 0.46% (3.2 MB)

[#002] sha256:dd8112ec847c4c51cc9e087e72458f63645ee819d8f7f5b00b18c78d8b45457b - 1.69% (11.9 MB)

[#003] sha256:d4140d7667663a40213044b01b7f98a453c79fa59784459232580dd4608afcdd - 0.0% (250 Bytes)

[#004] sha256:136f00f3aed598a504770eff2a0348b57a1b32cecf19e4a7559db3d9ac585f5e - 3.36% (23.6 MB)

[#005] sha256:686805936acdefb339bb5ecf6d6c9f4f33b3871e36e56102861c3967d0e01b2a - 26.83% (188 MB)

[#006] sha256:2978610f084a16228da60b9cfcbd732689500a92c62be55217bc5a3defaef819 - 0.6% (4.22 MB)

[#007] sha256:fb72fb1fac57e9faffa72da8ef6f6728ad694bc9b432b707fa3dc6aa85a3af2a - 42.32% (297 MB)

[#008] sha256:076176532396b9da0069cc38b13467d2d4a5714e6664246c75591005ab0feaa7 - 2.92% (20.5 MB)

[#009] sha256:f7f7e825c135e5512566cb04b57f0b9f680d9e5bd7698e8c5a047e297f9644a8 - 0.0% (93 Bytes)

[#010] sha256:e4381d2fdc3649327094d8bd2e68ceded862bb1beaf636a7ef64cf956cf9f24d - 0.02% (108 KB)

[#011] sha256:690a0248aef0bf0f8562603b7397c196b2e620bdd9788ca05ce2be8f74e6ba8c - 17.08% (120 MB)

[#012] sha256:324d900529f4aced07313fb3811985008cc883e247ff78957f4ffefbb52ae773 - 0.02% (160 KB)

[#013] sha256:c6a3c98f51bc33da228bf9f908a578fd3ec7b69b3c4e7523d94a313d9c0fc98e - 0.41% (2.87 MB)

[#014] sha256:cf93f1ead17b0396fcf9d52610272fbe5f4b350f1840774b1f1a20f062bbb8ba - 0.06% (402 KB)

[#015] sha256:259c200e6fb86b784816976b75e1e4733d8bd81ff2545acb4890cbc6597612fd - 0.42% (2.98 MB)

[#016] sha256:d623ebf2d33eec85497ee48a0ecefeeab0bf5a1c8dcee735dec279f6032ab4aa - 0.0% (837 Bytes)

[#017] sha256:045dd0717219cfcb0706914689df7de639a0d323f224048e8ec0cb1d581a1271 - 0.0% (832 Bytes)


History
2026-06-23 00:00:00 UTC (debuerreotype 0.17)

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

2026-06-24 02:02:38 UTC (buildkit.dockerfile.v0)

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

2026-06-24 02:02:38 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

2026-06-24 02:02:38 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2026-06-24 02:02:38 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.13.14

2026-06-24 02:02:38 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=639e43243c620a308f968213df9e00f2f8f62332f7adbaa7a7eeb9783057c690

2026-06-24 02:16:22 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

2026-06-24 02:16:22 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

2026-06-24 02:16:22 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-06-30 01:47:30 UTC (buildkit.dockerfile.v0)

COPY /uv /uvx /bin/ # buildkit

2026-06-30 01:50:46 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-06-30 01:50:55 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c corepack enable && corepack prepare pnpm@10.12.4 --activate # buildkit

2026-06-30 01:53:03 UTC (buildkit.dockerfile.v0)

ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo PATH=/usr/local/cargo/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-06-30 01:53:03 UTC (buildkit.dockerfile.v0)

ARG INSTALL_EXT=false

2026-06-30 01:53:03 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 firefox; else echo "Skipping Chrome and Firefox installation on non-amd64 architecture: $ARCH"; fi; apt-get update && apt-get install -y ca-certificates curl iptables && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal && cargo --version && rustc --version && 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-06-30 01:53:11 UTC (buildkit.dockerfile.v0)

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

2026-06-30 01:53:11 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-06-30 01:53:11 UTC (buildkit.dockerfile.v0)

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

2026-06-30 01:53:43 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c pnpm config set store-dir /pnpm/store && pnpm fetch --frozen-lockfile # buildkit

2026-06-30 01:54:00 UTC (buildkit.dockerfile.v0)

RUN |1 INSTALL_EXT=true /bin/sh -c pnpm config set store-dir /pnpm/store && pnpm install --frozen-lockfile --offline # buildkit

2026-06-30 01:54:00 UTC (buildkit.dockerfile.v0)

COPY . . # buildkit

2026-06-30 01:54:01 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-06-30 01:57:00 UTC (buildkit.dockerfile.v0)

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

2026-06-30 01:57:00 UTC (buildkit.dockerfile.v0)

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

2026-06-30 01:57:00 UTC (buildkit.dockerfile.v0)

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

2026-06-30 01:57:00 UTC (buildkit.dockerfile.v0)

EXPOSE map[3000/tcp:{}]

2026-06-30 01:57:00 UTC (buildkit.dockerfile.v0)

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

2026-06-30 01:57:00 UTC (buildkit.dockerfile.v0)

CMD ["pnpm" "start"]