Skip to main content
Glama

MCP Docker Hub Server

README.md3.37 kB
# MCP Docker Hub Server A Model Context Protocol (MCP) server that provides access to Docker Hub functionality through Claude with secure database storage for credentials. ## Setup 1. **Install dependencies:** ```bash npm install ``` 2. **Database Setup:** - Create a MySQL/MariaDB database - Run the SQL commands in `DATABASE_SETUP.md` - See `config.example` for environment variables 3. **Create environment variables:** Create a `.env` file in the root directory with: ``` # Database Configuration DB_HOST=localhost DB_USER=root DB_PASSWORD=your_password_here DB_NAME=docker_hub_db DB_PORT=3306 # Encryption Key (32 characters recommended) ENCRYPTION_KEY=your-secret-encryption-key-32-chars-long ``` To get your Docker Hub access token: - Go to https://hub.docker.com/settings/security - Create a new access token - Use the `docker_save_credentials` tool to store securely 4. **Run the server:** ```bash node src/index.js ``` ## Features ### Docker Hub Operations - **docker_search_images**: Search for Docker images on Docker Hub - Parameters: - `username` (required): Docker Hub username - `query` (required): Search term - `limit` (optional): Number of results (default: 5) - `page` (optional): Page number (default: 1) - **docker_get_image_details**: Get details of a particular image - **docker_list_tags**: List tags for a specific image - **docker_get_manifest**: Get image manifest - **docker_analyze_layers**: Analyze image layers ### Credential Management - **docker_save_credentials**: Save or update Docker Hub credentials securely - **docker_get_credentials**: Get credential metadata (username, dates) - **docker_list_credentials**: List all active credentials - **docker_delete_credentials**: Delete credentials for a user - **docker_test_db_connection**: Test database connectivity ## Troubleshooting ### EPIPE Error If you encounter `Error: write EPIPE`, this usually means: 1. The MCP client (Claude) closed the connection unexpectedly 2. There's a communication issue between the client and server **Solutions:** 1. Restart Claude 2. Check that your environment variables are set correctly 3. Ensure the server is running before opening Claude 4. Check the console output for any error messages ### Common Issues 1. **Database connection failed**: Check database server and credentials in `.env` 2. **Missing encryption key**: Ensure `ENCRYPTION_KEY` is set in `.env` 3. **Invalid credentials**: Use `docker_save_credentials` to store valid credentials 4. **Network issues**: Check your internet connection and Docker Hub API status 5. **Table not found**: Run the SQL commands in `DATABASE_SETUP.md` ## Development The server is built using: - Node.js - MCP SDK (@modelcontextprotocol/sdk) - Axios for HTTP requests - MySQL2 for database connectivity - CryptoJS for encryption - Dotenv for environment variable management ## Security - All Docker Hub Personal Access Tokens (PATs) are encrypted using AES-256 encryption - Credentials are stored securely in the database - No sensitive data is exposed through the MCP tools - Soft delete ensures data recovery capability ## Logs The server provides detailed logging for debugging: - MCP Server errors - Transport errors - Docker Hub API errors - Process signals and shutdown events

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sirsambhav221/MCPDCOKER'

If you have feedback or need assistance with the MCP directory API, please join our Discord server