Skip to main content
Glama

WordPress MCP Server

docker-compose.yml5.49 kB
version: "3.8" services: # Bedrock Database Service bedrock-db: image: ghcr.io/mister-weeden/bedrock-db:v0.0.3 container_name: wordpress-mcp-bedrock-db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-rootpassword123} MYSQL_DATABASE: ${MYSQL_DATABASE:-wordpress} MYSQL_USER: ${MYSQL_USER:-wordpress} MYSQL_PASSWORD: ${MYSQL_PASSWORD:-wordpress123} volumes: - bedrock_db_data:/var/lib/mysql networks: - wordpress-mcp-network healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] timeout: 20s retries: 10 interval: 10s start_period: 30s # Bedrock WordPress Service bedrock: image: ghcr.io/mister-weeden/bedrock:v0.0.3 container_name: wordpress-mcp-bedrock restart: unless-stopped ports: - "8888:8080" # Map to port 8888 as specified in requirements environment: # Database Configuration DB_HOST: bedrock-db DB_NAME: ${MYSQL_DATABASE:-wordpress} DB_USER: ${MYSQL_USER:-wordpress} DB_PASSWORD: ${MYSQL_PASSWORD:-wordpress123} # WordPress Configuration WP_ENV: ${WP_ENV:-development} WP_HOME: ${WP_HOME:-http://localhost:8888} WP_SITEURL: ${WP_SITEURL:-http://localhost:8888/wp} # WordPress Salts (generate unique ones for production) AUTH_KEY: ${AUTH_KEY:-your-unique-auth-key-here} SECURE_AUTH_KEY: ${SECURE_AUTH_KEY:-your-unique-secure-auth-key-here} LOGGED_IN_KEY: ${LOGGED_IN_KEY:-your-unique-logged-in-key-here} NONCE_KEY: ${NONCE_KEY:-your-unique-nonce-key-here} AUTH_SALT: ${AUTH_SALT:-your-unique-auth-salt-here} SECURE_AUTH_SALT: ${SECURE_AUTH_SALT:-your-unique-secure-auth-salt-here} LOGGED_IN_SALT: ${LOGGED_IN_SALT:-your-unique-logged-in-salt-here} NONCE_SALT: ${NONCE_SALT:-your-unique-nonce-salt-here} # WordPress Admin User (for MCP server access) WORDPRESS_ADMIN_USER: ${WORDPRESS_ADMIN_USER:-admin} WORDPRESS_ADMIN_PASSWORD: ${WORDPRESS_ADMIN_PASSWORD:-admin123} WORDPRESS_ADMIN_EMAIL: ${WORDPRESS_ADMIN_EMAIL:-admin@example.com} volumes: - bedrock_wp_content:/app/web/app/uploads - bedrock_wp_themes:/app/web/app/themes - bedrock_wp_plugins:/app/web/app/plugins depends_on: bedrock-db: condition: service_healthy networks: - wordpress-mcp-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080"] timeout: 10s retries: 5 interval: 30s start_period: 60s # WordPress MCP Server (stdio mode for Claude Desktop) wordpress-mcp-server: build: . container_name: wordpress-mcp-server restart: unless-stopped environment: WORDPRESS_URL: http://bedrock:8080 WORDPRESS_USERNAME: ${WORDPRESS_ADMIN_USER:-admin} WORDPRESS_PASSWORD: ${WORDPRESS_ADMIN_PASSWORD:-admin123} MCP_SERVER_PORT: 9001 MCP_SERVER_MODE: stdio LOG_LEVEL: ${LOG_LEVEL:-INFO} volumes: - mcp_server_logs:/app/logs depends_on: bedrock: condition: service_healthy networks: - wordpress-mcp-network command: > wordpress-mcp-server --wordpress-url http://bedrock:8080 --username ${WORDPRESS_ADMIN_USER:-admin} --password ${WORDPRESS_ADMIN_PASSWORD:-admin123} --mcp-port 9001 --mode stdio --log-level ${LOG_LEVEL:-INFO} # WordPress MCP Server (HTTP mode for remote access) - Optional wordpress-mcp-server-http: build: . container_name: wordpress-mcp-server-http restart: unless-stopped ports: - "9001:9001" # MCP server HTTP endpoint environment: WORDPRESS_URL: http://bedrock:8080 WORDPRESS_USERNAME: ${WORDPRESS_ADMIN_USER:-admin} WORDPRESS_PASSWORD: ${WORDPRESS_ADMIN_PASSWORD:-admin123} MCP_SERVER_PORT: 9001 MCP_SERVER_MODE: http LOG_LEVEL: ${LOG_LEVEL:-INFO} volumes: - mcp_server_logs:/app/logs depends_on: bedrock: condition: service_healthy networks: - wordpress-mcp-network command: > wordpress-mcp-server --wordpress-url http://bedrock:8080 --username ${WORDPRESS_ADMIN_USER:-admin} --password ${WORDPRESS_ADMIN_PASSWORD:-admin123} --mcp-port 9001 --mode http --host 0.0.0.0 --log-level ${LOG_LEVEL:-INFO} healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9001/health"] timeout: 10s retries: 3 interval: 30s start_period: 30s profiles: - http # Only start with --profile http # Nginx Reverse Proxy (Optional - for production) nginx: image: nginx:alpine container_name: wordpress-mcp-nginx restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/ssl:/etc/nginx/ssl:ro - nginx_logs:/var/log/nginx depends_on: - bedrock networks: - wordpress-mcp-network profiles: - production # Only start with --profile production # Volumes for data persistence volumes: bedrock_db_data: driver: local bedrock_wp_content: driver: local bedrock_wp_themes: driver: local bedrock_wp_plugins: driver: local mcp_server_logs: driver: local nginx_logs: driver: local # Networks networks: wordpress-mcp-network: driver: bridge ipam: config: - subnet: 172.20.0.0/16

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/mister-weeden/wordpress-mcp-server'

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