Arcade · Capability

Arcade Engine — Hooks

Hooks surface — 6 operations. Lead operation: List Hooks. Self-contained Naftiko capability covering one Arcade business surface.

Run with Naftiko ArcadeEngineHooks

What You Can Do

GET
Hooks list — List Hooks
/v1/hooks
POST
Hooks create — Create a Hook
/v1/hooks
PATCH
Hooks bulk upsert — Bulk Upsert Hooks
/v1/hooks/bulk
GET
Hooks get — Get a Hook
/v1/hooks/{hook-id}
DELETE
Hooks delete — Delete a Hook
/v1/hooks/{hook-id}
PATCH
Hooks update — Update a Hook
/v1/hooks/{hook-id}

MCP Tools

list-hooks

List Hooks

read-only idempotent
create-hook

Create a Hook

bulk-upsert-hooks

Bulk Upsert Hooks

idempotent
get-hook

Get a Hook

read-only idempotent
delete-hook

Delete a Hook

idempotent
update-hook

Update a Hook

idempotent

Capability Spec

engine-hooks.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Arcade Engine — Hooks
  description: 'Hooks surface — 6 operations. Lead operation: List Hooks. Self-contained Naftiko capability covering one Arcade business surface.'
  tags:
    - Arcade
    - Engine
    - Hooks
  created: '2026-05-22'
  modified: '2026-05-22'
binds:
  - namespace: env
    keys:
      ARCADE_API_KEY: ARCADE_API_KEY
capability:
  consumes:
    - type: http
      namespace: engine-hooks
      baseUri: https://api.arcade.dev
      description: Arcade Engine — Hooks business capability. Self-contained, no shared references.
      authentication:
        type: bearer
        token: '{{env.ARCADE_API_KEY}}'
      resources:
        - name: v1-hooks
          path: /v1/hooks
          operations:
            - name: hooks-list
              method: GET
              description: List Hooks
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: limit
                  in: query
                  type: integer
                  required: false
                  description: Limit
                - name: offset
                  in: query
                  type: integer
                  required: false
                  description: Offset
                - name: hook_point
                  in: query
                  type: string
                  required: false
                  description: Filter by hook point
                - name: plugin_id
                  in: query
                  type: string
                  required: false
                  description: Filter by plugin ID
                - name: status
                  in: query
                  type: string
                  required: false
                  description: Filter by status
            - name: hooks-create
              method: POST
              description: Create a Hook
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                  description: Request body.
        - name: v1-hooks-bulk
          path: /v1/hooks/bulk
          operations:
            - name: hooks-bulk-upsert
              method: PATCH
              description: Bulk Upsert Hooks
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                  description: Request body.
        - name: v1-hooks-hook-id
          path: /v1/hooks/{hook_id}
          operations:
            - name: hooks-get
              method: GET
              description: Get a Hook
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: hook_id
                  in: path
                  type: string
                  required: true
                  description: Hook ID
                - name: binding_type
                  in: query
                  type: string
                  required: false
                  description: Filter by binding type (tenant or project)
            - name: hooks-delete
              method: DELETE
              description: Delete a Hook
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: hook_id
                  in: path
                  type: string
                  required: true
                  description: Hook ID
            - name: hooks-update
              method: PATCH
              description: Update a Hook
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: hook_id
                  in: path
                  type: string
                  required: true
                  description: Hook ID
                - name: body
                  in: body
                  type: object
                  required: true
                  description: Request body.
  exposes:
    - type: rest
      namespace: engine-hooks-rest
      port: 8080
      description: REST adapter for Arcade Engine — Hooks. One Spectral-compliant resource per consumed operation, prefixed with /v1.
      resources:
        - path: /v1/hooks
          name: v1-hooks
          description: REST surface for /v1/hooks.
          operations:
            - method: GET
              name: hooks-list
              description: List Hooks
              call: engine-hooks.hooks-list
              with:
                limit: rest.limit
                offset: rest.offset
                hook_point: rest.hook_point
                plugin_id: rest.plugin_id
                status: rest.status
              outputParameters:
                - type: object
                  mapping: $.
            - method: POST
              name: hooks-create
              description: Create a Hook
              call: engine-hooks.hooks-create
              with:
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/hooks/bulk
          name: v1-hooks-bulk
          description: REST surface for /v1/hooks/bulk.
          operations:
            - method: PATCH
              name: hooks-bulk-upsert
              description: Bulk Upsert Hooks
              call: engine-hooks.hooks-bulk-upsert
              with:
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/hooks/{hook-id}
          name: v1-hooks-hook-id
          description: REST surface for /v1/hooks/{hook-id}.
          operations:
            - method: GET
              name: hooks-get
              description: Get a Hook
              call: engine-hooks.hooks-get
              with:
                hook_id: rest.hook_id
                binding_type: rest.binding_type
              outputParameters:
                - type: object
                  mapping: $.
            - method: DELETE
              name: hooks-delete
              description: Delete a Hook
              call: engine-hooks.hooks-delete
              with:
                hook_id: rest.hook_id
              outputParameters:
                - type: object
                  mapping: $.
            - method: PATCH
              name: hooks-update
              description: Update a Hook
              call: engine-hooks.hooks-update
              with:
                hook_id: rest.hook_id
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
    - type: mcp
      namespace: engine-hooks-mcp
      port: 9090
      transport: http
      description: MCP adapter for Arcade Engine — Hooks. One tool per consumed operation, routed inline through this capability's consumes block.
      tools:
        - name: list-hooks
          description: List Hooks
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: engine-hooks.hooks-list
          with:
            limit: tools.limit
            offset: tools.offset
            hook_point: tools.hook_point
            plugin_id: tools.plugin_id
            status: tools.status
          outputParameters:
            - type: object
              mapping: $.
        - name: create-hook
          description: Create a Hook
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: engine-hooks.hooks-create
          with:
            body: tools.body
          outputParameters:
            - type: object
              mapping: $.
        - name: bulk-upsert-hooks
          description: Bulk Upsert Hooks
          hints:
            readOnly: false
            destructive: false
            idempotent: true
          call: engine-hooks.hooks-bulk-upsert
          with:
            body: tools.body
          outputParameters:
            - type: object
              mapping: $.
        - name: get-hook
          description: Get a Hook
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: engine-hooks.hooks-get
          with:
            hook_id: tools.hook_id
            binding_type: tools.binding_type
          outputParameters:
            - type: object
              mapping: $.
        - name: delete-hook
          description: Delete a Hook
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: engine-hooks.hooks-delete
          with:
            hook_id: tools.hook_id
          outputParameters:
            - type: object
              mapping: $.
        - name: update-hook
          description: Update a Hook
          hints:
            readOnly: false
            destructive: false
            idempotent: true
          call: engine-hooks.hooks-update
          with:
            hook_id: tools.hook_id
            body: tools.body
          outputParameters:
            - type: object
              mapping: $.