informatique:ai_lm:mcp-inspector
Table des matières
MCP Inspector
Docker et Php STDIO
Pour utiliser le transport STDIO il faut que le moteur soit dans le container, en l’occurrence Php.
Le Dockerfile, un mix avec les images ghcr.io/modelcontextprotocol/inspector et php:8.4-cli-bookworm :
# ── Stage 1 : récupérer les fichiers de l'inspector ──────────────────────────
FROM ghcr.io/modelcontextprotocol/inspector:latest AS inspector
# ── Stage 2 : PHP + Composer + dépendances du projet ─────────────────────
FROM php:8.4-cli-bookworm AS php-deps
RUN apt-get update && apt-get install -y \
libxml2-dev libonig-dev libicu-dev \
&& docker-php-ext-install mbstring xml \
&& rm -rf /var/lib/apt/lists/*
# Pas besoin de composer, le projet est géré localement (hors docker)
#COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# ── Stage 3 : image finale — Node.js + PHP + inspector + ton projet ───────────
FROM node:24-slim
# PHP depuis le stage "php-deps"
# PHP binaire + config + extensions
COPY --from=php-deps /usr/local/bin/php /usr/local/bin/php
COPY --from=php-deps /usr/local/lib/php /usr/local/lib/php
COPY --from=php-deps /usr/local/etc/php /usr/local/etc/php
# Libs système dont PHP dépend (résultat du ldd)
# $ docker run --rm php:8.4-cli ldd /usr/local/bin/php
COPY --from=php-deps /lib/x86_64-linux-gnu /lib/x86_64-linux-gnu
COPY --from=php-deps /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu
# Fichiers de l'inspector depuis le stage "inspector"
# selon son Dockerfile https://github.com/modelcontextprotocol/inspector/blob/main/Dockerfile
WORKDIR /app
COPY --from=inspector /app/package*.json ./
COPY --from=inspector /app/.npmrc ./
COPY --from=inspector /app/client/package*.json ./client/
COPY --from=inspector /app/server/package*.json ./server/
COPY --from=inspector /app/cli/package*.json ./cli/
COPY --from=inspector /app/node_modules ./node_modules
COPY --from=inspector /app/client/dist ./client/dist
COPY --from=inspector /app/client/bin ./client/bin
COPY --from=inspector /app/server/build ./server/build
COPY --from=inspector /app/cli/build ./cli/build
ENV CLIENT_PORT=6274
ENV SERVER_PORT=6277
EXPOSE 6274 6277
ENTRYPOINT ["npm", "start"]
On construit l'image :
docker build -t cyrille37/mcp-inspector .
On run l'inspector avec les bons mappings de dossier :
docker run -i --rm \ -p 127.0.0.1:6274:6274 -p 127.0.0.1:6277:6277 -e HOST=0.0.0.0 \ -e MCP_AUTO_OPEN_ENABLED=false \ -e ALLOWED_ORIGINS="http://127.0.0.1:6274,http://localhost:6274" \ -v /home/user/dev/mbox-mcp:/mcp \ -v /home/user/dev/mbox-mcp/data:/mcp-data \ cyrille37/mcp-inspector
Le ALLOWED_ORIGINS est important pour la communication entre l'IHM et le Proxy. Voir inspector/dns-rebinding-protection. Sans ce paramètre on voit dans la console docker : “Invalid origin: http://127.0.0.1:6274”
Ici le projet Php+composer est dans le dossier /home/user/dev/mbox-mcp.
- Le point d'entrée sur mcp est
/home/user/dev/mbox-mcp/bin/mbox-mcp.php - Les datas nécessaire au MCP sont dans
/home/user/dev/mbox-mcp/data
Ce qui donne dans l'IHM de MCP inspector :
- Transport : STDIO
- Command : php
- Arguments: /mcp/bin/mbox-mcp.php /mcp-data/www
informatique/ai_lm/mcp-inspector.txt · Dernière modification : de cyrille
