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
