HashiCorp Consul · Capability

HashiCorp Consul HTTP API — KV Store

HashiCorp Consul HTTP API — KV Store. 3 operations. Lead operation: Read a key. Self-contained Naftiko capability covering one Consul business surface.

Run with Naftiko ConsulKV Store

What You Can Do

GET
Getkvkey — Read a key
/v1/kv/{key}
PUT
Putkvkey — Create or update a key
/v1/kv/{key}
DELETE
Deletekvkey — Delete a key
/v1/kv/{key}

MCP Tools

read-key

Read a key

read-only idempotent
create-update-key

Create or update a key

idempotent
delete-key

Delete a key

idempotent

Capability Spec

http-kv-store.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: HashiCorp Consul HTTP API — KV Store
  description: 'HashiCorp Consul HTTP API — KV Store. 3 operations. Lead operation: Read a key. Self-contained Naftiko capability
    covering one Consul business surface.'
  tags:
  - Consul
  - KV Store
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    CONSUL_API_KEY: CONSUL_API_KEY
capability:
  consumes:
  - type: http
    namespace: http-kv-store
    baseUri: http://localhost:8500/v1
    description: HashiCorp Consul HTTP API — KV Store business capability. Self-contained, no shared references.
    resources:
    - name: kv-key
      path: /kv/{key}
      operations:
      - name: getkvkey
        method: GET
        description: Read a key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: key
          in: path
          type: string
          required: true
        - name: recurse
          in: query
          type: boolean
          description: Return all keys with the given prefix
        - name: raw
          in: query
          type: boolean
          description: Return raw value without JSON encoding
        - name: keys
          in: query
          type: boolean
          description: Return only keys (no values)
        - name: separator
          in: query
          type: string
          description: List keys up to a given separator
      - name: putkvkey
        method: PUT
        description: Create or update a key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: key
          in: path
          type: string
          required: true
        - name: flags
          in: query
          type: integer
          description: Unsigned value between 0 and 2^64-1
        - name: cas
          in: query
          type: integer
          description: Check-And-Set index for optimistic locking
        - name: acquire
          in: query
          type: string
          description: Session ID to acquire a lock
        - name: release
          in: query
          type: string
          description: Session ID to release a lock
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: deletekvkey
        method: DELETE
        description: Delete a key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: key
          in: path
          type: string
          required: true
        - name: recurse
          in: query
          type: boolean
        - 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-kv-store-rest
    port: 8080
    description: REST adapter for HashiCorp Consul HTTP API — KV Store. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/kv/{key}
      name: kv-key
      description: REST surface for kv-key.
      operations:
      - method: GET
        name: getkvkey
        description: Read a key
        call: http-kv-store.getkvkey
        with:
          key: rest.key
          recurse: rest.recurse
          raw: rest.raw
          keys: rest.keys
          separator: rest.separator
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: putkvkey
        description: Create or update a key
        call: http-kv-store.putkvkey
        with:
          key: rest.key
          flags: rest.flags
          cas: rest.cas
          acquire: rest.acquire
          release: rest.release
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletekvkey
        description: Delete a key
        call: http-kv-store.deletekvkey
        with:
          key: rest.key
          recurse: rest.recurse
          cas: rest.cas
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: http-kv-store-mcp
    port: 9090
    transport: http
    description: MCP adapter for HashiCorp Consul HTTP API — KV Store. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: read-key
      description: Read a key
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: http-kv-store.getkvkey
      with:
        key: tools.key
        recurse: tools.recurse
        raw: tools.raw
        keys: tools.keys
        separator: tools.separator
      outputParameters:
      - type: object
        mapping: $.
    - name: create-update-key
      description: Create or update a key
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: http-kv-store.putkvkey
      with:
        key: tools.key
        flags: tools.flags
        cas: tools.cas
        acquire: tools.acquire
        release: tools.release
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-key
      description: Delete a key
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: http-kv-store.deletekvkey
      with:
        key: tools.key
        recurse: tools.recurse
        cas: tools.cas
      outputParameters:
      - type: object
        mapping: $.