ipify · Capability

ipify Public IP Address API — IP Address

IP Address — IP Address. 1 operation. Lead operation: ipify Get Public IP Address. Self-contained Naftiko capability covering one ipify business surface.

Run with Naftiko IpifyIP AddressPublic IP

What You Can Do

GET
Getpublicip — Return the caller's public IP address.
/v1/ip

MCP Tools

get-public-ip

Return the caller's public IP address.

read-only idempotent

Capability Spec

ip-api-ip-address.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "ipify Public IP Address API — IP Address"
  description: >-
    IP Address — IP Address. 1 operation. Lead operation: ipify Get Public IP Address.
    Self-contained Naftiko capability covering one ipify business surface.
  tags:
    - Ipify
    - IP Address
    - Public IP
  created: "2026-05-29"
  modified: "2026-05-29"

binds:
  - namespace: env
    keys: {}

capability:

  consumes:
    - type: http
      namespace: "ip-api-ip-address"
      baseUri: "https://api.ipify.org"
      description: "ipify Public IP Address API — IP Address business capability. Self-contained, no shared references."
      resources:
        - name: "root"
          path: "/"
          operations:
            - name: "getPublicIp"
              method: GET
              description: "Return the caller's public IP address as plain text, JSON, or JSONP."
              inputParameters:
                - name: "format"
                  in: query
                  type: string
                  required: false
                  description: "Response encoding. Omit for plain text. `json` for a JSON object. `jsonp` for a JSONP callback wrapper."
                - name: "callback"
                  in: query
                  type: string
                  required: false
                  description: "Custom JSONP callback function name. Only meaningful when `format=jsonp`."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  exposes:
    - type: rest
      namespace: "ip-api-ip-address-rest"
      port: 8080
      description: "REST adapter for ipify Public IP Address API — IP Address. One Spectral-compliant resource per consumed operation, prefixed with /v1."
      resources:
        - path: "/v1/ip"
          name: "ip"
          description: "REST surface for the caller's public IP address."
          operations:
            - method: GET
              name: "getPublicIp"
              description: "Return the caller's public IP address."
              call: "ip-api-ip-address.getPublicIp"
              with:
                "format": "rest.format"
                "callback": "rest.callback"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      namespace: "ip-api-ip-address-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for ipify Public IP Address API — IP Address. One tool per consumed operation, routed inline through this capability's consumes block."
      tools:
        - name: "get-public-ip"
          description: "Return the caller's public IP address."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "ip-api-ip-address.getPublicIp"
          with:
            "format": "tools.format"
            "callback": "tools.callback"
          outputParameters:
            - type: object
              mapping: "$."