CargoShipper MCP Server
A comprehensive MCP (Model Context Protocol) server that provides Claude with direct access to Docker, DigitalOcean, and CloudFlare APIs for infrastructure management and automation.
⚠️ IMPORTANT SAFETY WARNING
USE AT YOUR OWN RISK: This tool gives AI models direct access to infrastructure management APIs that can:
- Create, modify, or delete cloud resources (potentially incurring costs)
- Modify DNS settings (potentially breaking domains)
- Manage Docker containers and images (potentially affecting running services)
- Execute destructive operations on your infrastructure
Before using:
- Ensure you understand the capabilities and risks of each API
- Start with non-production environments only
- Review all operations before execution in production
- Monitor costs and resource usage carefully
- Have backup and recovery procedures in place
AI models may:
- Misinterpret instructions and perform unintended operations
- Make mistakes in resource configuration or deletion
- Execute multiple operations when only one was intended
- Struggle with complex multi-step procedures requiring human judgment
Recommended safety measures:
- Use dedicated development/testing accounts with spending limits
- Implement least-privilege API tokens with restricted permissions
- Monitor all operations through cloud provider dashboards
- Test operations in isolated environments first
- Keep backups of critical configurations and data
🤖 VIBECODE FRIENDLY PROJECT
This project welcomes contributions from AI/LLM agents! Pull requests from Claude, GPT, and other AI models are actively encouraged.
Guidelines for AI contributors:
- Follow existing code patterns and documentation standards
- Include comprehensive commit messages explaining changes
- Test changes thoroughly before submitting PRs
- Update documentation when adding new features
✨ Easy Setup with uvx
CargoShipper is available on PyPI and works seamlessly with uvx for easy installation and management, just like mcp-server-git.
Quick Install from PyPI
# Run directly (recommended)
uvx cargoshipper-mcp
# Configure in your .mcp.json
{
"mcpServers": {
"cargoshipper": {
"command": "uvx",
"args": ["cargoshipper-mcp"]
}
}
}
Development Setup
For local development and testing:
-
Clone the repository:
cd cargoshipper-mcp
-
Install dependencies:
pip install -r requirements.txt # or create a virtual environment first python3 -m venv .venv source .venv/bin/activate # Linux/Mac pip install -r requirements.txt
-
Configure your APIs:
cp .env.example .env # Edit .env with your API tokens: # DIGITALOCEAN_TOKEN=your_token_here # CLOUDFLARE_API_TOKEN=your_token_here
-
Use the development MCP configuration:
# Use .mcp.dev.json for local development cp .mcp.dev.json .mcp.json
🐳 Docker Integration
- Container Management: Full lifecycle (create, start, stop, remove, logs)
- Image Operations: List, pull, and manage Docker images
- System Information: Docker system stats and health
- Resource Monitoring: Container resource usage and status
🌊 DigitalOcean Integration
- Droplet Management: Complete droplet lifecycle management
- DNS Management: Full DNS record CRUD operations
- Account Information: Access account details and billing
- Image Management: Work with distributions and custom snapshots
☁️ CloudFlare Integration
- Zone Management: Create and configure CloudFlare zones
- DNS Operations: Advanced DNS with proxy settings
- Cache Control: Purge cache by URL, tags, or everything
- Analytics: Traffic and performance analytics
- Security Settings: SSL, security levels, firewall rules
🔧 Available Tools & Resources
30 Tools Total:
- Docker (9 tools):
docker_run_container,docker_list_containers, etc. - DigitalOcean (10 tools):
do_create_droplet,do_list_dns_records, etc. - CloudFlare (11 tools):
cf_create_zone,cf_purge_cache, etc.
17 Resources Total:
docker://containers- All containers with statusdigitalocean://droplets- All droplets with costscloudflare://zones- All zones with analytics- And many more...
📋 Configuration Files
Production (.mcp.json)
{
"mcpServers": {
"cargoshipper": {
"command": "uvx",
"args": ["cargoshipper-mcp"]
}
}
}
Development (.mcp.dev.json)
{
"mcpServers": {
"cargoshipper": {
"command": "python",
"args": ["-m", "cargoshipper_mcp.server"],
"cwd": ".",
"env": {
"PYTHONPATH": "."
}
}
}
}
🔑 API Credentials Setup
Create .env file or ~/.config/cargoshipper-mcp/.env:
# DigitalOcean API Token
DIGITALOCEAN_TOKEN=your_digitalocean_token_here
# CloudFlare API Token (recommended)
CLOUDFLARE_API_TOKEN=your_cloudflare_token_here
# Alternative: CloudFlare Email + Global API Key
# CLOUDFLARE_EMAIL=your@email.com
# CLOUDFLARE_API_KEY=your_global_api_key
Getting API Tokens:
- DigitalOcean: API Tokens Page
- CloudFlare: API Tokens Page
🚀 Usage Examples
Once configured, Claude will have access to infrastructure operations:
# Docker examples
"Run an nginx container on port 8080"
"List all running containers"
"Get logs from container abc123"
# DigitalOcean examples
"Create a small droplet in NYC3"
"List all my droplets and their costs"
"Add an A record for api.example.com"
# CloudFlare examples
"Create a new zone for mysite.com"
"Purge all cache for example.com"
"Show me analytics for the last 24 hours"
📁 Project Structure
cargoshipper-mcp/
├── cargoshipper_mcp/ # Main package (renamed from src/)
│ ├── server.py # MCP server entry point
│ ├── config/ # Configuration with multi-path .env loading
│ ├── tools/ # API operation tools
│ │ ├── docker.py # Docker operations
│ │ ├── digitalocean.py # DigitalOcean operations
│ │ └── cloudflare.py # CloudFlare operations
│ ├── resources/ # Read-only data access
│ └── utils/ # Shared utilities
├── .mcp.json # Production MCP config (uvx)
├── .mcp.dev.json # Development MCP config (local python)
├── pyproject.toml # Python packaging (uvx compatible)
├── requirements.txt # Dependencies
└── install.sh # uvx installation script
🌍 Published on PyPI
CargoShipper MCP is now available on PyPI! Access it at: https://pypi.org/project/cargoshipper-mcp/
Setup is as simple as:
# Run directly (most common)
uvx cargoshipper-mcp
# Configure in .mcp.json
{
"mcpServers": {
"cargoshipper": {
"command": "uvx",
"args": ["cargoshipper-mcp"]
}
}
}
🛠️ Development
Package Structure
- Uses proper Python packaging with
pyproject.toml - Console entry point:
cargoshipper-mcp = "cargoshipper_mcp.server:main" - Multi-path environment loading for uvx compatibility
- Type hints and comprehensive error handling throughout
Testing
python test_server.py # Validates imports and configuration
This approach follows the same pattern as mcp-server-git and other uvx-compatible MCP servers, making it extremely easy to install and use once published!
Metadata
Release files for cargoshipper-mcp 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cargoshipper_mcp-1.0.3.tar.gz | 36.2 kB | Without provenance | Details for cargoshipper_mcp-1.0.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cargoshipper_mcp-1.0.3-py3-none-any.whl | Python 3 | none | any | Details for cargoshipper_mcp-1.0.3-py3-none-any.whl |
Total release size: 76.2 kB
Release files / cargoshipper_mcp-1.0.3.tar.gz
| Download URL | cargoshipper_mcp-1.0.3.tar.gz |
|---|---|
| Size | 36.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
35c32507105557c21069691316622d2f79cf787e0ff9bf02bd768a820a263f71
|
|
BLAKE2b-256 checksum How to use checksums |
ae8ae2ea05671ca5402a4b1e28b916dc69a4f22bcc9d3372139fdc8a1eec7fcd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|
Release files / cargoshipper_mcp-1.0.3-py3-none-any.whl
| Download URL | cargoshipper_mcp-1.0.3-py3-none-any.whl |
|---|---|
| Size | 40.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dc6eb2a329a4b886d2994dc44555e532bb1d60208ee1147f2dc937c049dafac4
|
|
BLAKE2b-256 checksum How to use checksums |
c6799726e727815bd3608925e3263a2341a3acf47aee1cba387fcc06a65a8846
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|
Security for cargoshipper-mcp 1.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.