{"id":"linuxserver-ddclient","name":"ddclient","homepage":"https://hub.docker.com/r/linuxserver/ddclient","repo_url":"https://hub.docker.com/r/linuxserver/ddclient","category":"infrastructure","subcategories":[],"tags":["dns","ddns","networking","automation","self-hosted","dynamic-dns"],"what_it_does":"ddclient is a client for Dynamic DNS (DDNS). It automates updating DNS records by periodically contacting a Dynamic DNS provider’s update endpoints using configured credentials and host parameters, typically over HTTP.","use_cases":["Keeping DNS records current for a residential or small-office IP address","Automating DDNS updates when an IP changes (home labs, VPN endpoints, remote access)","Managing multiple DDNS hostnames/accounts from a single configuration","Lightweight DDNS updates on servers where router DDNS is insufficient"],"not_for":["High-scale DNS-as-a-service use cases (many records/tenants with strict SLAs)","Environments requiring a modern HTTP API with JSON webhooks and OAuth flows","Security-sensitive deployments needing fine-grained API scopes and centralized key management by default"],"best_when":"You need simple, automated DDNS updates and can provide provider credentials in the expected configuration format.","avoid_when":"You need strong, modern API-based auth primitives (OAuth scopes), or you require documented idempotency/retry semantics for API operations.","alternatives":["Self-hosted DDNS providers (e.g., DNS providers with native APIs)","Cloudflare API + scripts","Route53/ddns implementations from cloud SDKs","CoreDNS/ExternalDNS with supported DNS providers"],"af_score":28.0,"security_score":39.8,"reliability_score":35.0,"package_type":"mcp_server","discovery_source":["docker_mcp"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T13:38:37.691229+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":false,"mcp_server_url":null,"has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["Provider-specific credentials in ddclient configuration (e.g., username/password or tokens depending on provider support)"],"oauth":false,"scopes":false,"notes":"Auth is handled through ddclient’s provider configuration rather than modern standards like OAuth scopes; scope granularity and rotation mechanisms are provider/config dependent."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"ddclient itself is typically used as open-source software; costs depend on the chosen Dynamic DNS provider plan (not determined from the provided information)."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":28.0,"security_score":39.8,"reliability_score":35.0,"mcp_server_quality":0.0,"documentation_accuracy":20.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":55.0,"rate_limit_clarity":10.0,"tls_enforcement":60.0,"auth_strength":45.0,"scope_granularity":10.0,"dependency_hygiene":50.0,"secret_handling":35.0,"security_notes":"ddclient relies on contacting DDNS provider endpoints and storing provider credentials in configuration. Without evidence of built-in secret vault integration, scoped tokens, or robust logging redaction, secret handling and scope granularity are assessed conservatively. TLS usage is likely but provider-implementation-dependent; enforce HTTPS where supported.","uptime_documented":0.0,"version_stability":50.0,"breaking_changes_history":50.0,"error_recovery":40.0,"idempotency_support":"false","idempotency_notes":null,"pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["Authentication and update behavior are provider-specific; an agent may need to model the exact ddclient configuration and provider quirks rather than a single uniform API.","ddclient is typically configured and run as a daemon; it is not designed as an agent-callable HTTP API, so agent integration is indirect (config generation + process management)."]}}