Namespace
samanhappy
Image / Tag
mcphub:0.11.13-full
Content Digest
sha256:c603c315893d090de93b421079b865acfa147dfe3c5fe904987ad78332db9ed7
Details
Created

2026-01-09 13:38:53 UTC

Size

988 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-01-09T13:36:55.875Z
  • 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
    fdb3a6af42f49256516a91e96f2c01e9f8ebbdd5
  • 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.13-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.73% (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:4f4c2c9160bde6aba392aebe23c59cac69860bd63f8f20838c056aaa10ab46b6 - 2.11% (20.8 MB)

[#005] sha256:3d6e2e8a09f4a96b14b23a71bd0c7cc012b7bc3f6440afe2ee510d43c14e56c1 - 19.9% (197 MB)

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

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

[#008] sha256:2cda0a28cf6194aa0d478b5ad6108a44f2ef7b7305a65bebb8455eb9aaba1c6f - 45.87% (453 MB)

[#009] sha256:3795988fc0233ba53740c7f918fc262947a63b3618e0a7e2c17688fcf638f83c - 2.03% (20.1 MB)

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

[#011] sha256:8ac71dbd3ddfe7c879796f528cbceaaf6c262a2983cd3e297e3059e284fce8fc - 0.01% (98.4 KB)

[#012] sha256:09d1e8e97b8fd095b76e6a12dae1e316a4757e6f319fbde29e7af499e4502b9f - 22.45% (222 MB)

[#013] sha256:819f8e9a440c9314570edd807e28da4ba46cbfcc4c4ba53783feee72d0a622eb - 0.22% (2.21 MB)

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

[#015] sha256:ca362ef253d72059f67a7918028913965701de049acbe88188d8ae4154c1362c - 0.25% (2.47 MB)

[#016] sha256:53bdd6367b9db682a3d97dd548980878a10be6f7eda87ee95097343c65c00540 - 0.0% (832 Bytes)

[#017] sha256:820cd481dc11e12aaf12aa2d9b16e0c2f39cfe7d320448f209ab8479b30e63b9 - 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-09 13:37:00 UTC (buildkit.dockerfile.v0)

COPY /uv /uvx /bin/ # buildkit

2026-01-09 13:37: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-01-09 13:37:26 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:37:29 UTC (buildkit.dockerfile.v0)

ENV PNPM_HOME=/usr/local/share/pnpm

2026-01-09 13:37:29 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-09 13:37:29 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-09 13:37:29 UTC (buildkit.dockerfile.v0)

ARG INSTALL_EXT=true

2026-01-09 13:38:18 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-09 13:38:19 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:38:19 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-01-09 13:38:19 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:38:34 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:38:34 UTC (buildkit.dockerfile.v0)

COPY . . # buildkit

2026-01-09 13:38:35 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-09 13:38:53 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:38:53 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:38:53 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:38:53 UTC (buildkit.dockerfile.v0)

EXPOSE [3000/tcp]

2026-01-09 13:38:53 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:38:53 UTC (buildkit.dockerfile.v0)

CMD ["pnpm" "start"]

Details
Created

2026-01-09 13:46:47 UTC

Size

653 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-01-09T13:36:55.875Z
  • 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
    fdb3a6af42f49256516a91e96f2c01e9f8ebbdd5
  • 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.13-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:ea72b310a67acda18cb418b31494195158a188a611028dd81bd3d3db98078bff - 3.06% (20 MB)

[#005] sha256:b347233a1ce0b0b1eba513ab99ddb561550f212d3c5b47f3fcfa3f980403fae8 - 28.81% (188 MB)

[#006] sha256:d567f2ed1e37c50c655924e4b4db4593f56b70aed2643e6e13938a42718095d4 - 1.44% (9.37 MB)

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

[#008] sha256:e6735c19ceaa755c618bd91a24a7d4670bc96e12f9d6babc578613405e627f1e - 20.72% (135 MB)

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

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

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

[#012] sha256:4d6de295d29dd615d163b2a7f30e41e6deadc8e22f88e4c3a9634c99c89ed4ea - 32.89% (215 MB)

[#013] sha256:819f8e9a440c9314570edd807e28da4ba46cbfcc4c4ba53783feee72d0a622eb - 0.34% (2.21 MB)

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

[#015] sha256:330541f1f99d46bcf1bdd64ae2ef17e206ab0837d47a5c88af77862e2d1ea8d5 - 0.38% (2.47 MB)

[#016] sha256:17ca9cdfbc93a83623f080ddfceec075c9a2bf1daacd0e69448d332a46817b8f - 0.0% (833 Bytes)

[#017] sha256:14ba3644461f0dd050b577120197c1e262741510d86a9d1bf8d4ce5068ccaf17 - 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-09 13:37:00 UTC (buildkit.dockerfile.v0)

COPY /uv /uvx /bin/ # buildkit

2026-01-09 13:40:12 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-09 13:40:22 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:40:41 UTC (buildkit.dockerfile.v0)

ENV PNPM_HOME=/usr/local/share/pnpm

2026-01-09 13:40:41 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-09 13:40:41 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-09 13:40:41 UTC (buildkit.dockerfile.v0)

ARG INSTALL_EXT=true

2026-01-09 13:42:22 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-09 13:42:29 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:42:29 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-01-09 13:42:29 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:43:34 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:43:34 UTC (buildkit.dockerfile.v0)

COPY . . # buildkit

2026-01-09 13:43: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-09 13:46:47 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:46:47 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:46:47 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:46:47 UTC (buildkit.dockerfile.v0)

EXPOSE [3000/tcp]

2026-01-09 13:46:47 UTC (buildkit.dockerfile.v0)

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

2026-01-09 13:46:47 UTC (buildkit.dockerfile.v0)

CMD ["pnpm" "start"]