Cookiecutter MCP UV Container
Um template Cookiecutter para criar servidores MCP com suporte a contêineres Apple e métodos de transporte configuráveis.
Documentação
Cookiecutter MCP UV Container
Um template cookiecutter para criar rapidamente servidores MCP (Model Context Protocol) com suporte a containers Apple.
Por que Containers Apple?
Containers Apple fornecem isolamento em nível de VM com simplicidade semelhante ao Docker:
- Segurança Superior: Cada container roda em sua própria VM leve
- Nativo para macOS: Integração profunda com frameworks do macOS
- Sob Demanda: Inicie/pare servidores conforme necessário (não ficam rodando constantemente)
- Eficiente em Recursos: Menos overhead que VMs tradicionais
- Compatível com OCI: Funciona com registries de containers existentes
Recursos
- 🚀 Configuração de servidor FastMCP com exemplos de ferramentas
- 🐳 Dockerfile multi-estágio para containers otimizados
- 📦 Gerenciamento de pacotes UV
- 🔒 Isolamento em nível de VM com usuário de container não-root
- 🌐 Múltiplos métodos de transporte (stdio, streamable-http, sse)
- 🍎 Otimizado para Apple Silicon
- 📝 Exemplos de ferramentas de calculadora com parâmetros tipados
Uso
Pré-requisitos
-
Instale o UV (se ainda não estiver instalado):
curl -LsSf https://astral.sh/uv/install.sh | sh -
Instale o cookiecutter:
uv tool install cookiecutter # or pip install cookiecutter -
Instale o Apple/Container:
Criar um novo projeto
# From local directory
cookiecutter /path/to/cookiecutter-mcp-uv-container
# From GitHub
cookiecutter https://github.com/daviddrummond95/cookiecutter-mcp-uv-container
Variáveis do Template
Você será solicitado a fornecer:
- project_name: Nome legível do projeto (ex.: "My Calculator MCP")
- project_slug: Nome do pacote (gerado automaticamente a partir do project_name)
- mcp_name: O nome do servidor MCP (ex.: "MyCalculatorMCP")
- description: Descrição do projeto
- author_name: Seu nome
- author_email: Seu email
- python_version: Versão do Python (padrão: 3.13)
- mcp_version: Versão do SDK MCP (padrão: 1.9.4)
Estrutura do Projeto
Após a geração, seu projeto terá:
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 Passos
Após criar seu projeto:
-
Navegue até seu projeto:
cd my-mcp-server # or whatever you put as project-slug -
Inicie o Sistema de Containers (apenas na primeira vez):
container system start -
Construa o Container:
container build --tag my-mcp . # Replace my-mcp with whatever you want to name the container -
Execute o Servidor MCP:
# Interactive stdio mode container run --interactive my-mcp -
Personalize: Edite
hello.pypara adicionar suas próprias ferramentas MCP
Integração com Claude Desktop
Para o Claude Desktop, você tem duas opções:
Opção 1: Executar localmente sem container (recomendado para desenvolvimento)
{
"mcpServers": {
"My MCP Server (Local)": {
"command": "uv",
"args": ["run", "fastmcp", "/path/to/my-mcp-server/hello.py"]
}
}
}
Opção 2: Usar transporte HTTP com container
Em seguida, configure o Claude Desktop para conectar via STDIO:
{
"mcpServers": {
"My MCP Server (Container)": {
"command": "container",
"args": ["run", "--interactive", "my-mcp-container"]
}
}
}
Opções de Transporte
O template suporta múltiplos métodos de transporte via variáveis de ambiente:
- stdio: Padrão
- Mais em andamento para fluxo de local -> nuvem
Defina via: MCP_TRANSPORT=<transport-type>
Licença
MIT