Weave Net · Capability

Weave Net HTTP API — IPAM

Weave Net HTTP API — IPAM. 6 operations. Lead operation: Weave Net Look Up IP Address. Self-contained Naftiko capability covering one Weave Net business surface.

Run with Naftiko Weave NetIPAM

What You Can Do

GET
Lookupip — Weave Net Look Up IP Address
/v1/ip/{containerid}
POST
Allocateip — Weave Net Allocate IP Address
/v1/ip/{containerid}
DELETE
Releaseips — Weave Net Release IP Addresses
/v1/ip/{containerid}
POST
Allocateipinsubnet — Weave Net Allocate IP Address in Subnet
/v1/ip/{containerid}/{subnet}
PUT
Claimip — Weave Net Claim Specific IP Address
/v1/ip/{containerid}/{subnet}
GET
Getdefaultsubnet — Weave Net Get Default Subnet
/v1/ipinfo/defaultsubnet

MCP Tools

weave-net-look-up-ip

Weave Net Look Up IP Address

read-only idempotent
weave-net-allocate-ip-address

Weave Net Allocate IP Address

weave-net-release-ip-addresses

Weave Net Release IP Addresses

idempotent
weave-net-allocate-ip-address-2

Weave Net Allocate IP Address in Subnet

weave-net-claim-specific-ip

Weave Net Claim Specific IP Address

idempotent
weave-net-get-default-subnet

Weave Net Get Default Subnet

read-only idempotent

Capability Spec

weave-net-ipam.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Weave Net HTTP API — IPAM
  description: 'Weave Net HTTP API — IPAM. 6 operations. Lead operation: Weave Net Look Up IP Address. Self-contained Naftiko
    capability covering one Weave Net business surface.'
  tags:
  - Weave Net
  - IPAM
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    WEAVE_NET_API_KEY: WEAVE_NET_API_KEY
capability:
  consumes:
  - type: http
    namespace: weave-net-ipam
    baseUri: http://127.0.0.1:6784
    description: Weave Net HTTP API — IPAM business capability. Self-contained, no shared references.
    resources:
    - name: ip-containerId
      path: /ip/{containerId}
      operations:
      - name: lookupip
        method: GET
        description: Weave Net Look Up IP Address
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: containerId
          in: path
          type: string
          description: Container identifier
          required: true
      - name: allocateip
        method: POST
        description: Weave Net Allocate IP Address
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: containerId
          in: path
          type: string
          description: Container identifier
          required: true
        - name: check-alive
          in: query
          type: boolean
          description: Check if container is alive before allocating
      - name: releaseips
        method: DELETE
        description: Weave Net Release IP Addresses
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: containerId
          in: path
          type: string
          description: Container identifier
          required: true
    - name: ip-containerId-subnet
      path: /ip/{containerId}/{subnet}
      operations:
      - name: allocateipinsubnet
        method: POST
        description: Weave Net Allocate IP Address in Subnet
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: containerId
          in: path
          type: string
          description: Container identifier
          required: true
        - name: subnet
          in: path
          type: string
          description: Target subnet in CIDR notation
          required: true
        - name: check-alive
          in: query
          type: boolean
          description: Check if container is alive
      - name: claimip
        method: PUT
        description: Weave Net Claim Specific IP Address
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: containerId
          in: path
          type: string
          description: Container identifier
          required: true
        - name: subnet
          in: path
          type: string
          description: IP address and subnet in CIDR notation
          required: true
        - name: check-alive
          in: query
          type: boolean
          description: Check if container is alive
    - name: ipinfo-defaultsubnet
      path: /ipinfo/defaultsubnet
      operations:
      - name: getdefaultsubnet
        method: GET
        description: Weave Net Get Default Subnet
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    namespace: weave-net-ipam-rest
    port: 8080
    description: REST adapter for Weave Net HTTP API — IPAM. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/ip/{containerid}
      name: ip-containerid
      description: REST surface for ip-containerId.
      operations:
      - method: GET
        name: lookupip
        description: Weave Net Look Up IP Address
        call: weave-net-ipam.lookupip
        with:
          containerId: rest.containerId
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: allocateip
        description: Weave Net Allocate IP Address
        call: weave-net-ipam.allocateip
        with:
          containerId: rest.containerId
          check-alive: rest.check-alive
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: releaseips
        description: Weave Net Release IP Addresses
        call: weave-net-ipam.releaseips
        with:
          containerId: rest.containerId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/ip/{containerid}/{subnet}
      name: ip-containerid-subnet
      description: REST surface for ip-containerId-subnet.
      operations:
      - method: POST
        name: allocateipinsubnet
        description: Weave Net Allocate IP Address in Subnet
        call: weave-net-ipam.allocateipinsubnet
        with:
          containerId: rest.containerId
          subnet: rest.subnet
          check-alive: rest.check-alive
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: claimip
        description: Weave Net Claim Specific IP Address
        call: weave-net-ipam.claimip
        with:
          containerId: rest.containerId
          subnet: rest.subnet
          check-alive: rest.check-alive
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/ipinfo/defaultsubnet
      name: ipinfo-defaultsubnet
      description: REST surface for ipinfo-defaultsubnet.
      operations:
      - method: GET
        name: getdefaultsubnet
        description: Weave Net Get Default Subnet
        call: weave-net-ipam.getdefaultsubnet
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: weave-net-ipam-mcp
    port: 9090
    transport: http
    description: MCP adapter for Weave Net HTTP API — IPAM. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: weave-net-look-up-ip
      description: Weave Net Look Up IP Address
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: weave-net-ipam.lookupip
      with:
        containerId: tools.containerId
      outputParameters:
      - type: object
        mapping: $.
    - name: weave-net-allocate-ip-address
      description: Weave Net Allocate IP Address
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: weave-net-ipam.allocateip
      with:
        containerId: tools.containerId
        check-alive: tools.check-alive
      outputParameters:
      - type: object
        mapping: $.
    - name: weave-net-release-ip-addresses
      description: Weave Net Release IP Addresses
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: weave-net-ipam.releaseips
      with:
        containerId: tools.containerId
      outputParameters:
      - type: object
        mapping: $.
    - name: weave-net-allocate-ip-address-2
      description: Weave Net Allocate IP Address in Subnet
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: weave-net-ipam.allocateipinsubnet
      with:
        containerId: tools.containerId
        subnet: tools.subnet
        check-alive: tools.check-alive
      outputParameters:
      - type: object
        mapping: $.
    - name: weave-net-claim-specific-ip
      description: Weave Net Claim Specific IP Address
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: weave-net-ipam.claimip
      with:
        containerId: tools.containerId
        subnet: tools.subnet
        check-alive: tools.check-alive
      outputParameters:
      - type: object
        mapping: $.
    - name: weave-net-get-default-subnet
      description: Weave Net Get Default Subnet
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: weave-net-ipam.getdefaultsubnet
      outputParameters:
      - type: object
        mapping: $.