Cookiecutter MCP UV Container
Una plantilla de Cookiecutter para crear servidores MCP con soporte para contenedores Apple y métodos de transporte configurables.
Documentación
Cookiecutter MCP UV Container
Una plantilla de cookiecutter para crear rápidamente servidores MCP (Protocolo de Contexto de Modelo) con soporte para contenedores de Apple.
¿Por qué contenedores de Apple?
Los contenedores de Apple proporcionan aislamiento a nivel de VM con la simplicidad de Docker:
- Seguridad superior: Cada contenedor se ejecuta en su propia VM ligera
- Nativo de macOS: Integración profunda con los frameworks de macOS
- Bajo demanda: Iniciar/detener servidores según sea necesario (no en ejecución constante)
- Eficiente en recursos: Menos sobrecarga que las VM tradicionales
- Compatible con OCI: Funciona con registros de contenedores existentes
Características
- 🚀 Configuración de servidor FastMCP con herramientas de ejemplo
- 🐳 Dockerfile de múltiples etapas para contenedores optimizados
- 📦 Gestión de paquetes UV
- 🔒 Aislamiento a nivel de VM con usuario de contenedor no root
- 🌐 Múltiples métodos de transporte (stdio, streamable-http, sse)
- 🍎 Optimizado para Apple Silicon
- 📝 Herramientas de calculadora de ejemplo con parámetros tipados
Uso
Requisitos previos
-
Instalar UV (si aún no está instalado):
curl -LsSf https://astral.sh/uv/install.sh | sh -
Instalar cookiecutter:
uv tool install cookiecutter # or pip install cookiecutter -
Instalar Apple/Container:
Crear un nuevo proyecto
# From local directory
cookiecutter /path/to/cookiecutter-mcp-uv-container
# From GitHub
cookiecutter https://github.com/daviddrummond95/cookiecutter-mcp-uv-container
Variables de la plantilla
Se te solicitará:
- project_name: Nombre legible del proyecto (ej., "My Calculator MCP")
- project_slug: Nombre del paquete (generado automáticamente a partir de project_name)
- mcp_name: El nombre del servidor MCP (ej., "MyCalculatorMCP")
- description: Descripción del proyecto
- author_name: Tu nombre
- author_email: Tu correo electrónico
- python_version: Versión de Python (predeterminado: 3.13)
- mcp_version: Versión del SDK de MCP (predeterminado: 1.9.4)
Estructura del proyecto
Después de la generación, tu proyecto tendrá:
my-mcp-server/
├── Dockerfile # Multi-stage build for containers
├── pyproject.toml # UV project configuration
├── hello.py # MCP server implementation
├── QUICKSTART.md # Quick start guide
└── .env.example # Environment configuration
Próximos pasos
Después de crear tu proyecto:
-
Navega a tu proyecto:
cd my-mcp-server # or whatever you put as project-slug -
Inicia el sistema de contenedores (solo la primera vez):
container system start -
Construye el contenedor:
container build --tag my-mcp . # Replace my-mcp with whatever you want to name the container -
Ejecuta el servidor MCP:
# Interactive stdio mode container run --interactive my-mcp -
Personaliza: Edita
hello.pypara agregar tus propias herramientas MCP
Integración con Claude Desktop
Para Claude Desktop, tienes dos opciones:
Opción 1: Ejecutar localmente sin contenedor (recomendado para desarrollo)
{
"mcpServers": {
"My MCP Server (Local)": {
"command": "uv",
"args": ["run", "fastmcp", "/path/to/my-mcp-server/hello.py"]
}
}
}
Opción 2: Usar transporte HTTP con contenedor
Luego configura Claude Desktop para conectarse mediante STDIO:
{
"mcpServers": {
"My MCP Server (Container)": {
"command": "container",
"args": ["run", "--interactive", "my-mcp-container"]
}
}
}
Opciones de transporte
La plantilla admite múltiples métodos de transporte mediante variables de entorno:
- stdio: Predeterminado
- Más en progreso para el flujo de local a nube
Configura mediante: MCP_TRANSPORT=<transport-type>
Licencia
MIT