MCP server providing diagnostic intelligence for Docker environments
Project description
docker-kestrel
An MCP server that provides diagnostic intelligence for Docker environments. No Prometheus, no Datadog — just the daemon and smart analysis.
Connect docker-kestrel to Claude Desktop, Claude Code, Cursor, or any MCP-compatible client and ask plain-English questions about your containers.
Why "kestrel"?
A kestrel is a small falcon known for hovering perfectly still in the wind while its eyes lock onto a target below. It watches — it doesn't swoop. docker-kestrel works the same way: it hovers over your containers and tells you exactly what's wrong, without touching anything.
What it does
Existing Docker MCP servers wrap CLI commands (start, stop, list). docker-kestrel reasons about what's going on:
diagnose_container— full diagnostic report: OOM detection, crash loop detection, health check analysis, resource snapshot, log summaryresource_overview— ranked resource usage across all containers with anomaly flagsnetwork_map— Docker network topology, container IPs, port bindingscompose_drift— compare adocker-compose.ymlagainst running containers to find driftlog_analysis— structured log analysis: error counts, pattern grouping, first/last occurrence
Quick start
# Install with uv
uv tool install docker-kestrel
# Or run directly without installing
uvx docker-kestrel
Claude Desktop — ~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"docker-kestrel": {
"command": "uvx",
"args": ["docker-kestrel"]
}
}
}
Claude Code:
claude mcp add docker-kestrel uvx docker-kestrel
Cursor — ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project):
{
"mcpServers": {
"docker-kestrel": {
"command": "uvx",
"args": ["docker-kestrel"]
}
}
}
Example queries
Once connected, you can ask your AI client:
- "Why is my api container unhealthy?"
- "Which container is using the most memory?"
- "Why can't container A reach container B?"
- "Has anything drifted from my docker-compose.yml?"
- "Summarize the errors in the worker container's logs"
Development
git clone https://github.com/markalovell-git/docker-kestrel
cd docker-kestrel
uv sync --dev
uv pip install -e .
# Run unit tests (no Docker daemon required)
uv run pytest tests/test_analysis.py -v
# Run integration tests (requires Docker)
uv run pytest tests/test_integration.py -v
Requirements
- Python 3.11+
- Docker daemon running and accessible (via
/var/run/docker.sock)
License
MIT
Project details
Release history Release notifications | RSS feed
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 docker_kestrel-0.1.0.tar.gz.
File metadata
- Download URL: docker_kestrel-0.1.0.tar.gz
- Upload date:
- Size: 75.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5cce8404d88293a4321a6f84674772fb1fe01a04327a817f9615386c0b5785d
|
|
| MD5 |
039da0332f7d0cc4fba9cc21ae818b81
|
|
| BLAKE2b-256 |
81a6b05078b775410be8fb079b8317d803ba04d17a4d825c0e5f0f0065d0e19b
|
File details
Details for the file docker_kestrel-0.1.0-py3-none-any.whl.
File metadata
- Download URL: docker_kestrel-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
623b189a6959271f4966c04266e0d57327f4e37a1cd3429ec83033d4bfa9f1cf
|
|
| MD5 |
ec189f63383f96a46f316b6858a77966
|
|
| BLAKE2b-256 |
84d16337e38f04015d255bd02113259306340b64fea1c73734214b4189f1a3f8
|