jaimey/mcp-server-docker-demo
If you are the rightful owner of mcp-server-docker-demo and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This project demonstrates how to set up and deploy a FastMCP server for secure public internet access using Docker and Traefik.
FastMCP Public Server Demo con Docker & Traefik
Este es un proyecto de demostración que muestra cómo configurar y desplegar un servidor FastMCP para que sea accesible públicamente en internet de forma segura.
Utiliza Docker para la contenedorización, uv como gestor de paquetes de Python, y Traefik como proxy inverso para gestionar el enrutamiento de dominios y la generación automática de certificados SSL/TLS con Let's Encrypt.
Descripción del Proyecto
El objetivo de este repositorio es servir como una plantilla o guía de inicio rápido para cualquier persona que desee exponer una API de herramientas creada con FastMCP. El proyecto incluye:
- Un servidor FastMCP simple con una herramienta de ejemplo (
src/main.py
). - Un
Dockerfile
optimizado con un build multi-etapa para crear una imagen ligera y eficiente. - Un archivo
docker-compose.yml
preconfigurado para integrarse con una instancia existente de Traefik. - Un ejemplo de configuración de cliente para la extensión MCP Client de Visual Studio Code (
.vscode/mcp.json
).
Prerrequisitos
Antes de empezar, asegúrate de tener lo siguiente:
- Docker y Docker Compose instalados en tu servidor.
- Un nombre de dominio apuntando a la dirección IP pública de tu servidor.
- Una instancia de Traefik v2+ ya configurada y en ejecución.
- La red de Traefik debe ser una red externa a la que nuestros contenedores puedan conectarse (en este ejemplo, se llama
traefik-net
). - Un
certresolver
de Let's Encrypt configurado en Traefik (en este ejemplo, se llamaletsencryptresolver
).
Uso
Sigue estos pasos para desplegar tu propio servidor.
1. Clonar el Repositorio
git clone <URL-del-repositorio>
cd mcp-server-docker-demo
2. Configurar el Dominio
El paso más importante es decirle a Traefik qué dominio debe dirigir a nuestro servicio.
Abre el archivo docker-compose.yml
y busca la siguiente línea:
- "traefik.http.routers.mcp-server-demo.rule=Host(`mcp-server-demo.yourdomain.com`)"
Reemplaza mcp-server-demo.yourdomain.com
con tu propio dominio o subdominio.
3. Desplegar el Servidor
Una vez configurado tu dominio, levanta el servicio usando Docker Compose:
docker-compose up -d --build
--build
: Fuerza la construcción de la imagen de Docker la primera vez.-d
: Ejecuta el contenedor en segundo plano (detached mode).
Docker construirá la imagen y lanzará el contenedor. Traefik detectará automáticamente el nuevo servicio a través de las etiquetas (labels) definidas en docker-compose.yml
y configurará el enrutamiento y el SSL.
4. Agregar a VS Code
-
Crea un archivo de configuración en tu proyecto local:
.vscode/mcp.json
. -
Añade la siguiente configuración, asegurándote de usar tu dominio:
{ "servers": { "mcp-server-demo": { "url": "https://mcp-server-demo.yourdomain.com/mcp/", "type": "http" } }, "inputs": [] }