Namespace
samanhappy
Image / Tag
mcphub:0.12.10-full
Content Digest
sha256:181878c54c552057668d3c2aa5753b69f697f91a7640b149e23d4b7cc01edfe9
Details
Created

2026-03-30 02:30:00 UTC

Size

1.27 GB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-03-30T02:27:56.724Z
  • 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
    a18478654110dfb8f14cea6897328fe79f51944f
  • 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.12.10-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

2a84cd31dd8d8ea8aaff75de66fc1b4b0127dd5799aa50a64ae9a313885b4593

PYTHON_VERSION

3.13.12


Layers

[#000] sha256:6db0909c4473287ed4d1f950d26b8bc5b7b4206d365a0e7740cb89e46979153e - 2.07% (26.9 MB)

[#001] sha256:792aba8f9d95f389be4b9e81a1107f33c9c2b1f2f43dd2df3a2a8f063f906183 - 0.26% (3.35 MB)

[#002] sha256:63706ab84aa539b4f769d315a862a19bff6ef69c4ee54a3433d248788bfccd6f - 0.91% (11.9 MB)

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

[#004] sha256:c6879869acef462a827dffc2c976ea535ab960d1d1fcdb387a826bb3ce3bdff5 - 1.76% (22.9 MB)

[#005] sha256:b9883d2d989e9bf6d0462051b66f70595ff7f9a1dd2cf131d2ace404f545ab7f - 15.1% (197 MB)

[#006] sha256:dae235a7a03a8c729d679032cb2a8a3b932dd0fde2e27b4fadb0b35278f30da2 - 0.77% (10 MB)

[#007] sha256:6386778966701f782afe2423d0cdf9682063563036867c375d91bbc19091c280 - 1.53% (20 MB)

[#008] sha256:306b7a64dc65f6f7eb5825064f6f1d3a7ab783c74d0f36eea002d3faf3b8dafc - 43.91% (572 MB)

[#009] sha256:4a7e8a12daa115208d7ffb3068d24400f68b023240466bb03003f5952ceb3c86 - 1.55% (20.2 MB)

[#010] sha256:b5d4b5b16c08e78e1d0d88b0feac66a1b3e979b90e2ab8c88943e399c71449be - 0.0% (92 Bytes)

[#011] sha256:93d5a0d6a809c5b01f073422025151d82592c5c6c24f37939020725fcb8aa485 - 0.01% (107 KB)

[#012] sha256:82870b01176978873de47a97385419f731405f394a00a3994c11bd04a80e75e1 - 31.71% (413 MB)

[#013] sha256:b26ee55efaad18aa58ac644f2986b072ce3c56db9731cee0dff8dee9c386c641 - 0.18% (2.31 MB)

[#014] sha256:04899d158366848fbee6e00c75c8566f01f7d44e8d87a564b6567b7c4ec9b45c - 0.03% (401 KB)

[#015] sha256:060b9f02437bdc22bfa92650541b1f4178fa26dd11c7146d041a1649ec93ffc4 - 0.21% (2.68 MB)

[#016] sha256:815ed7d6f6f98797ccdd646a5bec40d4548d41823982265d64920b70e5cfc44c - 0.0% (828 Bytes)

[#017] sha256:3e5f38fffbf001f761d34537160169d0f7b03cf3bb56cd0f45c43e52813fa08b - 0.0% (827 Bytes)


History
2026-03-16 00:00:00 UTC (debuerreotype 0.17)

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

2026-03-16 22:57:57 UTC (buildkit.dockerfile.v0)

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

2026-03-16 22:57:57 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-03-16 22:57:57 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2026-03-16 22:57:57 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.13.12

2026-03-16 22:57:57 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=2a84cd31dd8d8ea8aaff75de66fc1b4b0127dd5799aa50a64ae9a313885b4593

2026-03-16 23:08:50 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-03-16 23:08:51 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-03-16 23:08:51 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-03-30 02:28:01 UTC (buildkit.dockerfile.v0)

COPY /uv /uvx /bin/ # buildkit

2026-03-30 02:28:25 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-03-30 02:28:26 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:28:30 UTC (buildkit.dockerfile.v0)

ENV PNPM_HOME=/usr/local/share/pnpm

2026-03-30 02:28:30 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-03-30 02:28:30 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-03-30 02:28:30 UTC (buildkit.dockerfile.v0)

ARG INSTALL_EXT=true

2026-03-30 02:29:20 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 && 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-03-30 02:29:21 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:29:21 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-03-30 02:29:21 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:29:39 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:29:40 UTC (buildkit.dockerfile.v0)

COPY . . # buildkit

2026-03-30 02:29:40 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-03-30 02:30:00 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:30:00 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:30:00 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:30:00 UTC (buildkit.dockerfile.v0)

EXPOSE [3000/tcp]

2026-03-30 02:30:00 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:30:00 UTC (buildkit.dockerfile.v0)

CMD ["pnpm" "start"]

Details
Created

2026-03-30 02:38:19 UTC

Size

855 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-03-30T02:27:56.724Z
  • 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
    a18478654110dfb8f14cea6897328fe79f51944f
  • 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.12.10-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

2a84cd31dd8d8ea8aaff75de66fc1b4b0127dd5799aa50a64ae9a313885b4593

PYTHON_VERSION

3.13.12


Layers

[#000] sha256:d997cc310c981ac52155d0d9fe28888b261a7746a3877bb0ca848fd1a83d319a - 3.13% (26.8 MB)

[#001] sha256:f50f5da8d3d4b088f9c3e95df919fda336c956d70c38ff4d9eb40a0a85602055 - 0.37% (3.19 MB)

[#002] sha256:9a27213d4b017a6421efe8b08b436a96f19fda2a7e75dab0dfa6453e01d0e540 - 1.38% (11.8 MB)

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

[#004] sha256:518d2fdaaa8ada8f041fbdc2bbff90f5bafb8d2bb9270b800b29ff61179f2b2f - 2.57% (22 MB)

[#005] sha256:6b0f57984b89999a42ded511001c6823c3d9b451c79ccd1614871ef1403f7337 - 22.0% (188 MB)

[#006] sha256:c599769102af601a6156e2fa2f11ca0ea039979655fa08385918e213254611e3 - 1.17% (10 MB)

[#007] sha256:2257bdc78faeac9dfb6a48b8337a43b37e0b38e5adec7a67b58f85b281b76cea - 2.33% (20 MB)

[#008] sha256:31c246f8bf2858b11505b64bd614a0f75526ca69d7ef8328256c47b38aeb5ebe - 16.63% (142 MB)

[#009] sha256:f97fd4b117281c677a78189810e2de567bdd6e13b19d6e245a43479f6716113c - 2.31% (19.8 MB)

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

[#011] sha256:5d424d48043fb09f8e8c808e86796f78ea0ccb9339e140646c57b3c36cecdeeb - 0.01% (107 KB)

[#012] sha256:615bdeda0d0c3ab69190b567eeb9662310b171ce752376c811ee79be23a2a47b - 47.45% (406 MB)

[#013] sha256:b26ee55efaad18aa58ac644f2986b072ce3c56db9731cee0dff8dee9c386c641 - 0.27% (2.31 MB)

[#014] sha256:3e8ad80b72720887e6bd95d836c68070b8f43b1198d36bc94c98ea787aa681c6 - 0.05% (401 KB)

[#015] sha256:0f62f32dcd1f76c3b2457d08a22de6f69c22e25cd9cf580a3d858bd32f264820 - 0.31% (2.68 MB)

[#016] sha256:3f2f213fdd0c202e62a58581d8a91fb227e14ebd93f8f7fddbc8988d8da63abb - 0.0% (831 Bytes)

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


History
2026-03-16 00:00:00 UTC (debuerreotype 0.17)

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

2026-03-16 23:00:49 UTC (buildkit.dockerfile.v0)

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

2026-03-16 23:00:49 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-03-16 23:00:49 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2026-03-16 23:00:49 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.13.12

2026-03-16 23:00:49 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=2a84cd31dd8d8ea8aaff75de66fc1b4b0127dd5799aa50a64ae9a313885b4593

2026-03-16 23:13:13 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-03-16 23:13:13 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-03-16 23:13:13 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-03-30 02:28:01 UTC (buildkit.dockerfile.v0)

COPY /uv /uvx /bin/ # buildkit

2026-03-30 02:31:17 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-03-30 02:31:27 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:31:46 UTC (buildkit.dockerfile.v0)

ENV PNPM_HOME=/usr/local/share/pnpm

2026-03-30 02:31:46 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-03-30 02:31:46 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-03-30 02:31:46 UTC (buildkit.dockerfile.v0)

ARG INSTALL_EXT=true

2026-03-30 02:33:27 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 && 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-03-30 02:33:35 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:33:35 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-03-30 02:33:35 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:34:49 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:34:50 UTC (buildkit.dockerfile.v0)

COPY . . # buildkit

2026-03-30 02:34:51 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-03-30 02:38:18 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:38:18 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:38:19 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:38:19 UTC (buildkit.dockerfile.v0)

EXPOSE [3000/tcp]

2026-03-30 02:38:19 UTC (buildkit.dockerfile.v0)

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

2026-03-30 02:38:19 UTC (buildkit.dockerfile.v0)

CMD ["pnpm" "start"]