Skip to content

No way to manage service domains headlessly (MCP/API); automatic DNS is Cloudflare-only #696

Description

@Yuyz0112

Summary

There is currently no way to manage a web service's domains programmatically:

  • The MCP server has no domain tool (create_service accepts allow_public_networking, but the actual domain record can only be created in the web UI).
  • The REST v1 API doesn't cover domains either.
  • Automatic DNS (Dns::AutoSetupService) only activates with Cloudflare credentials, so self-hosted environments with internal DNS (wildcard records, sslip/nip-style schemes, or corporate DNS) can't use it.

For headless automation — e.g. an internal service that provisions apps for users through Canine's MCP — assigning <app>.<internal-suffix> domains is a required step, and right now it needs either UI interaction or reaching into the Rails internals.

Request

An MCP tool (and/or API endpoint) to set/replace the domains of a web service, e.g. set_service_domain(project_id, service_name, domain_name). We currently inject exactly that as a monkey-patched MCP tool via an initializer and it works well with the existing Domain model + ingress generation — happy to send a PR if you'd take this shape (or a variant that fits your roadmap for domain management).

Somewhat related: is broader API/MCP parity with the UI on your roadmap (ref #636)? We're happy to contribute to the pieces we need for self-hosted automation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions