# Docker hub

```json
{
  "name": "Docker hub",
  "slug": "docker_hub",
  "url": "https://composio.dev/toolkits/docker_hub",
  "markdown_url": "https://composio.dev/toolkits/docker_hub.md",
  "logo_url": "https://logos.composio.dev/api/docker_hub",
  "categories": [
    "developer tools & devops"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-05-12T10:09:03.978Z"
}
```

![Docker hub logo](https://logos.composio.dev/api/docker_hub)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Docker hub MCP or direct API to search images, publish containers, manage repositories, and automate image workflows through natural language.

## Summary

Docker Hub is a cloud-based registry for finding and sharing container images. It simplifies container collaboration and deployment for individuals and teams.

## Categories

- developer tools & devops

## Toolkit Details

- Tools: 24

## Images

- Logo: https://logos.composio.dev/api/docker_hub

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for Docker Hub.
  - Setup:
    - Configure Api Key credentials for Docker Hub.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Create a new Docker Hub repository
- Add a member to my Docker organization
- Delete an old image from a repository
- Set up a webhook for repository updates

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `DOCKER_HUB_ADD_ORG_MEMBER` | Add Organization Member | Invite a user to join a Docker Hub organization. Sends an invitation email to the specified user (by Docker ID or email). The user must accept the invitation to become a member. Requires owner or admin privileges on the target organization. |
| `DOCKER_HUB_CREATE_ORGANIZATION` | Create Docker Hub Organization | Create a new Docker Hub organization. Note: This endpoint requires JWT authentication obtained via /v2/users/login and may have restricted access. |
| `DOCKER_HUB_CREATE_REPOSITORY` | Create Docker Hub Repository | Creates a new Docker Hub repository under the specified namespace. Use this to programmatically create public or private repositories for storing Docker images. Requires proper authentication with write permissions to the namespace. |
| `DOCKER_HUB_CREATE_WEBHOOK` | Create Docker Hub Webhook | Create a webhook on a Docker Hub repository to receive notifications on image push events. This is a two-step process: 1. Create the webhook with a name 2. Add a hook URL to the webhook Requires admin permissions on the repository. |
| `DOCKER_HUB_DELETE_IMAGE` | Delete Repository Images | Delete one or more images from your Docker Hub namespace using the bulk delete API. IMPORTANT REQUIREMENTS: - You must own the namespace (your username or an organization you admin) - You cannot delete images from 'library' (official Docker images) - Images are identified by SHA256 digest (get from LIST_IMAGES action) USAGE: 1. First use LIST_IMAGES to get image digests for your repository 2. Then call this action with the namespace, repository, and digest(s) Example: DELETE_IMAGE( namespace="myusername", manifests=[{"repository": "myapp", "digest": "sha256:abc123..."}] ). WARNING: Deletion is permanent and irreversible — obtain explicit user confirmation before calling this action. |
| `DOCKER_HUB_DELETE_ORGANIZATION` | Delete Docker Hub Organization | Permanently deletes a Docker Hub organization. Requires owner permissions on the organization. This action is idempotent - deleting a non-existent organization returns success (404 treated as success). WARNING: Deletion is irreversible and removes all associated repositories, teams, and members. |
| `DOCKER_HUB_DELETE_REPOSITORY` | Delete Docker Hub Repository | Permanently deletes a Docker Hub repository and all its images/tags. WARNING: This action is irreversible. All images, tags, and metadata will be permanently removed. This operation is idempotent - deleting a non-existent repository returns success. You must have admin/owner permissions on the repository to delete it. |
| `DOCKER_HUB_DELETE_TAG` | Delete Repository Tag | Permanently delete a specific tag from a Docker Hub repository. Requirements: - Must have write/admin access to the repository - The namespace must be your username or an organization you belong to - This action is irreversible - the tag will be permanently removed Note: Cannot delete tags from official Docker Hub images (library namespace). |
| `DOCKER_HUB_DELETE_TEAM` | Delete Docker Hub Team | Permanently deletes a team from a Docker Hub organization. This operation is idempotent - deleting a non-existent team will succeed silently. Requires organization admin permissions. Use DOCKER_HUB_LIST_TEAMS to find available teams before deletion. |
| `DOCKER_HUB_DELETE_WEBHOOK` | Delete Docker Hub repository webhook | Deletes a specific webhook from a Docker Hub repository. Use this tool to remove webhook configurations from repositories you own or have admin access to. This is useful for cleaning up outdated, misconfigured, or no longer needed webhooks. Prerequisites: - You must have admin access to the repository - The repository and webhook must exist - Use the list webhooks action first to get the webhook ID Returns a success message if the webhook was deleted, or an error if the webhook doesn't exist or you lack permission to delete it. |
| `DOCKER_HUB_GET_IMAGE` | Get Docker Hub Image | Retrieve details about a specific platform-specific image variant by its digest. This tool searches through repository tags to find and return metadata for an image matching the specified SHA256 digest. Returns architecture, OS, size, status, and timestamps. Use LIST_IMAGES first to discover available digests, then use this tool to get details about a specific image variant. Example: GET_IMAGE(namespace="library", repository="ubuntu", digest="sha256:a4453623f2f8319cfff65c43da9be80fe83b1a7ce689579b475867d69495b782") |
| `DOCKER_HUB_GET_REPOSITORY` | Get Docker Hub Repository | Retrieves detailed information about a specific Docker Hub repository. Use this to get repository metadata including description, star/pull counts, permissions, and configuration. Works with both public and private repositories (authentication required for private repos). |
| `DOCKER_HUB_GET_TAG` | Get Docker Hub Tag | Tool to retrieve details of a specific Docker Hub repository tag. Use after confirming the namespace, repository, and tag name. |
| `DOCKER_HUB_GET_TEAM` | Get Docker Hub Team | Retrieve details of a specific team (group) within a Docker Hub organization. Returns the team's ID, name, and description. Requires organization membership with appropriate permissions to view team details. |
| `DOCKER_HUB_GET_WEBHOOK` | Get Docker Hub Webhook | Retrieves details of a specific Docker Hub webhook by its ID. Use this tool when you need to inspect an existing webhook's configuration, including its target URL, configured events, and active status. You must have admin or write access to the repository to retrieve webhook details. Prerequisites: - You must have admin or write access to the repository - The webhook ID must exist (can be obtained from the list webhooks action) Returns the webhook's ID, name, target URL, events, active status, and timestamps. |
| `DOCKER_HUB_LIST_ORG_ACCESS_TOKENS` | List Organization Access Tokens | Tool to list all organization access tokens for a Docker Hub organization. Use when you need to view or audit access tokens associated with an organization. Requires appropriate organization permissions to view tokens. |
| `DOCKER_HUB_LIST_ORGANIZATIONS` | List Docker Hub Organizations | List Docker Hub organizations that the authenticated user belongs to. Returns a paginated list of organizations with details like name, company, and badge status; some metadata fields may be absent — use org name for follow-up detail calls when complete metadata is required. An empty result is valid and indicates the user belongs to no organizations. Use this to discover which organizations a user has access to before performing org-specific operations. |
| `DOCKER_HUB_LIST_ORG_MEMBERS` | List Docker Hub Organization Members | Lists members of a Docker Hub organization with their roles and details. Use this tool to: - Audit organization membership - View member roles (owner, member) - Check team assignments for members - Export organization member lists Requirements: - You must have access to the organization (owner or member role) - Authentication via Personal Access Token (PAT) which is exchanged for JWT Note: This endpoint requires organization-level access and proper authentication. |
| `DOCKER_HUB_LIST_REPOSITORIES` | List Docker Hub Repositories | Tool to list repositories under a namespace. Use when you need to enumerate repositories within a specific Docker Hub namespace, with optional filtering and pagination. |
| `DOCKER_HUB_LIST_TEAM_MEMBERS` | List Team Members | List members of a Docker Hub team (group) within an organization. Returns a paginated list of team members with their user details. Requires organization membership with appropriate permissions to view team members. |
| `DOCKER_HUB_LIST_TEAMS` | List Organization Teams | List all teams (groups) within a Docker Hub organization. Requires organization membership with appropriate permissions. Teams in Docker Hub are called 'groups' in the API. |
| `DOCKER_HUB_LIST_WEBHOOKS` | List Docker Hub repository webhooks | Lists all webhooks configured for a Docker Hub repository. Use this tool to retrieve webhook configurations for repositories you own or have admin access to. Webhooks are triggered when specific events occur in the repository (e.g., image push). Prerequisites: - You must have admin or write access to the repository - The repository must exist under the specified namespace Returns a paginated list of webhooks with their IDs, names, target URLs, configured events, and status. |
| `DOCKER_HUB_REMOVE_ORG_MEMBER` | Remove Organization Member | Remove a member from a Docker Hub organization. This action revokes the user's access to the organization and all its repositories. Requires organization admin privileges. The operation is idempotent - removing a non-member will not cause an error. |
| `DOCKER_HUB_REMOVE_TEAM_MEMBER` | Remove Team Member | Remove a user from a Docker Hub organization team (group). Use this action to revoke a user's membership from a specific team. The operation is idempotent - removing a user who is not a member will succeed silently. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Docker hub Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Docker hub actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'Create a new Docker Hub repository under my organization'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'Create a new Docker Hub repository under my organization'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and Claude Agent SDK
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Create Tool Router Session

Initialize the Composio client and create a Tool Router session
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });

console.log("Creating Tool Router session...");
const { mcp } = await composio.create('your-user-id');
console.log(`Tool Router session created: ${mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Docker hub tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('Create a new Docker Hub repository named "ci-test-repo" in my organization')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText, stepCountIs } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: mcp.url,
    headers: { 'x-api-key': 'your-composio-api-key' }
  }
});

const tools = await client.tools();

const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{ role: 'user', content: 'Create a new Docker Hub repository named "ci-test-repo" in my organization' }],
  stopWhen: stepCountIs( 5 )
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Docker hub Integration

- Supports both Docker hub MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for searching, publishing, and managing Docker hub repositories

### 2. Managed Auth

- Built-in API key handling with secure credential management
- Central place to manage, scope, and revoke Docker hub access
- Per user and per environment credentials—no more hard-coded secrets

### 3. Agent Optimized Design

- Tools fine-tuned for LLMs, improving reliability with real-world usage
- Comprehensive execution logs for transparency and troubleshooting

### 4. Enterprise Grade Security

- Granular RBAC controls for agent and user access to Docker hub
- Scoped, least privilege access to repositories and images
- Full audit trail of agent actions for compliance and review

## Use Docker hub with any AI Agent Framework

Choose a framework you want to connect Docker hub with:

- [OpenAI Agents SDK](https://composio.dev/toolkits/docker_hub/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/docker_hub/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/docker_hub/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/docker_hub/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/docker_hub/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/docker_hub/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/docker_hub/framework/hermes-agent)
- [Google ADK](https://composio.dev/toolkits/docker_hub/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/docker_hub/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/docker_hub/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/docker_hub/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/docker_hub/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/docker_hub/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/docker_hub/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/docker_hub/framework/autogen)

## Related Toolkits

- [Supabase](https://composio.dev/toolkits/supabase) - Supabase is an open-source backend platform offering scalable Postgres databases, authentication, storage, and real-time APIs. It lets developers build modern apps without managing infrastructure.
- [Codeinterpreter](https://composio.dev/toolkits/codeinterpreter) - Codeinterpreter is a Python-based coding environment with built-in data analysis and visualization. It lets you instantly run scripts, plot results, and prototype solutions inside supported platforms.
- [GitHub](https://composio.dev/toolkits/github) - GitHub is a code hosting platform for version control and collaborative software development. It streamlines project management, code review, and team workflows in one place.
- [Ably](https://composio.dev/toolkits/ably) - Ably is a real-time messaging platform for live chat and data sync in modern apps. It offers global scale and rock-solid reliability for seamless, instant experiences.
- [Abuselpdb](https://composio.dev/toolkits/abuselpdb) - Abuselpdb is a central database for reporting and checking IPs linked to malicious online activity. Use it to quickly identify and report suspicious or abusive IP addresses.
- [Alchemy](https://composio.dev/toolkits/alchemy) - Alchemy is a blockchain development platform offering APIs and tools for Ethereum apps. It simplifies building and scaling Web3 projects with robust infrastructure.
- [Algolia](https://composio.dev/toolkits/algolia) - Algolia is a hosted search API that powers lightning-fast, relevant search experiences for web and mobile apps. It helps developers deliver instant, typo-tolerant, and scalable search without complex infrastructure.
- [Anchor browser](https://composio.dev/toolkits/anchor_browser) - Anchor browser is a developer platform for AI-powered web automation. It transforms complex browser actions into easy API endpoints for streamlined web interaction.
- [Apiflash](https://composio.dev/toolkits/apiflash) - Apiflash is a website screenshot API for programmatically capturing web pages. It delivers high-quality screenshots on demand for automation, monitoring, or reporting.
- [Apiverve](https://composio.dev/toolkits/apiverve) - Apiverve delivers a suite of powerful APIs that simplify integration for developers. It's designed for reliability and scalability so you can build faster, smarter applications without the integration headache.
- [Appcircle](https://composio.dev/toolkits/appcircle) - Appcircle is an enterprise-grade mobile CI/CD platform for building, testing, and publishing mobile apps. It streamlines mobile DevOps so teams ship faster and with more confidence.
- [Appdrag](https://composio.dev/toolkits/appdrag) - Appdrag is a cloud platform for building websites, APIs, and databases with drag-and-drop tools and code editing. It accelerates development and iteration by combining hosting, database management, and low-code features in one place.
- [Appveyor](https://composio.dev/toolkits/appveyor) - AppVeyor is a cloud-based continuous integration service for building, testing, and deploying applications. It helps developers automate and streamline their software delivery pipelines.
- [Backendless](https://composio.dev/toolkits/backendless) - Backendless is a backend-as-a-service platform for mobile and web apps, offering database, file storage, user authentication, and APIs. It helps developers ship scalable applications faster without managing server infrastructure.
- [Baserow](https://composio.dev/toolkits/baserow) - Baserow is an open-source no-code database platform for building collaborative data apps. It makes it easy for teams to organize data and automate workflows without writing code.
- [Bench](https://composio.dev/toolkits/bench) - Bench is a benchmarking tool for automated performance measurement and analysis. It helps you quickly evaluate, compare, and track your systems or workflows.
- [Better stack](https://composio.dev/toolkits/better_stack) - Better Stack is a monitoring, logging, and incident management solution for apps and services. It helps teams ensure application reliability and performance with real-time insights.
- [Bitbucket](https://composio.dev/toolkits/bitbucket) - Bitbucket is a Git-based code hosting and collaboration platform for teams. It enables secure repository management and streamlined code reviews.
- [Blazemeter](https://composio.dev/toolkits/blazemeter) - Blazemeter is a continuous testing platform for web and mobile app performance. It empowers teams to automate and analyze large-scale tests with ease.
- [Blocknative](https://composio.dev/toolkits/blocknative) - Blocknative delivers real-time mempool monitoring and transaction management for public blockchains. Instantly track pending transactions and optimize blockchain interactions with live data.

## Frequently Asked Questions

### Do I need my own developer credentials to use Docker hub with Composio?

Yes, Docker hub requires you to configure your own API key credentials. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
