About Cookiecutter MCP Uv Container
Cookiecutter MCP Uv Container is an MCP server published by daviddrummond95 in the Developer Tools category: mCP server: Cookiecutter MCP Uv Container.
The repository has 26 stars and 5 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/daviddrummond95/cookiecutter-mcp-uv-containerThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Cookiecutter MCP Uv Container
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 8 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- !License declaredNo license file. Legally you have no right to use it in a product.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- !Dependencies pinnedNo lockfile. Installs can pull different code over time.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
Cookiecutter MCP UV Container
A cookiecutter template for quickly creating MCP (Model Context Protocol) servers with Apple container support.
Why Apple Containers?
Apple containers provide VM-level isolation with Docker-like simplicity:
- Superior Security: Each container runs in its own lightweight VM
- macOS Native: Deep integration with macOS frameworks
- On-Demand: Start/stop servers as needed (not constantly running)
- Resource Efficient: Less overhead than traditional VMs
- OCI Compatible: Works with existing container registries
Features
- 🚀 FastMCP server setup with example tools
- 🐳 Multi-stage Dockerfile for optimized containers
- 📦 UV package management
- 🔒 VM-level isolation with non-root container user
- 🌐 Multiple transport methods (stdio, streamable-http, sse)
- 🍎 Optimized for Apple Silicon
- 📝 Example calculator tools with typed parameters
Usage
Prerequisites
-
Install UV (if not already installed):
curl -LsSf https://astral.sh/uv/install.sh | sh -
Install cookiecutter:
uv tool install cookiecutter # or pip install cookiecutter -
Install Apple/Container:
Create a new project
# From local directory
cookiecutter /path/to/cookiecutter-mcp-uv-container
# From GitHub
cookiecutter https://github.com/daviddrummond95/cookiecutter-mcp-uv-container
Template Variables
You'll be prompted for:
- project_name: Human-readable project name (e.g., "My Calculator MCP")
- project_slug: Package name (auto-generated from project_name)
- mcp_name: The MCP server name (e.g., "MyCalculatorMCP")
- description: Project description
- author_name: Your name
- author_email: Your email
- python_version: Python version (default: 3.13)
- mcp_version: MCP SDK version (default: 1.9.4)
Project Structure
After generation, your project will have:
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
Next Steps
After creating your project:
-
Navigate to your project:
cd my-mcp-server # or whatever you put as project-slug -
Start Container System (first time only):
container system start -
Build Container:
container build --tag my-mcp . # Replace my-mcp with whatever you want to name the container -
Run MCP Server:
# Interactive stdio mode container run --interactive my-mcp -
Customize: Edit
hello.pyto add your own MCP tools
Claude Desktop Integration
For Claude Desktop, you have two options:
Option 1: Run locally without container (recommended for development)
{
"mcpServers": {
"My MCP Server (Local)": {
"command": "uv",
"args": ["run", "fastmcp", "/path/to/my-mcp-server/hello.py"]
}
}
}
Option 2: Use HTTP transport with container
Then configure Claude Desktop to connect via STDIO:
{
"mcpServers": {
"My MCP Server (Container)": {
"command": "container",
"args": ["run", "--interactive", "my-mcp-container"]
}
}
}
Transport Options
The template supports multiple transport methods via environment variables:
- stdio: Default
- More in progress for flow from local-> cloud
Set via: MCP_TRANSPORT=<transport-type>
License
MIT
README fetched from the repository 8 days ago. The original is authoritative.