MCP server for Docker, DigitalOcean, and CloudFlare operations
Project description
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.
โจ Easy Setup with uvx
CargoShipper is designed to work seamlessly with uvx for easy installation and management, just like mcp-server-git.
Quick Install (Future - when published to PyPI)
# This will work once published to PyPI
uvx install cargoshipper-mcp
# Configure in your .mcp.json
{
"cargoshipper": {
"command": "uvx",
"args": ["cargoshipper-mcp"]
}
}
Development Setup (Current)
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
๐ฎ Future: PyPI Publication
Once published to PyPI, setup becomes as simple as:
# Install globally
uvx install cargoshipper-mcp
# Or run directly
uvx cargoshipper-mcp
# Configure in .mcp.json
{
"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!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cargoshipper_mcp-1.0.0.tar.gz.
File metadata
- Download URL: cargoshipper_mcp-1.0.0.tar.gz
- Upload date:
- Size: 32.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc04ceaa6f8fab6b3822ad8d7a01e53af0a6130f7707601e0d36b5fbbe8e3edc
|
|
| MD5 |
e5a0dd807925e42ac562059c86323218
|
|
| BLAKE2b-256 |
980f3301f78289587225f8f47bdeae6d150628326af4c578a0ae9f0d846c84e5
|
File details
Details for the file cargoshipper_mcp-1.0.0-py3-none-any.whl.
File metadata
- Download URL: cargoshipper_mcp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 36.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1552abebe5e7f8e59515559da173f0d10f0516fe5461efc63735932dbc1772fb
|
|
| MD5 |
e32ba252a6a8c1382b263cf9d9710aa8
|
|
| BLAKE2b-256 |
1626666b359ea5673eb5fd8bcdc735c744623a4533a4db2c2d184055fa3e0b03
|