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.
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
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: $.