Ably · Capability
Control API v1 — keys
Control API v1 — keys. 4 operations. Lead operation: Lists app keys. Self-contained Naftiko capability covering one Ably business surface.
What You Can Do
GET
Get
— Lists app keys
/v1/apps/{app-id}/keys
POST
Post
— Creates a key
/v1/apps/{app-id}/keys
PATCH
Patch
— Updates a key
/v1/apps/{app-id}/keys/{key-id}
POST
Post
— Revokes a key
/v1/apps/{app-id}/keys/{key-id}/revoke
MCP Tools
lists-app-keys
Lists app keys
read-only
idempotent
creates-key
Creates a key
updates-key
Updates a key
idempotent
revokes-key
Revokes a key
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Control API v1 — keys
description: 'Control API v1 — keys. 4 operations. Lead operation: Lists app keys. Self-contained Naftiko capability covering
one Ably business surface.'
tags:
- Ably
- keys
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
ABLY_API_KEY: ABLY_API_KEY
capability:
consumes:
- type: http
namespace: control-keys
baseUri: https://control.ably.net/v1
description: Control API v1 — keys business capability. Self-contained, no shared references.
resources:
- name: apps-app_id-keys
path: /apps/{app_id}/keys
operations:
- name: get
method: GET
description: Lists app keys
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: app_id
in: path
type: string
description: The application ID.
required: true
- name: post
method: POST
description: Creates a key
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: app_id
in: path
type: string
description: The application ID.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: apps-app_id-keys-key_id
path: /apps/{app_id}/keys/{key_id}
operations:
- name: patch
method: PATCH
description: Updates a key
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: app_id
in: path
type: string
description: The application ID.
required: true
- name: key_id
in: path
type: string
description: The API key ID.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: apps-app_id-keys-key_id-revoke
path: /apps/{app_id}/keys/{key_id}/revoke
operations:
- name: post
method: POST
description: Revokes a key
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: app_id
in: path
type: string
description: The application ID.
required: true
- name: key_id
in: path
type: string
description: The key ID.
required: true
authentication:
type: bearer
token: '{{env.ABLY_API_KEY}}'
exposes:
- type: rest
namespace: control-keys-rest
port: 8080
description: REST adapter for Control API v1 — keys. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/apps/{app-id}/keys
name: apps-app-id-keys
description: REST surface for apps-app_id-keys.
operations:
- method: GET
name: get
description: Lists app keys
call: control-keys.get
with:
app_id: rest.app_id
outputParameters:
- type: object
mapping: $.
- method: POST
name: post
description: Creates a key
call: control-keys.post
with:
app_id: rest.app_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/apps/{app-id}/keys/{key-id}
name: apps-app-id-keys-key-id
description: REST surface for apps-app_id-keys-key_id.
operations:
- method: PATCH
name: patch
description: Updates a key
call: control-keys.patch
with:
app_id: rest.app_id
key_id: rest.key_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/apps/{app-id}/keys/{key-id}/revoke
name: apps-app-id-keys-key-id-revoke
description: REST surface for apps-app_id-keys-key_id-revoke.
operations:
- method: POST
name: post
description: Revokes a key
call: control-keys.post
with:
app_id: rest.app_id
key_id: rest.key_id
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: control-keys-mcp
port: 9090
transport: http
description: MCP adapter for Control API v1 — keys. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: lists-app-keys
description: Lists app keys
hints:
readOnly: true
destructive: false
idempotent: true
call: control-keys.get
with:
app_id: tools.app_id
outputParameters:
- type: object
mapping: $.
- name: creates-key
description: Creates a key
hints:
readOnly: false
destructive: false
idempotent: false
call: control-keys.post
with:
app_id: tools.app_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: updates-key
description: Updates a key
hints:
readOnly: false
destructive: false
idempotent: true
call: control-keys.patch
with:
app_id: tools.app_id
key_id: tools.key_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: revokes-key
description: Revokes a key
hints:
readOnly: false
destructive: false
idempotent: false
call: control-keys.post
with:
app_id: tools.app_id
key_id: tools.key_id
outputParameters:
- type: object
mapping: $.