Elastic · Capability

Elastic Cloud API

RESTful API for managing Elastic Cloud hosted deployments. Enables you to perform most operations available in the Elastic Cloud console through API calls, including creating, updating, resizing, and deleting deployments, managing traffic filters, snapshots, and account-level resources.

Run with Naftiko ElasticAPI

What You Can Do

GET
Listdeployments — List deployments
/api/v1/deployments
POST
Createdeployment — Create a deployment
/api/v1/deployments
GET
Getdeployment — Get a deployment
/api/v1/deployments/{deployment_id}
DELETE
Deletedeployment — Delete a deployment
/api/v1/deployments/{deployment_id}
GET
Listtrafficfilterrulesets — List traffic filter rulesets
/api/v1/deployments/traffic-filter/rulesets
GET
Getaccount — Get account information
/api/v1/account

MCP Tools

listdeployments

List deployments

read-only idempotent
createdeployment

Create a deployment

getdeployment

Get a deployment

read-only idempotent
deletedeployment

Delete a deployment

idempotent
listtrafficfilterrulesets

List traffic filter rulesets

read-only idempotent
getaccount

Get account information

read-only idempotent

Capability Spec

elastic-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Elastic Cloud API
  description: RESTful API for managing Elastic Cloud hosted deployments. Enables you to perform most operations available
    in the Elastic Cloud console through API calls, including creating, updating, resizing, and deleting deployments, managing
    traffic filters, snapshots, and account-level resources.
  tags:
  - Elastic
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: elastic
    baseUri: https://api.elastic-cloud.com
    description: Elastic Cloud API HTTP API.
    authentication:
      type: apikey
      in: header
      name: Authorization
      value: '{{ELASTIC_TOKEN}}'
    resources:
    - name: api-v1-deployments
      path: /api/v1/deployments
      operations:
      - name: listdeployments
        method: GET
        description: List deployments
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createdeployment
        method: POST
        description: Create a deployment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-deployments-deployment-id
      path: /api/v1/deployments/{deployment_id}
      operations:
      - name: getdeployment
        method: GET
        description: Get a deployment
        inputParameters:
        - name: deployment_id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletedeployment
        method: DELETE
        description: Delete a deployment
        inputParameters:
        - name: deployment_id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-deployments-traffic-filter-rulesets
      path: /api/v1/deployments/traffic-filter/rulesets
      operations:
      - name: listtrafficfilterrulesets
        method: GET
        description: List traffic filter rulesets
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-account
      path: /api/v1/account
      operations:
      - name: getaccount
        method: GET
        description: Get account information
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: elastic-rest
    description: REST adapter for Elastic Cloud API.
    resources:
    - path: /api/v1/deployments
      name: listdeployments
      operations:
      - method: GET
        name: listdeployments
        description: List deployments
        call: elastic.listdeployments
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/v1/deployments
      name: createdeployment
      operations:
      - method: POST
        name: createdeployment
        description: Create a deployment
        call: elastic.createdeployment
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/v1/deployments/{deployment_id}
      name: getdeployment
      operations:
      - method: GET
        name: getdeployment
        description: Get a deployment
        call: elastic.getdeployment
        with:
          deployment_id: rest.deployment_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/v1/deployments/{deployment_id}
      name: deletedeployment
      operations:
      - method: DELETE
        name: deletedeployment
        description: Delete a deployment
        call: elastic.deletedeployment
        with:
          deployment_id: rest.deployment_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/v1/deployments/traffic-filter/rulesets
      name: listtrafficfilterrulesets
      operations:
      - method: GET
        name: listtrafficfilterrulesets
        description: List traffic filter rulesets
        call: elastic.listtrafficfilterrulesets
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/v1/account
      name: getaccount
      operations:
      - method: GET
        name: getaccount
        description: Get account information
        call: elastic.getaccount
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: elastic-mcp
    transport: http
    description: MCP adapter for Elastic Cloud API for AI agent use.
    tools:
    - name: listdeployments
      description: List deployments
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: elastic.listdeployments
      outputParameters:
      - type: object
        mapping: $.
    - name: createdeployment
      description: Create a deployment
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: elastic.createdeployment
      outputParameters:
      - type: object
        mapping: $.
    - name: getdeployment
      description: Get a deployment
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: elastic.getdeployment
      with:
        deployment_id: tools.deployment_id
      inputParameters:
      - name: deployment_id
        type: string
        description: deployment_id
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletedeployment
      description: Delete a deployment
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: elastic.deletedeployment
      with:
        deployment_id: tools.deployment_id
      inputParameters:
      - name: deployment_id
        type: string
        description: deployment_id
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listtrafficfilterrulesets
      description: List traffic filter rulesets
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: elastic.listtrafficfilterrulesets
      outputParameters:
      - type: object
        mapping: $.
    - name: getaccount
      description: Get account information
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: elastic.getaccount
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    ELASTIC_TOKEN: ELASTIC_TOKEN