fastly · Capability

Fastly VCL Services API — Custom VCL

Fastly VCL Services API — Custom VCL. 2 operations. Lead operation: List custom VCL files. Self-contained Naftiko capability covering one Fastly business surface.

Run with Naftiko FastlyCustom VCL

What You Can Do

GET
Listcustomvcl — List custom VCL files
/v1/service/{service-id}/version/{version-id}/vcl
POST
Createcustomvcl — Upload custom VCL
/v1/service/{service-id}/version/{version-id}/vcl

MCP Tools

list-custom-vcl-files

List custom VCL files

read-only idempotent
upload-custom-vcl

Upload custom VCL

Capability Spec

vcl-services-custom-vcl.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Fastly VCL Services API — Custom VCL
  description: 'Fastly VCL Services API — Custom VCL. 2 operations. Lead operation: List custom VCL files. Self-contained
    Naftiko capability covering one Fastly business surface.'
  tags:
  - Fastly
  - Custom VCL
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    FASTLY_API_KEY: FASTLY_API_KEY
capability:
  consumes:
  - type: http
    namespace: vcl-services-custom-vcl
    baseUri: https://api.fastly.com
    description: Fastly VCL Services API — Custom VCL business capability. Self-contained, no shared references.
    resources:
    - name: service-service_id-version-version_id-vcl
      path: /service/{service_id}/version/{version_id}/vcl
      operations:
      - name: listcustomvcl
        method: GET
        description: List custom VCL files
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createcustomvcl
        method: POST
        description: Upload custom VCL
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: apikey
      key: Fastly-Key
      value: '{{env.FASTLY_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: vcl-services-custom-vcl-rest
    port: 8080
    description: REST adapter for Fastly VCL Services API — Custom VCL. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/service/{service-id}/version/{version-id}/vcl
      name: service-service-id-version-version-id-vcl
      description: REST surface for service-service_id-version-version_id-vcl.
      operations:
      - method: GET
        name: listcustomvcl
        description: List custom VCL files
        call: vcl-services-custom-vcl.listcustomvcl
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createcustomvcl
        description: Upload custom VCL
        call: vcl-services-custom-vcl.createcustomvcl
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: vcl-services-custom-vcl-mcp
    port: 9090
    transport: http
    description: MCP adapter for Fastly VCL Services API — Custom VCL. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-custom-vcl-files
      description: List custom VCL files
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: vcl-services-custom-vcl.listcustomvcl
      outputParameters:
      - type: object
        mapping: $.
    - name: upload-custom-vcl
      description: Upload custom VCL
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: vcl-services-custom-vcl.createcustomvcl
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.