StackWiz Server
БесплатноНе проверенAn AI-powered MCP server for managing Docker infrastructure, enabling creation, deployment, and lifecycle management of containerized services with automated DN
Описание
An AI-powered MCP server for managing Docker infrastructure, enabling creation, deployment, and lifecycle management of containerized services with automated DNS and SSL.
README
Transform your Docker infrastructure management with an AI-powered Model Context Protocol (MCP) server. StackWiz MCP enables AI assistants like Claude to create, manage, and deploy containerized services in your infrastructure programmatically.
📖 Documentation
| Document | Purpose |
|---|---|
| CLAUDE.md | Quick reference for Claude Code agents |
| docs/AGENT_REFERENCE.md | Canonical documentation - complete tool reference |
| docs/TECHNICAL_OVERVIEW.md | Deep technical architecture & LXC deployment guide |
| INSTALL.md | Installation guide for standalone deployment |
For AI Agents: Start with CLAUDE.md, refer to docs/AGENT_REFERENCE.md for detailed tool parameters.
For DevOps/Deployment: See docs/TECHNICAL_OVERVIEW.md for architecture details and environment configuration.
🚀 Quick Start
Installation
# Install from Git (recommended)
pip install git+https://gitea.rbnk.uk/admin/stackwiz-mcp.git
# Or from GitHub:
pip install git+https://github.com/rickoslyder/stackwiz-mcp.git
# Or clone and install locally
git clone https://gitea.rbnk.uk/admin/stackwiz-mcp.git
cd stackwiz-mcp
pip install -e .
Claude Desktop Integration
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"stackwiz": {
"command": "python",
"args": ["-m", "stackwiz_mcp"],
"env": {
"STACKWIZ_BASE_DIR": "/srv/dockerdata",
"STACKWIZ_LOG_LEVEL": "INFO"
}
}
}
}
Basic Usage
Once configured, you can ask Claude to:
- "Create a new Grafana monitoring service"
- "Deploy a Pocketbase backend for my todo app"
- "List all running Docker stacks"
- "Create a PostgreSQL database with automatic backups"
- "Set up a Ghost blog with custom domain"
🎯 Features
Stack Management
- Create Stacks: Deploy any Docker container with automatic Traefik integration
- Pocketbase Support: Specialized support for Pocketbase backends
- List & Monitor: View all stacks with real-time status
- Lifecycle Control: Start, stop, restart, and remove stacks
- Log Access: Retrieve container logs for debugging
DNS Automation
- Cloudflare Integration: Full DNS record management (create, list, update, delete)
- Multiple Record Types: A, AAAA, CNAME, TXT, MX support
- Smart Defaults: Auto-detect server IP for A records
- Proxy Control: Toggle Cloudflare proxy (orange/gray cloud) per record
- Rate Limit Handling: Automatic retry with exponential backoff
- Zone ID Caching: Efficient API usage with 5-minute cache
Infrastructure Integration
- Traefik Ready: Automatic SSL/TLS with Let's Encrypt
- Network Management: Proper Docker network configuration
- Permission Handling: Secure file permissions (750/640)
- Template System: Consistent stack structure
📚 Available Tools
create_stack
Creates a new Docker service stack.
Parameters:
name(required): Stack identifier (lowercase, alphanumeric + hyphens)type: "generic" or "pocketbase"domain: Full domain for the serviceimage: Docker image (required for generic)port: Container port (required for generic)create_dns: Auto-create DNS recordauto_start: Start immediately after creationenvironment: Additional environment variables
list_stacks
Lists all Docker stacks in the infrastructure.
Parameters:
filter: Filter stacks by nameinclude_status: Include container statussort_by: Sort by name, created, or status
manage_stack
Performs operations on existing stacks.
Parameters:
stack_name(required): Target stackaction: start, stop, restart, remove, logsoptions: Additional options (follow_logs, tail_lines)
create_dns_record
Creates DNS records in Cloudflare with automatic retry and rate limit handling.
Parameters:
subdomain(required): Subdomain to createtype: Record type (A, CNAME, MX, TXT)value: Record value (AUTO for server IP)proxied: Enable Cloudflare proxy
list_dns_records
Lists DNS records from Cloudflare.
Parameters:
filter: Filter records by name (partial match)
update_dns_proxy
Toggles Cloudflare proxy for a DNS record.
Parameters:
subdomain(required): Target subdomainenable(required): true for proxied, false for DNS-only
delete_dns_record
Deletes DNS records from Cloudflare.
Parameters:
subdomain(required): Subdomain to delete
validate_stack_config
Validates configuration before creation.
Parameters:
config(required): Stack configuration objectcheck_conflicts: Check for port/domain conflicts
🗂️ Resources
The MCP server provides read access to:
- Stack Configurations:
stack://list,stack://{name}/compose - Templates:
template://generic,template://pocketbase - Infrastructure Info:
infra://networks,infra://domains
💡 Prompts
Interactive deployment guides:
deploy-web-app: Step-by-step web application deploymentsetup-database: Database deployment with best practicescreate-api-service: API service with monitoring
🏗️ Architecture
stackwiz-mcp/
├── stackwiz_mcp/ # Main package
│ ├── server.py # FastMCP server (preferred)
│ ├── mcp_server.py # Standard MCP implementation
│ ├── config.py # Configuration management
│ ├── tools/ # MCP tool implementations
│ ├── resources/ # Resource providers
│ ├── prompts/ # Interactive prompts
│ ├── models/ # Pydantic models
│ └── utils/ # Utilities
├── tests/ # Test suite
├── docs/ # Documentation
└── examples/ # Usage examples
🧪 Testing
# Run the test suite
./run_tests.sh
# Manual testing
python test_server.py
# Run specific tests
pytest tests/test_mcp_server.py -v
🐳 Docker Deployment
# Build and run with Docker
docker compose up -d
# View logs
docker compose logs -f
# Stop the server
docker compose down
⚙️ Configuration
Environment Variables
STACKWIZ_BASE_DIR: Base directory for stacks (default:/srv/dockerdata)STACKWIZ_LOG_LEVEL: Logging level (DEBUG, INFO, WARNING, ERROR)STACKWIZ_ENV: Environment (development, production)DOCKER_HOST: Docker daemon socketCF_API_EMAIL: Cloudflare emailCF_DNS_API_TOKEN: Cloudflare API tokenDEFAULT_USER: File owner (default: current user)DEFAULT_GROUP: File group (default: docker)
Configuration File
Create config.json for persistent settings:
{
"docker": {
"network": "traefik_proxy",
"compose_timeout": 30
},
"dns": {
"default_ttl": 300,
"proxied": true
},
"traefik": {
"entrypoint": "websecure",
"certresolver": "cf"
}
}
🔒 Security
- Input Validation: All inputs validated with Pydantic
- Command Injection Protection: Safe command execution
- Path Traversal Prevention: Restricted to base directory
- Secrets Management: Environment variables never logged
- Permission Management: Proper Unix permissions
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Run the test suite
- Submit a pull request
📝 License
MIT License - See LICENSE file for details.
🙏 Acknowledgments
- Built on the Model Context Protocol specification
- Uses FastMCP framework
- Inspired by the original stackwiz shell script
🐛 Troubleshooting
Server won't start
- Check Python version (3.8+ required)
- Verify dependencies:
pip install -r requirements.txt - Check permissions on base directory
Tools not working
- Ensure Docker daemon is running
- Verify user is in docker group
- Check
DOCKER_HOSTenvironment variable
DNS creation fails
- Verify Cloudflare API credentials (CF_API_TOKEN or CF_DNS_API_TOKEN)
- Check domain is managed by Cloudflare
- Ensure API token has DNS edit permissions
- Rate limits are handled automatically with retries
- See logs for detailed error messages
DNS proxy toggle fails
- Only A, AAAA, and CNAME records can be proxied
- MX and TXT records cannot be proxied (Cloudflare limitation)
Logs location
- Server logs:
~/.cache/stackwiz-mcp/logs/ - Stack logs:
docker compose -f {stack}/docker-compose.yml logs
📞 Support
- GitHub Issues: Report bugs and feature requests
- Documentation: See
/docsdirectory - Examples: Check
/examplesfor usage patterns
Установка StackWiz Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/rickoslyder/stackwiz-mcpFAQ
StackWiz Server MCP бесплатный?
Да, StackWiz Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для StackWiz Server?
Нет, StackWiz Server работает без API-ключей и переменных окружения.
StackWiz Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить StackWiz Server в Claude Desktop, Claude Code или Cursor?
Открой StackWiz Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare StackWiz Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
