BrewPage · Capability
BrewPage API — KV
BrewPage API — KV. 7 operations. Lead operation: BrewPage List KV Stores. Self-contained Naftiko capability covering one Brewpage business surface.
What You Can Do
GET
Liststores
— BrewPage List KV Stores
/v1/api/kv
POST
Createstore
— BrewPage Create KV Store
/v1/api/kv
GET
Listkeys
— BrewPage List Keys
/v1/api/kv/{ns}/{id}
DELETE
Deletebucket
— BrewPage Delete Entire KV Bucket (all Keys Under Ns/id)
/v1/api/kv/{ns}/{id}
GET
Getkey
— BrewPage Get Key Value
/v1/api/kv/{ns}/{id}/{key}
PUT
Upsertkey
— BrewPage Upsert Key
/v1/api/kv/{ns}/{id}/{key}
DELETE
Deletekey
— BrewPage Delete Key
/v1/api/kv/{ns}/{id}/{key}
MCP Tools
brewpage-list-kv-stores
BrewPage List KV Stores
read-only
idempotent
brewpage-create-kv-store
BrewPage Create KV Store
brewpage-list-keys
BrewPage List Keys
read-only
idempotent
brewpage-delete-entire-kv-bucket
BrewPage Delete Entire KV Bucket (all Keys Under Ns/id)
idempotent
brewpage-get-key-value
BrewPage Get Key Value
read-only
idempotent
brewpage-upsert-key
BrewPage Upsert Key
idempotent
brewpage-delete-key
BrewPage Delete Key
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: BrewPage API — KV
description: 'BrewPage API — KV. 7 operations. Lead operation: BrewPage List KV Stores. Self-contained Naftiko capability
covering one Brewpage business surface.'
tags:
- Brewpage
- KV
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
BREWPAGE_API_KEY: BREWPAGE_API_KEY
capability:
consumes:
- type: http
namespace: brewpage-kv
baseUri: https://brewpage.app
description: BrewPage API — KV business capability. Self-contained, no shared references.
resources:
- name: api-kv
path: /api/kv
operations:
- name: liststores
method: GET
description: BrewPage List KV Stores
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: ns
in: query
type: string
description: Namespace
- name: X-Owner-Token
in: header
type: string
description: Owner token to filter by ownership. Without token returns empty list
- name: createstore
method: POST
description: BrewPage Create KV Store
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: ns
in: query
type: string
description: 'Namespace. Default: public. Pages in ''public'' without password appear in gallery. Custom namespace
is created automatically'
- name: tags
in: query
type: string
description: Comma-separated tags
- name: ttl
in: query
type: string
description: Time to live in days (1-30, default 15). Store auto-deletes after expiry. Accepts '15', '15d' or '15
days'
- name: X-Password
in: header
type: string
description: Access password. Empty = public store visible in gallery. With password = hidden from gallery, viewers
must enter password or pass ?p= in URL
- name: X-Owner-Token
in: header
type: string
description: Reuse existing owner token to group entities under one owner. If omitted, a new token is generated
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: api-kv-ns-id
path: /api/kv/{ns}/{id}
operations:
- name: listkeys
method: GET
description: BrewPage List Keys
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: ns
in: path
type: string
required: true
- name: id
in: path
type: string
required: true
- name: X-Password
in: header
type: string
description: Access password via header
- name: p
in: query
type: string
description: Access password via query param (alternative to X-Password header)
- name: User-Agent
in: header
type: string
- name: X-Owner-Token
in: header
type: string
description: Owner token to bypass password protection when no password supplied
- name: deletebucket
method: DELETE
description: BrewPage Delete Entire KV Bucket (all Keys Under Ns/id)
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: ns
in: path
type: string
required: true
- name: id
in: path
type: string
required: true
- name: X-Owner-Token
in: header
type: string
description: Owner token returned at creation. Required for delete
required: true
- name: api-kv-ns-id-key
path: /api/kv/{ns}/{id}/{key}
operations:
- name: getkey
method: GET
description: BrewPage Get Key Value
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: ns
in: path
type: string
required: true
- name: id
in: path
type: string
required: true
- name: key
in: path
type: string
required: true
- name: X-Password
in: header
type: string
description: Access password via header
- name: p
in: query
type: string
description: Access password via query param (alternative to X-Password header)
- name: User-Agent
in: header
type: string
- name: X-Owner-Token
in: header
type: string
description: Owner token to bypass password protection when no password supplied
- name: upsertkey
method: PUT
description: BrewPage Upsert Key
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: ns
in: path
type: string
required: true
- name: id
in: path
type: string
required: true
- name: key
in: path
type: string
required: true
- name: X-Owner-Token
in: header
type: string
description: Owner token returned at creation. Required for update and delete
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deletekey
method: DELETE
description: BrewPage Delete Key
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: ns
in: path
type: string
required: true
- name: id
in: path
type: string
required: true
- name: key
in: path
type: string
required: true
- name: X-Owner-Token
in: header
type: string
description: Owner token returned at creation. Required for update and delete
required: true
exposes:
- type: rest
namespace: brewpage-kv-rest
port: 8080
description: REST adapter for BrewPage API — KV. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/api/kv
name: api-kv
description: REST surface for api-kv.
operations:
- method: GET
name: liststores
description: BrewPage List KV Stores
call: brewpage-kv.liststores
with:
ns: rest.ns
X-Owner-Token: rest.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- method: POST
name: createstore
description: BrewPage Create KV Store
call: brewpage-kv.createstore
with:
ns: rest.ns
tags: rest.tags
ttl: rest.ttl
X-Password: rest.X-Password
X-Owner-Token: rest.X-Owner-Token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/kv/{ns}/{id}
name: api-kv-ns-id
description: REST surface for api-kv-ns-id.
operations:
- method: GET
name: listkeys
description: BrewPage List Keys
call: brewpage-kv.listkeys
with:
ns: rest.ns
id: rest.id
X-Password: rest.X-Password
p: rest.p
User-Agent: rest.User-Agent
X-Owner-Token: rest.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deletebucket
description: BrewPage Delete Entire KV Bucket (all Keys Under Ns/id)
call: brewpage-kv.deletebucket
with:
ns: rest.ns
id: rest.id
X-Owner-Token: rest.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- path: /v1/api/kv/{ns}/{id}/{key}
name: api-kv-ns-id-key
description: REST surface for api-kv-ns-id-key.
operations:
- method: GET
name: getkey
description: BrewPage Get Key Value
call: brewpage-kv.getkey
with:
ns: rest.ns
id: rest.id
key: rest.key
X-Password: rest.X-Password
p: rest.p
User-Agent: rest.User-Agent
X-Owner-Token: rest.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- method: PUT
name: upsertkey
description: BrewPage Upsert Key
call: brewpage-kv.upsertkey
with:
ns: rest.ns
id: rest.id
key: rest.key
X-Owner-Token: rest.X-Owner-Token
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deletekey
description: BrewPage Delete Key
call: brewpage-kv.deletekey
with:
ns: rest.ns
id: rest.id
key: rest.key
X-Owner-Token: rest.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: brewpage-kv-mcp
port: 9090
transport: http
description: MCP adapter for BrewPage API — KV. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: brewpage-list-kv-stores
description: BrewPage List KV Stores
hints:
readOnly: true
destructive: false
idempotent: true
call: brewpage-kv.liststores
with:
ns: tools.ns
X-Owner-Token: tools.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- name: brewpage-create-kv-store
description: BrewPage Create KV Store
hints:
readOnly: false
destructive: false
idempotent: false
call: brewpage-kv.createstore
with:
ns: tools.ns
tags: tools.tags
ttl: tools.ttl
X-Password: tools.X-Password
X-Owner-Token: tools.X-Owner-Token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: brewpage-list-keys
description: BrewPage List Keys
hints:
readOnly: true
destructive: false
idempotent: true
call: brewpage-kv.listkeys
with:
ns: tools.ns
id: tools.id
X-Password: tools.X-Password
p: tools.p
User-Agent: tools.User-Agent
X-Owner-Token: tools.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- name: brewpage-delete-entire-kv-bucket
description: BrewPage Delete Entire KV Bucket (all Keys Under Ns/id)
hints:
readOnly: false
destructive: true
idempotent: true
call: brewpage-kv.deletebucket
with:
ns: tools.ns
id: tools.id
X-Owner-Token: tools.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- name: brewpage-get-key-value
description: BrewPage Get Key Value
hints:
readOnly: true
destructive: false
idempotent: true
call: brewpage-kv.getkey
with:
ns: tools.ns
id: tools.id
key: tools.key
X-Password: tools.X-Password
p: tools.p
User-Agent: tools.User-Agent
X-Owner-Token: tools.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- name: brewpage-upsert-key
description: BrewPage Upsert Key
hints:
readOnly: false
destructive: false
idempotent: true
call: brewpage-kv.upsertkey
with:
ns: tools.ns
id: tools.id
key: tools.key
X-Owner-Token: tools.X-Owner-Token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: brewpage-delete-key
description: BrewPage Delete Key
hints:
readOnly: false
destructive: true
idempotent: true
call: brewpage-kv.deletekey
with:
ns: tools.ns
id: tools.id
key: tools.key
X-Owner-Token: tools.X-Owner-Token
outputParameters:
- type: object
mapping: $.