HashiCorp Consul · Capability

HashiCorp Consul HTTP API — Config Entries

HashiCorp Consul HTTP API — Config Entries. 4 operations. Lead operation: Apply a config entry. Self-contained Naftiko capability covering one Consul business surface.

Run with Naftiko ConsulConfig Entries

What You Can Do

PUT
Applyconfigentry — Apply a config entry
/v1/config
GET
Listconfigentries — List config entries by kind
/v1/config/{kind}
GET
Getconfigentry — Get a config entry
/v1/config/{kind}/{name}
DELETE
Deleteconfigentry — Delete a config entry
/v1/config/{kind}/{name}

MCP Tools

apply-config-entry

Apply a config entry

idempotent
list-config-entries-kind

List config entries by kind

read-only idempotent
get-config-entry

Get a config entry

read-only idempotent
delete-config-entry

Delete a config entry

idempotent

Capability Spec

http-config-entries.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: HashiCorp Consul HTTP API — Config Entries
  description: 'HashiCorp Consul HTTP API — Config Entries. 4 operations. Lead operation: Apply a config entry. Self-contained
    Naftiko capability covering one Consul business surface.'
  tags:
  - Consul
  - Config Entries
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    CONSUL_API_KEY: CONSUL_API_KEY
capability:
  consumes:
  - type: http
    namespace: http-config-entries
    baseUri: http://localhost:8500/v1
    description: HashiCorp Consul HTTP API — Config Entries business capability. Self-contained, no shared references.
    resources:
    - name: config
      path: /config
      operations:
      - name: applyconfigentry
        method: PUT
        description: Apply a config entry
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: cas
          in: query
          type: integer
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: config-kind
      path: /config/{kind}
      operations:
      - name: listconfigentries
        method: GET
        description: List config entries by kind
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: kind
          in: path
          type: string
          required: true
    - name: config-kind-name
      path: /config/{kind}/{name}
      operations:
      - name: getconfigentry
        method: GET
        description: Get a config entry
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: kind
          in: path
          type: string
          required: true
        - name: name
          in: path
          type: string
          required: true
      - name: deleteconfigentry
        method: DELETE
        description: Delete a config entry
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: kind
          in: path
          type: string
          required: true
        - name: name
          in: path
          type: string
          required: true
        - name: cas
          in: query
          type: integer
    authentication:
      type: apikey
      key: X-Consul-Token
      value: '{{env.CONSUL_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: http-config-entries-rest
    port: 8080
    description: REST adapter for HashiCorp Consul HTTP API — Config Entries. One Spectral-compliant resource per consumed
      operation, prefixed with /v1.
    resources:
    - path: /v1/config
      name: config
      description: REST surface for config.
      operations:
      - method: PUT
        name: applyconfigentry
        description: Apply a config entry
        call: http-config-entries.applyconfigentry
        with:
          cas: rest.cas
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/config/{kind}
      name: config-kind
      description: REST surface for config-kind.
      operations:
      - method: GET
        name: listconfigentries
        description: List config entries by kind
        call: http-config-entries.listconfigentries
        with:
          kind: rest.kind
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/config/{kind}/{name}
      name: config-kind-name
      description: REST surface for config-kind-name.
      operations:
      - method: GET
        name: getconfigentry
        description: Get a config entry
        call: http-config-entries.getconfigentry
        with:
          kind: rest.kind
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteconfigentry
        description: Delete a config entry
        call: http-config-entries.deleteconfigentry
        with:
          kind: rest.kind
          name: rest.name
          cas: rest.cas
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: http-config-entries-mcp
    port: 9090
    transport: http
    description: MCP adapter for HashiCorp Consul HTTP API — Config Entries. One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: apply-config-entry
      description: Apply a config entry
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: http-config-entries.applyconfigentry
      with:
        cas: tools.cas
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-config-entries-kind
      description: List config entries by kind
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: http-config-entries.listconfigentries
      with:
        kind: tools.kind
      outputParameters:
      - type: object
        mapping: $.
    - name: get-config-entry
      description: Get a config entry
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: http-config-entries.getconfigentry
      with:
        kind: tools.kind
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-config-entry
      description: Delete a config entry
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: http-config-entries.deleteconfigentry
      with:
        kind: tools.kind
        name: tools.name
        cas: tools.cas
      outputParameters:
      - type: object
        mapping: $.