Equinix · Capability

Metal API — VRFs

Metal API — VRFs. 16 operations. Lead operation: Delete a VRF BGP Dynamic Neighbor. Self-contained Naftiko capability covering one Equinix business surface.

Run with Naftiko EquinixVRFs

What You Can Do

DELETE
Deletebgpdynamicneighborbyid — Delete a VRF BGP Dynamic Neighbor
/v1/bgp-dynamic-neighbors/{id}
GET
Get — Retrieve a BGP Dynamic Neighbor
/v1/bgp-dynamic-neighbors/{id}
GET
Getbgpdynamicneighbors — List BGP Dynamic Neighbors
/v1/metal-gateways/{id}/bgp-dynamic-neighbors
POST
Createbgpdynamicneighbor — Create a VRF BGP Dynamic Neighbor range
/v1/metal-gateways/{id}/bgp-dynamic-neighbors
GET
Findvrfs — Retrieve all VRFs in the project
/v1/projects/{id}/vrfs
POST
Createvrf — Create a new VRF in the specified project
/v1/projects/{id}/vrfs
DELETE
Deletevrfroutebyid — Delete a VRF Route
/v1/routes/{id}
GET
Findvrfroutebyid — Retrieve a VRF Route
/v1/routes/{id}
PUT
Updatevrfroutebyid — Update a VRF Route
/v1/routes/{id}
DELETE
Deletevrf — Delete the VRF
/v1/vrfs/{id}
GET
Findvrfbyid — Retrieve a VRF
/v1/vrfs/{id}
PUT
Updatevrf — Update the VRF
/v1/vrfs/{id}
GET
Findvrfipreservations — Retrieve all VRF IP Reservations in the VRF
/v1/vrfs/{id}/ips
GET
Getvrfroutes — Retrieve all routes in the VRF
/v1/vrfs/{id}/routes
POST
Createvrfroute — Create a VRF route
/v1/vrfs/{id}/routes
GET
Findvrfipreservation — Retrieve all VRF IP Reservations in the VRF
/v1/vrfs/{vrf-id}/ips/{id}

MCP Tools

delete-vrf-bgp-dynamic-neighbor

Delete a VRF BGP Dynamic Neighbor

idempotent
retrieve-bgp-dynamic-neighbor

Retrieve a BGP Dynamic Neighbor

read-only idempotent
list-bgp-dynamic-neighbors

List BGP Dynamic Neighbors

read-only idempotent
create-vrf-bgp-dynamic-neighbor

Create a VRF BGP Dynamic Neighbor range

retrieve-all-vrfs-project

Retrieve all VRFs in the project

read-only idempotent
create-new-vrf-specified-project

Create a new VRF in the specified project

delete-vrf-route

Delete a VRF Route

idempotent
retrieve-vrf-route

Retrieve a VRF Route

read-only idempotent
update-vrf-route

Update a VRF Route

idempotent
delete-vrf

Delete the VRF

idempotent
retrieve-vrf

Retrieve a VRF

read-only idempotent
update-vrf

Update the VRF

idempotent
retrieve-all-vrf-ip-reservations

Retrieve all VRF IP Reservations in the VRF

read-only idempotent
retrieve-all-routes-vrf

Retrieve all routes in the VRF

read-only idempotent
create-vrf-route

Create a VRF route

retrieve-all-vrf-ip-reservations-2

Retrieve all VRF IP Reservations in the VRF

read-only idempotent

Capability Spec

metal-vrfs.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Metal API — VRFs
  description: 'Metal API — VRFs. 16 operations. Lead operation: Delete a VRF BGP Dynamic Neighbor. Self-contained Naftiko
    capability covering one Equinix business surface.'
  tags:
  - Equinix
  - VRFs
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    EQUINIX_API_KEY: EQUINIX_API_KEY
capability:
  consumes:
  - type: http
    namespace: metal-vrfs
    baseUri: https://api.equinix.com/metal/v1
    description: Metal API — VRFs business capability. Self-contained, no shared references.
    resources:
    - name: bgp-dynamic-neighbors-id
      path: /bgp-dynamic-neighbors/{id}
      operations:
      - name: deletebgpdynamicneighborbyid
        method: DELETE
        description: Delete a VRF BGP Dynamic Neighbor
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: BGP Dynamic Neighbor UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
      - name: get
        method: GET
        description: Retrieve a BGP Dynamic Neighbor
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: BGP Dynamic Neighbor UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
    - name: metal-gateways-id-bgp-dynamic-neighbors
      path: /metal-gateways/{id}/bgp-dynamic-neighbors
      operations:
      - name: getbgpdynamicneighbors
        method: GET
        description: List BGP Dynamic Neighbors
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Metal Gateway UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
      - name: createbgpdynamicneighbor
        method: POST
        description: Create a VRF BGP Dynamic Neighbor range
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Metal Gateway UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: projects-id-vrfs
      path: /projects/{id}/vrfs
      operations:
      - name: findvrfs
        method: GET
        description: Retrieve all VRFs in the project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Project UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
        - name: metro
          in: query
          type: string
          description: Filter by Metro ID (uuid) or Metro Code
      - name: createvrf
        method: POST
        description: Create a new VRF in the specified project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Project UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: routes-id
      path: /routes/{id}
      operations:
      - name: deletevrfroutebyid
        method: DELETE
        description: Delete a VRF Route
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: VRF Route UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
      - name: findvrfroutebyid
        method: GET
        description: Retrieve a VRF Route
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: VRF Route UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
      - name: updatevrfroutebyid
        method: PUT
        description: Update a VRF Route
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: VRF Route UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: vrfs-id
      path: /vrfs/{id}
      operations:
      - name: deletevrf
        method: DELETE
        description: Delete the VRF
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: VRF UUID
          required: true
      - name: findvrfbyid
        method: GET
        description: Retrieve a VRF
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: VRF UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
      - name: updatevrf
        method: PUT
        description: Update the VRF
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: VRF UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: vrfs-id-ips
      path: /vrfs/{id}/ips
      operations:
      - name: findvrfipreservations
        method: GET
        description: Retrieve all VRF IP Reservations in the VRF
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: VRF UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full attributes. Attribute names can
            be dotted (up to 3 levels) to included deeply nested objec
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names
            can be dotted (up to 3 levels) to exclude deeply nested obje
    - name: vrfs-id-routes
      path: /vrfs/{id}/routes
      operations:
      - name: getvrfroutes
        method: GET
        description: Retrieve all routes in the VRF
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: VRF UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
      - name: createvrfroute
        method: POST
        description: Create a VRF route
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: VRF UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: vrfs-vrf_id-ips-id
      path: /vrfs/{vrf_id}/ips/{id}
      operations:
      - name: findvrfipreservation
        method: GET
        description: Retrieve all VRF IP Reservations in the VRF
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: vrf_id
          in: path
          type: string
          description: VRF UUID
          required: true
        - name: id
          in: path
          type: string
          description: IP UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full attributes. Attribute names can
            be dotted (up to 3 levels) to included deeply nested objec
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names
            can be dotted (up to 3 levels) to exclude deeply nested obje
    authentication:
      type: apikey
      key: X-Auth-Token
      value: '{{env.EQUINIX_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: metal-vrfs-rest
    port: 8080
    description: REST adapter for Metal API — VRFs. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/bgp-dynamic-neighbors/{id}
      name: bgp-dynamic-neighbors-id
      description: REST surface for bgp-dynamic-neighbors-id.
      operations:
      - method: DELETE
        name: deletebgpdynamicneighborbyid
        description: Delete a VRF BGP Dynamic Neighbor
        call: metal-vrfs.deletebgpdynamicneighborbyid
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: get
        description: Retrieve a BGP Dynamic Neighbor
        call: metal-vrfs.get
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/metal-gateways/{id}/bgp-dynamic-neighbors
      name: metal-gateways-id-bgp-dynamic-neighbors
      description: REST surface for metal-gateways-id-bgp-dynamic-neighbors.
      operations:
      - method: GET
        name: getbgpdynamicneighbors
        description: List BGP Dynamic Neighbors
        call: metal-vrfs.getbgpdynamicneighbors
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createbgpdynamicneighbor
        description: Create a VRF BGP Dynamic Neighbor range
        call: metal-vrfs.createbgpdynamicneighbor
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{id}/vrfs
      name: projects-id-vrfs
      description: REST surface for projects-id-vrfs.
      operations:
      - method: GET
        name: findvrfs
        description: Retrieve all VRFs in the project
        call: metal-vrfs.findvrfs
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
          metro: rest.metro
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createvrf
        description: Create a new VRF in the specified project
        call: metal-vrfs.createvrf
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/routes/{id}
      name: routes-id
      description: REST surface for routes-id.
      operations:
      - method: DELETE
        name: deletevrfroutebyid
        description: Delete a VRF Route
        call: metal-vrfs.deletevrfroutebyid
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: findvrfroutebyid
        description: Retrieve a VRF Route
        call: metal-vrfs.findvrfroutebyid
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatevrfroutebyid
        description: Update a VRF Route
        call: metal-vrfs.updatevrfroutebyid
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vrfs/{id}
      name: vrfs-id
      description: REST surface for vrfs-id.
      operations:
      - method: DELETE
        name: deletevrf
        description: Delete the VRF
        call: metal-vrfs.deletevrf
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: findvrfbyid
        description: Retrieve a VRF
        call: metal-vrfs.findvrfbyid
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatevrf
        description: Update the VRF
        call: metal-vrfs.updatevrf
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vrfs/{id}/ips
      name: vrfs-id-ips
      description: REST surface for vrfs-id-ips.
      operations:
      - method: GET
        name: findvrfipreservations
        description: Retrieve all VRF IP Reservations in the VRF
        call: metal-vrfs.findvrfipreservations
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vrfs/{id}/routes
      name: vrfs-id-routes
      description: REST surface for vrfs-id-routes.
      operations:
      - method: GET
        name: getvrfroutes
        description: Retrieve all routes in the VRF
        call: metal-vrfs.getvrfroutes
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createvrfroute
        description: Create a VRF route
        call: metal-vrfs.createvrfroute
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vrfs/{vrf-id}/ips/{id}
      name: vrfs-vrf-id-ips-id
      description: REST surface for vrfs-vrf_id-ips-id.
      operations:
      - method: GET
        name: findvrfipreservation
        description: Retrieve all VRF IP Reservations in the VRF
        call: metal-vrfs.findvrfipreservation
        with:
          vrf_id: rest.vrf_id
          id: rest.id
          include: rest.include
          exclude: rest.exclude
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: metal-vrfs-mcp
    port: 9090
    transport: http
    description: MCP adapter for Metal API — VRFs. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: delete-vrf-bgp-dynamic-neighbor
      description: Delete a VRF BGP Dynamic Neighbor
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: metal-vrfs.deletebgpdynamicneighborbyid
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-bgp-dynamic-neighbor
      description: Retrieve a BGP Dynamic Neighbor
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-vrfs.get
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
      outputParameters:
      - type: object
        mapping: $.
    - name: list-bgp-dynamic-neighbors
      description: List BGP Dynamic Neighbors
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-vrfs.getbgpdynamicneighbors
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
      outputParameters:
      - type: object
        mapping: $.
    - name: create-vrf-bgp-dynamic-neighbor
      description: Create a VRF BGP Dynamic Neighbor range
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: metal-vrfs.createbgpdynamicneighbor
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-all-vrfs-project
      description: Retrieve all VRFs in the project
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-vrfs.findvrfs
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
        metro: tools.metro
      outputParameters:
      - type: object
        mapping: $.
    - name: create-new-vrf-specified-project
      description: Create a new VRF in the specified project
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: metal-vrfs.createvrf
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-vrf-route
      description: Delete a VRF Route
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: metal-vrfs.deletevrfroutebyid
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-vrf-route
      description: Retrieve a VRF Route
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-vrfs.findvrfroutebyid
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
      outputParameters:
      - type: object
        mapping: $.
    - name: update-vrf-route
      description: Update a VRF Route
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: metal-vrfs.updatevrfroutebyid
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-vrf
      description: Delete the VRF
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: metal-vrfs.deletevrf
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-vrf
      description: Retrieve a VRF
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-vrfs.findvrfbyid
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
      outputParameters:
      - type: object
        mapping: $.
    - name: update-vrf
      description: Update the VRF
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: metal-vrfs.updatevrf
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-all-vrf-ip-reservations
      description: Retrieve all VRF IP Reservations in the VRF
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-vrfs.findvrfipreservations
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-all-routes-vrf
      description: Retrieve all routes in the VRF
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-vrfs.getvrfroutes
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
      outputParameters:
      - type: object
        mapping: $.
    - name: create-vrf-route
      description: Create a VRF route
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: metal-vrfs.createvrfroute
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-all-vrf-ip-reservations-2
      description: Retrieve all VRF IP Reservations in the VRF
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-vrfs.findvrfipreservation
      with:
        vrf_id: tools.vrf_id
        id: tools.id
        include: tools.include
        exclude: tools.exclude
      outputParameters:
      - type: object
        mapping: $.