# Docker Hub Automation

> Automate Docker Hub tasks via Composio MCP (Composio): repositories, images, tags, and container registry management. Always search tools first for current schemas.

- Skill: `eosbot/docker-hub-automation` (Agent Skill)
- Install (CLI): `npx skillmds@latest add eosbot/docker-hub-automation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/eosbot/docker-hub-automation/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: EosBot (https://skillmd.com/u/eosbot)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/eosbot/docker-hub-automation

---


# Docker Hub Automation via Composio MCP

Automate Docker Hub operations through Composio's Docker Hub toolkit via Composio MCP.

**Toolkit docs**: [composio.dev/toolkits/docker_hub](https://composio.dev/toolkits/docker_hub)

## Prerequisites

- Composio MCP must be connected (COMPOSIO_SEARCH_TOOLS available)
- Active Docker Hub connection via `COMPOSIO_MANAGE_CONNECTIONS` with toolkit `docker_hub`
- Always call `COMPOSIO_SEARCH_TOOLS` first to get current tool schemas

## Setup

**Get Composio MCP**: Add `http://localhost:8787/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.

1. Verify Composio MCP is available by confirming `COMPOSIO_SEARCH_TOOLS` responds
2. Call `COMPOSIO_MANAGE_CONNECTIONS` with toolkit `docker_hub`
3. If connection is not ACTIVE, follow the returned auth link to complete setup
4. Confirm connection status shows ACTIVE before running any workflows

## Tool Discovery

Always discover available tools before executing workflows:

```
COMPOSIO_SEARCH_TOOLS: queries=[{"use_case": "repositories, images, tags, and container registry management", "known_fields": ""}]
```

This returns:
- Available tool slugs for Docker Hub
- Recommended execution plan steps
- Known pitfalls and edge cases
- Input schemas for each tool

## Core Workflows

### 1. Discover Available Docker Hub Tools

```
COMPOSIO_SEARCH_TOOLS:
  queries:
    - use_case: "list all available Docker Hub tools and capabilities"
```

Review the returned tools, their descriptions, and input schemas before proceeding.

### 2. Execute Docker Hub Operations

After discovering tools, execute them via:

```
COMPOSIO_MULTI_EXECUTE_TOOL:
  tools:
    - tool_slug: "<discovered_tool_slug>"
      arguments: {<schema-compliant arguments>}
  memory: {}
  sync_response_to_workbench: false
```

### 3. Multi-Step Workflows

For complex workflows involving multiple Docker Hub operations:

1. Search for all relevant tools: `COMPOSIO_SEARCH_TOOLS` with specific use case
2. Execute prerequisite steps first (e.g., fetch before update)
3. Pass data between steps using tool responses
4. Use `COMPOSIO_REMOTE_WORKBENCH` for bulk operations or data processing

## Common Patterns

### Search Before Action
Always search for existing resources before creating new ones to avoid duplicates.

### Pagination
Many list operations support pagination. Check responses for `next_cursor` or `page_token` and continue fetching until exhausted.

### Error Handling
- Check tool responses for errors before proceeding
- If a tool fails, verify the connection is still ACTIVE
- Re-authenticate via `COMPOSIO_MANAGE_CONNECTIONS` if connection expired

### Batch Operations
For bulk operations, use `COMPOSIO_REMOTE_WORKBENCH` with `run_composio_tool()` in a loop with `ThreadPoolExecutor` for parallel execution.

## Known Pitfalls

- **Always search tools first**: Tool schemas and available operations may change. Never hardcode tool slugs without first discovering them via `COMPOSIO_SEARCH_TOOLS`.
- **Check connection status**: Ensure the Docker Hub connection is ACTIVE before executing any tools. Expired OAuth tokens require re-authentication.
- **Respect rate limits**: If you receive rate limit errors, reduce request frequency and implement backoff.
- **Validate schemas**: Always pass strictly schema-compliant arguments. Use `COMPOSIO_GET_TOOL_SCHEMAS` to load full input schemas when `schemaRef` is returned instead of `input_schema`.

## Quick Reference

| Operation | Approach |
|-----------|----------|
| Find tools | `COMPOSIO_SEARCH_TOOLS` with Docker Hub-specific use case |
| Connect | `COMPOSIO_MANAGE_CONNECTIONS` with toolkit `docker_hub` |
| Execute | `COMPOSIO_MULTI_EXECUTE_TOOL` with discovered tool slugs |
| Bulk ops | `COMPOSIO_REMOTE_WORKBENCH` with `run_composio_tool()` |
| Full schema | `COMPOSIO_GET_TOOL_SCHEMAS` for tools with `schemaRef` |

> **Toolkit docs**: [composio.dev/toolkits/docker_hub](https://composio.dev/toolkits/docker_hub)

