Dome Systems

Report Cloud Spend

Report cloud-spend signals and potential drivers from read-only operational data.

User
Caller
  • chat
App
Agent
  • report-cloud-spend-analyst
Governance
Gateway
  • report-cloud-spend-readonly
Pool

report-cloud-spend-pool

  • report-cloud-spend-model
Tools

digitalocean

    Tools

    neon

      Tools

      supabase

        Tools

        netlify

          Tools

          datadog

            Tools

            sentry

              What this template gives you

              • Interface

                A chat window, in your browser

                Use the included interface to send a request to this template.

              • Gateway

                report-cloud-spend-readonly gateway

                This template sends its requests through report-cloud-spend-readonly gateway, where its access rules and limits apply.

              • Model

                report-cloud-spend-model

                This template uses report-cloud-spend-model through the report-cloud-spend-pool pool.

              Usage

              Hand this template to an AI agent to set up this template

              Node.js and npm to run npx.

              Dome CLI, installed with brew install dome-systems/tap/dome, then signed in with dome auth login.

              Docker Compose to run the companion app locally.

              1. 1

                Create a workspace

                dome workspaces create --name <workspace-name>

                The CLI creates and selects a workspace context for you.

              2. 2

                Confirm the workspace context

                dome context list

                The workspace you just created is already selected.

              3. 3

                Pull the template

                npx @domesystems/templates pull dome-systems/report-cloud-spend@0.1.1 --dir report-cloud-spend

                Downloads this immutable release and verifies its digest.

              4. 4

                Run the template

                npx @domesystems/templates up --dir report-cloud-spend

                Imports it into Dome and starts the companion app.

              Dome import variables

              npx @domesystems/templates up imports the template into Dome and prompts for required values. For unattended runs, set them as DOME_IMPORT_VAR_… environment variables.

              Required values

              • DOME_IMPORT_VAR_anthropic_api_key
              • DOME_IMPORT_VAR_digitalocean_bearer_token
              • DOME_IMPORT_VAR_neon_bearer_token

              Setup guide

              Follow this template's setup guidance for agent variables and upstream connections.

              # Set up Report Cloud Spend
              
              This is a read-only composite, but it needs a model credential and every listed data source configured before it can run. Set up isolated test accounts or workspaces first, grant only the smallest read scope that exposes the test data, and store every credential only in Dome's secret inputs. Never put a key or secret in this repository, an agent prompt, or a chat message.
              
              ## Create the model credential
              
              - Create an API key in the [Anthropic Console](https://console.anthropic.com/settings/keys).
              - Enter the raw key as `anthropic_api_key` during import. Do not prepend `Bearer `.
              - The template uses that key only for its managed `claude-sonnet-5` model connection.
              
              ## Create the provider credentials
              
              - `digitalocean_bearer_token`: A DigitalOcean Personal Access Token with the `Bearer ` prefix
              - `neon_bearer_token`: A Neon API key
              
              For a provider that asks you to register a manual OAuth app, use this callback URL exactly:
              
              `https://api.domesystems.ai/oauth/callback`
              
              ## Set up each connected provider
              
              ### DigitalOcean
              
              Before import, open [DigitalOcean API tokens](https://cloud.digitalocean.com/account/api/tokens), create a dedicated Personal Access Token for the isolated test account, and copy it once. Select the smallest scope and expiry that can inspect the chosen resources; do not reuse a token that can deploy, scale, restart, or delete infrastructure.
              
              - `digitalocean_bearer_token`: enter `Bearer ` followed by a DigitalOcean Personal Access Token. Use a dedicated token with the smallest permissions needed for the resources this agent will inspect.
              
              The template sends that credential to DigitalOcean's MCP Router and discovers the App Platform tools this agent uses. Keep the token dedicated to this agent and do not use one that can deploy, scale, restart, or delete infrastructure.
              
              ### Neon
              
              - `neon_bearer_token`: enter `Bearer ` followed by a Neon API key for the Neon account or organization the agent will inspect.
              
              This composite uses Neon API-key authentication rather than OAuth, so it does not open a browser or require a callback URL. Create a dedicated Neon API key with only the access needed for the test account, then store it in Dome with the `Bearer ` prefix. Neon documents this API-key connection method in its [MCP client guide](https://neon.com/docs/ai/connect-mcp-clients-to-neon).
              
              The MCP URL is pinned to read-only mode; do not remove that restriction in this composite. The agent's instructions also prohibit project, branch, schema, role, data, and compute changes.
              
              ### Supabase
              
              This provider uses Dynamic Client Registration (DCR). Do **not** create or paste an OAuth client ID or client secret: after import, Dome registers the client and opens the provider's consent page.
              
              This composite uses the hosted Supabase MCP server's browser OAuth flow with
              Dynamic Client Registration. It does **not** need a Supabase OAuth client ID,
              client secret, or manually registered callback URL.
              
              - Import the template, then select **Connect** on the Supabase tool connection.
              - Sign in with a least-privileged user that can access only an isolated,
                non-production test project.
              - Confirm that the authorization is for the intended project before accepting
                the browser consent screen.
              - The authorization requests read-only organization, project, database,
                analytics, Edge Function, environment, and Storage access. It does not
                request `secrets:read` or any write scope.
              - Refresh the tool catalog after the connection succeeds, then run one
                read-only test against known non-production data.
              
              The endpoint includes `read_only=true`; do not connect sensitive production
              data without a separate review. The upstream server's available tools and
              project access are still determined by the authorized Supabase identity.
              
              ### Netlify
              
              This provider uses Dynamic Client Registration (DCR). Do **not** create or paste an OAuth client ID or client secret: after import, Dome registers the client and opens the provider's consent page.
              
              After saving, authorize a test user restricted to the intended team and non-production sites. Do not use an identity allowed to modify deploys, environment variables, domains, or site configuration.
              
              ### Datadog
              
              This provider uses Dynamic Client Registration (DCR). Do **not** create or paste an OAuth client ID or client secret: after import, Dome registers the client and opens the provider's consent page.
              
              Before starting OAuth, a Datadog organization administrator must open
              **Organization Settings → MCP OAuth Redirect URLs** and add this exact URL:
              
              `https://api.domesystems.ai/oauth/callback`
              
              Datadog rejects the consent flow with **Mismatching redirect URI** until that
              allowlist entry exists. Dome uses Dynamic Client Registration, so no separate
              Datadog OAuth client or client secret is needed. Dome requests Datadog's
              published `mcp_all` scope during consent.
              
              Before connecting, an organization administrator must also enable **MCP Access**
              in Datadog. The authorizing test user needs **MCP Read** and the underlying
              resource permissions (for example, Monitors Read); custom roles need those
              permissions added explicitly. This composite starts with Datadog's generally
              available `core` toolset. Add the Preview `apm` toolset only after obtaining
              Datadog's APM Preview access.
              
              
              After saving, complete OAuth with a test user that has read access only to the selected services, logs, and dashboards. This composite targets US1 and uses the `core` toolset.
              
              ### Sentry
              
              This provider uses Dynamic Client Registration (DCR). Do **not** create or paste an OAuth client ID or client secret: after import, Dome registers the client and opens the provider's consent page.
              
              After saving, complete OAuth with a test user that can view only the target organization and projects. Use project-scoped Sentry access wherever available.
              
              ## Import and verify
              
              1. Import the template and provide the values above.
              2. Complete every browser OAuth flow with the intended dedicated test user. Token-based sources do not open a browser.
              3. Open **Tools**, refresh discovery, and confirm every connection is attached to the template gateway.
              4. Run the managed agent against known test data. Treat the template as verified only when the run succeeds **and calls at least one expected read-only tool**.
              
              If a connection is unreachable, check the provider section above for its callback, API/MCP enablement, token prefix, consent scopes, and user/workspace access before retrying.

              Runtime environment

              These variables are required to run the agent. During pull, .env.example is copied to .env when available. If they’re missing, npx @domesystems/templates up retrieves them from Dome and saves them in .env. Pass --provision to refresh them.

              DOME_TOKEN=
              DOME_GATEWAY_URL=

              Agent instructions

              You are Report Cloud Spend, a read-only assistant. Report cloud-spend signals and potential drivers from read-only operational data.
              
              Use connected tools only to retrieve information. Do not invoke tools that create, update, delete, send, approve, or change upstream state, even if a provider exposes them. Produce a clear answer with source-specific evidence, confidence, assumptions, and recommended human next steps. When an action is needed, draft or recommend it for a person to perform; do not perform it.