Arcade · Capability

Arcade Engine — Plugins

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

Run with Naftiko ArcadeEnginePlugins

What You Can Do

GET
Plugins list — List Plugins
/v1/plugins
POST
Plugins create — Create a Plugin
/v1/plugins
GET
Plugins get — Get a Plugin
/v1/plugins/{plugin-id}
DELETE
Plugins delete — Delete a Plugin
/v1/plugins/{plugin-id}
PATCH
Plugins update — Update a Plugin
/v1/plugins/{plugin-id}

MCP Tools

list-plugins

List Plugins

read-only idempotent
create-plugin

Create a Plugin

get-plugin

Get a Plugin

read-only idempotent
delete-plugin

Delete a Plugin

idempotent
update-plugin

Update a Plugin

idempotent

Capability Spec

engine-plugins.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Arcade Engine — Plugins
  description: 'Plugins surface — 5 operations. Lead operation: List Plugins. Self-contained Naftiko capability covering one Arcade business surface.'
  tags:
    - Arcade
    - Engine
    - Plugins
  created: '2026-05-22'
  modified: '2026-05-22'
binds:
  - namespace: env
    keys:
      ARCADE_API_KEY: ARCADE_API_KEY
capability:
  consumes:
    - type: http
      namespace: engine-plugins
      baseUri: https://api.arcade.dev
      description: Arcade Engine — Plugins business capability. Self-contained, no shared references.
      authentication:
        type: bearer
        token: '{{env.ARCADE_API_KEY}}'
      resources:
        - name: v1-plugins
          path: /v1/plugins
          operations:
            - name: plugins-list
              method: GET
              description: List Plugins
              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: binding_type
                  in: query
                  type: string
                  required: false
                  description: Binding type filter (e.g., 'tenant')
            - name: plugins-create
              method: POST
              description: Create a Plugin
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                  description: Request body.
        - name: v1-plugins-plugin-id
          path: /v1/plugins/{plugin_id}
          operations:
            - name: plugins-get
              method: GET
              description: Get a Plugin
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: plugin_id
                  in: path
                  type: string
                  required: true
                  description: Plugin ID
            - name: plugins-delete
              method: DELETE
              description: Delete a Plugin
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: plugin_id
                  in: path
                  type: string
                  required: true
                  description: Plugin ID
            - name: plugins-update
              method: PATCH
              description: Update a Plugin
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: plugin_id
                  in: path
                  type: string
                  required: true
                  description: Plugin ID
                - name: body
                  in: body
                  type: object
                  required: true
                  description: Request body.
  exposes:
    - type: rest
      namespace: engine-plugins-rest
      port: 8080
      description: REST adapter for Arcade Engine — Plugins. One Spectral-compliant resource per consumed operation, prefixed with /v1.
      resources:
        - path: /v1/plugins
          name: v1-plugins
          description: REST surface for /v1/plugins.
          operations:
            - method: GET
              name: plugins-list
              description: List Plugins
              call: engine-plugins.plugins-list
              with:
                limit: rest.limit
                offset: rest.offset
                binding_type: rest.binding_type
              outputParameters:
                - type: object
                  mapping: $.
            - method: POST
              name: plugins-create
              description: Create a Plugin
              call: engine-plugins.plugins-create
              with:
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/plugins/{plugin-id}
          name: v1-plugins-plugin-id
          description: REST surface for /v1/plugins/{plugin-id}.
          operations:
            - method: GET
              name: plugins-get
              description: Get a Plugin
              call: engine-plugins.plugins-get
              with:
                plugin_id: rest.plugin_id
              outputParameters:
                - type: object
                  mapping: $.
            - method: DELETE
              name: plugins-delete
              description: Delete a Plugin
              call: engine-plugins.plugins-delete
              with:
                plugin_id: rest.plugin_id
              outputParameters:
                - type: object
                  mapping: $.
            - method: PATCH
              name: plugins-update
              description: Update a Plugin
              call: engine-plugins.plugins-update
              with:
                plugin_id: rest.plugin_id
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
    - type: mcp
      namespace: engine-plugins-mcp
      port: 9090
      transport: http
      description: MCP adapter for Arcade Engine — Plugins. One tool per consumed operation, routed inline through this capability's consumes block.
      tools:
        - name: list-plugins
          description: List Plugins
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: engine-plugins.plugins-list
          with:
            limit: tools.limit
            offset: tools.offset
            binding_type: tools.binding_type
          outputParameters:
            - type: object
              mapping: $.
        - name: create-plugin
          description: Create a Plugin
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: engine-plugins.plugins-create
          with:
            body: tools.body
          outputParameters:
            - type: object
              mapping: $.
        - name: get-plugin
          description: Get a Plugin
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: engine-plugins.plugins-get
          with:
            plugin_id: tools.plugin_id
          outputParameters:
            - type: object
              mapping: $.
        - name: delete-plugin
          description: Delete a Plugin
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: engine-plugins.plugins-delete
          with:
            plugin_id: tools.plugin_id
          outputParameters:
            - type: object
              mapping: $.
        - name: update-plugin
          description: Update a Plugin
          hints:
            readOnly: false
            destructive: false
            idempotent: true
          call: engine-plugins.plugins-update
          with:
            plugin_id: tools.plugin_id
            body: tools.body
          outputParameters:
            - type: object
              mapping: $.