Rackspace Technology · Capability

Rackspace Cloud Account Operations

Unified workflow for Rackspace cloud account operators: authenticate with Cloud Identity, look up the customer account (RCN) and contacts, and manage DNS zones and records under the tenant. Combines Cloud Identity, Customer Service, and Cloud DNS into a single REST and MCP surface used by managed-cloud operators and platform admins.

Run with Naftiko RackspaceCloudIdentityAccountDNS

What You Can Do

POST
Create session — Authenticate and obtain a service token.
/v1/sessions
GET
List users — List identity users.
/v1/users
GET
List customer accounts — List customer accounts the caller can access.
/v1/customer-accounts
GET
Get customer account — Get a customer account by RCN.
/v1/customer-accounts
GET
List contacts — List contacts for a customer account.
/v1/contacts
GET
List dns zones — List DNS zones for the tenant.
/v1/dns-zones
POST
Create dns zones — Create one or more DNS zones.
/v1/dns-zones
GET
Show dns zone — Show DNS zone details.
/v1/dns-zones
DELETE
Delete dns zone — Delete a DNS zone.
/v1/dns-zones
GET
List dns records — List records in a DNS zone.
/v1/dns-records
POST
Add dns records — Add records to a DNS zone.
/v1/dns-records

MCP Tools

authenticate-rackspace

Authenticate to Rackspace Cloud Identity using configured credentials and obtain a service token.

list-customer-accounts

List Rackspace customer accounts (RCNs) accessible to the caller.

read-only
get-customer-account

Get a Rackspace customer account by RCN.

read-only
list-dns-zones

List Rackspace Cloud DNS zones for the configured tenant.

read-only
list-dns-records

List records in a Rackspace Cloud DNS zone.

read-only
add-dns-records

Add DNS records to a Rackspace Cloud DNS zone.

Capability Spec

cloud-account-operations.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Rackspace Cloud Account Operations
  description: 'Unified workflow for Rackspace cloud account operators: authenticate with Cloud Identity, look up the customer
    account (RCN) and contacts, and manage DNS zones and records under the tenant. Combines Cloud Identity, Customer Service,
    and Cloud DNS into a single REST and MCP surface used by managed-cloud operators and platform admins.'
  tags:
  - Rackspace
  - Cloud
  - Identity
  - Account
  - DNS
  created: '2026-05-05'
  modified: '2026-05-06'
binds:
- namespace: env
  keys:
    RACKSPACE_USERNAME: RACKSPACE_USERNAME
    RACKSPACE_API_KEY: RACKSPACE_API_KEY
    RACKSPACE_AUTH_TOKEN: RACKSPACE_AUTH_TOKEN
    RACKSPACE_ACCOUNT_ID: RACKSPACE_ACCOUNT_ID
capability:
  consumes:
  - type: http
    namespace: cloud-identity
    baseUri: https://identity.api.rackspacecloud.com
    description: Rackspace Cloud Identity v2.0 API.
    authentication:
      type: header
      header: X-Auth-Token
      value: '{{env.RACKSPACE_AUTH_TOKEN}}'
    resources:
    - name: tokens
      path: /v2.0/tokens
      description: Authentication tokens.
      operations:
      - name: authenticate
        method: POST
        description: Authenticate with username and API key, return a service token.
        body:
          type: json
          data:
            auth:
              RAX-KSKEY:apiKeyCredentials:
                username: '{{env.RACKSPACE_USERNAME}}'
                apiKey: '{{env.RACKSPACE_API_KEY}}'
        outputRawFormat: json
        outputParameters:
        - name: token
          type: string
          value: $.access.token.id
        - name: serviceCatalog
          type: array
          value: $.access.serviceCatalog
      - name: validate-token
        method: GET
        description: Validate a token and return associated user/roles.
        inputParameters:
        - name: tokenId
          in: path
          type: string
          required: true
          description: Token to validate.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users
      path: /v2.0/users
      description: Identity users.
      operations:
      - name: list-users
        method: GET
        description: List users accessible to the caller.
        outputRawFormat: json
        outputParameters:
        - name: users
          type: array
          value: $.users
      - name: get-user
        method: GET
        description: Get a user by ID.
        inputParameters:
        - name: userId
          in: path
          type: string
          required: true
          description: User identifier.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.user
    - name: roles
      path: /v2.0/users/{userId}/roles
      description: Role assignments for a user.
      operations:
      - name: list-user-roles
        method: GET
        description: List global roles assigned to a user.
        inputParameters:
        - name: userId
          in: path
          type: string
          required: true
          description: User identifier.
        outputRawFormat: json
        outputParameters:
        - name: roles
          type: array
          value: $.roles
  - type: http
    namespace: customer-service
    baseUri: https://accounts.api.rackspacecloud.com
    description: Rackspace Customer Service v1 API.
    authentication:
      type: header
      header: X-Auth-Token
      value: '{{env.RACKSPACE_AUTH_TOKEN}}'
    resources:
    - name: customer-accounts
      path: /v1/customer_accounts
      description: Customer accounts the caller can access.
      operations:
      - name: list-customer-accounts
        method: GET
        description: List customer accounts accessible to the caller.
        outputRawFormat: json
        outputParameters:
        - name: accounts
          type: array
          value: $.customer_accounts
      - name: get-customer-account
        method: GET
        description: Get a customer account by RCN.
        inputParameters:
        - name: rcn
          in: path
          type: string
          required: true
          description: Rackspace Customer Number.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: contacts
      path: /v1/customer_accounts/{rcn}/contacts
      description: Contacts associated with a customer account.
      operations:
      - name: list-contacts
        method: GET
        description: List contacts for a customer account.
        inputParameters:
        - name: rcn
          in: path
          type: string
          required: true
          description: Rackspace Customer Number.
        outputRawFormat: json
        outputParameters:
        - name: contacts
          type: array
          value: $.contacts
  - type: http
    namespace: cloud-dns
    baseUri: https://dns.api.rackspacecloud.com/v1.0
    description: Rackspace Cloud DNS API v1.0.
    authentication:
      type: header
      header: X-Auth-Token
      value: '{{env.RACKSPACE_AUTH_TOKEN}}'
    resources:
    - name: domains
      path: /{accountId}/domains
      description: DNS zones.
      operations:
      - name: list-domains
        method: GET
        description: List all DNS domains for the account.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
          description: Tenant ID.
        - name: limit
          in: query
          type: integer
          required: false
          description: Maximum results (<=100).
        - name: offset
          in: query
          type: integer
          required: false
          description: Pagination offset.
        - name: name
          in: query
          type: string
          required: false
          description: Filter by name.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: create-domains
        method: POST
        description: Create one or more DNS domains.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
          description: Tenant ID.
        body:
          type: json
          data:
            domains: '{{tools.domains}}'
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: show-domain
        method: GET
        description: Get details for a single DNS domain.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
          description: Tenant ID.
        - name: domainId
          in: path
          type: string
          required: true
          description: Domain ID.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: delete-domain
        method: DELETE
        description: Delete a DNS domain.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
          description: Tenant ID.
        - name: domainId
          in: path
          type: string
          required: true
          description: Domain ID.
        - name: deleteSubdomains
          in: query
          type: boolean
          required: false
          description: Also delete subdomains.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: records
      path: /{accountId}/domains/{domainId}/records
      description: DNS records within a domain.
      operations:
      - name: list-records
        method: GET
        description: List DNS records for a domain.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
          description: Tenant ID.
        - name: domainId
          in: path
          type: string
          required: true
          description: Domain ID.
        - name: type
          in: query
          type: string
          required: false
          description: Record type filter.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: add-records
        method: POST
        description: Add DNS records to a domain.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
          description: Tenant ID.
        - name: domainId
          in: path
          type: string
          required: true
          description: Domain ID.
        body:
          type: json
          data:
            records: '{{tools.records}}'
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8081
    namespace: cloud-account-operations-api
    description: Unified REST API for Rackspace cloud account operations.
    resources:
    - path: /v1/sessions
      name: sessions
      description: Authentication sessions.
      operations:
      - method: POST
        name: create-session
        description: Authenticate and obtain a service token.
        call: cloud-identity.authenticate
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users
      name: users
      description: Identity user lookups.
      operations:
      - method: GET
        name: list-users
        description: List identity users.
        call: cloud-identity.list-users
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/customer-accounts
      name: customer-accounts
      description: Customer account lookups.
      operations:
      - method: GET
        name: list-customer-accounts
        description: List customer accounts the caller can access.
        call: customer-service.list-customer-accounts
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: get-customer-account
        description: Get a customer account by RCN.
        call: customer-service.get-customer-account
        with:
          rcn: rest.rcn
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/contacts
      name: contacts
      description: Customer contact lookups.
      operations:
      - method: GET
        name: list-contacts
        description: List contacts for a customer account.
        call: customer-service.list-contacts
        with:
          rcn: rest.rcn
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/dns-zones
      name: dns-zones
      description: DNS zones (domains) under the tenant.
      operations:
      - method: GET
        name: list-dns-zones
        description: List DNS zones for the tenant.
        call: cloud-dns.list-domains
        with:
          accountId: '{{env.RACKSPACE_ACCOUNT_ID}}'
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: create-dns-zones
        description: Create one or more DNS zones.
        call: cloud-dns.create-domains
        with:
          accountId: '{{env.RACKSPACE_ACCOUNT_ID}}'
          domains: rest.domains
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: show-dns-zone
        description: Show DNS zone details.
        call: cloud-dns.show-domain
        with:
          accountId: '{{env.RACKSPACE_ACCOUNT_ID}}'
          domainId: rest.domainId
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: delete-dns-zone
        description: Delete a DNS zone.
        call: cloud-dns.delete-domain
        with:
          accountId: '{{env.RACKSPACE_ACCOUNT_ID}}'
          domainId: rest.domainId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/dns-records
      name: dns-records
      description: DNS records within a zone.
      operations:
      - method: GET
        name: list-dns-records
        description: List records in a DNS zone.
        call: cloud-dns.list-records
        with:
          accountId: '{{env.RACKSPACE_ACCOUNT_ID}}'
          domainId: rest.domainId
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: add-dns-records
        description: Add records to a DNS zone.
        call: cloud-dns.add-records
        with:
          accountId: '{{env.RACKSPACE_ACCOUNT_ID}}'
          domainId: rest.domainId
          records: rest.records
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 8082
    namespace: cloud-account-operations-mcp
    transport: http
    description: MCP server for AI-assisted Rackspace cloud account operations.
    tools:
    - name: authenticate-rackspace
      description: Authenticate to Rackspace Cloud Identity using configured credentials and obtain a service token.
      hints:
        readOnly: false
        openWorld: true
      call: cloud-identity.authenticate
      outputParameters:
      - type: object
        mapping: $.
    - name: list-customer-accounts
      description: List Rackspace customer accounts (RCNs) accessible to the caller.
      hints:
        readOnly: true
        openWorld: true
      call: customer-service.list-customer-accounts
      outputParameters:
      - type: object
        mapping: $.
    - name: get-customer-account
      description: Get a Rackspace customer account by RCN.
      hints:
        readOnly: true
        openWorld: true
      call: customer-service.get-customer-account
      with:
        rcn: tools.rcn
      outputParameters:
      - type: object
        mapping: $.
    - name: list-dns-zones
      description: List Rackspace Cloud DNS zones for the configured tenant.
      hints:
        readOnly: true
        openWorld: true
      call: cloud-dns.list-domains
      with:
        accountId: '{{env.RACKSPACE_ACCOUNT_ID}}'
      outputParameters:
      - type: object
        mapping: $.
    - name: list-dns-records
      description: List records in a Rackspace Cloud DNS zone.
      hints:
        readOnly: true
        openWorld: true
      call: cloud-dns.list-records
      with:
        accountId: '{{env.RACKSPACE_ACCOUNT_ID}}'
        domainId: tools.domainId
      outputParameters:
      - type: object
        mapping: $.
    - name: add-dns-records
      description: Add DNS records to a Rackspace Cloud DNS zone.
      hints:
        readOnly: false
        openWorld: true
      call: cloud-dns.add-records
      with:
        accountId: '{{env.RACKSPACE_ACCOUNT_ID}}'
        domainId: tools.domainId
        records: tools.records
      outputParameters:
      - type: object
        mapping: $.