naftiko: 1.0.0-alpha2 info: label: Frostbyte IP Geolocation API — IP Geolocation description: 'Frostbyte IP Geolocation API — IP Geolocation. 8 operations. Lead operation: Get Geolocation for an IP Address. Self-contained Naftiko capability covering one Frostbyte business surface.' tags: - Frostbyte - IP Geolocation created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FROSTBYTE_API_KEY: FROSTBYTE_API_KEY capability: consumes: - type: http namespace: ip-geolocation-ip-geolocation baseUri: https://agent-gateway-kappa.vercel.app description: Frostbyte IP Geolocation API — IP Geolocation business capability. Self-contained, no shared references. resources: - name: ip-geo-ip path: /ip/geo/{ip} operations: - name: getipgeo method: GET description: Get Geolocation for an IP Address outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ip in: path type: string description: IPv4 or IPv6 address to look up required: true - name: ip-json path: /ip/json operations: - name: getownip method: GET description: Get Your Own IP Geolocation outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-agent-geo-api-geo-batch path: /v1/agent-geo/api/geo/batch operations: - name: batchgeo method: POST description: Batch IP Geolocation Lookup outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-agent-geo-api-geo-country-ip path: /v1/agent-geo/api/geo/country/{ip} operations: - name: getcountry method: GET description: Get Country Code for an IP outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ip in: path type: string required: true - name: v1-agent-geo-api-geo-distance path: /v1/agent-geo/api/geo/distance operations: - name: getdistance method: POST description: Calculate Distance Between Two IPs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-agent-geo-api-geo-me path: /v1/agent-geo/api/geo/me operations: - name: getgeome method: GET description: Get Your Own Geolocation outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-agent-geo-api-geo-timezone-ip path: /v1/agent-geo/api/geo/timezone/{ip} operations: - name: gettimezone method: GET description: Get Timezone for an IP outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ip in: path type: string required: true - name: v1-agent-geo-api-geo-ip path: /v1/agent-geo/api/geo/{ip} operations: - name: getgeoviagateway method: GET description: Full Geolocation Lookup (via Gateway) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ip in: path type: string required: true authentication: type: apikey key: X-API-Key value: '{{env.FROSTBYTE_API_KEY}}' placement: header exposes: - type: rest namespace: ip-geolocation-ip-geolocation-rest port: 8080 description: REST adapter for Frostbyte IP Geolocation API — IP Geolocation. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/ip/geo/{ip} name: ip-geo-ip description: REST surface for ip-geo-ip. operations: - method: GET name: getipgeo description: Get Geolocation for an IP Address call: ip-geolocation-ip-geolocation.getipgeo with: ip: rest.ip outputParameters: - type: object mapping: $. - path: /v1/ip/json name: ip-json description: REST surface for ip-json. operations: - method: GET name: getownip description: Get Your Own IP Geolocation call: ip-geolocation-ip-geolocation.getownip outputParameters: - type: object mapping: $. - path: /v1/v1/agent-geo/api/geo/batch name: v1-agent-geo-api-geo-batch description: REST surface for v1-agent-geo-api-geo-batch. operations: - method: POST name: batchgeo description: Batch IP Geolocation Lookup call: ip-geolocation-ip-geolocation.batchgeo with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/agent-geo/api/geo/country/{ip} name: v1-agent-geo-api-geo-country-ip description: REST surface for v1-agent-geo-api-geo-country-ip. operations: - method: GET name: getcountry description: Get Country Code for an IP call: ip-geolocation-ip-geolocation.getcountry with: ip: rest.ip outputParameters: - type: object mapping: $. - path: /v1/v1/agent-geo/api/geo/distance name: v1-agent-geo-api-geo-distance description: REST surface for v1-agent-geo-api-geo-distance. operations: - method: POST name: getdistance description: Calculate Distance Between Two IPs call: ip-geolocation-ip-geolocation.getdistance with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/agent-geo/api/geo/me name: v1-agent-geo-api-geo-me description: REST surface for v1-agent-geo-api-geo-me. operations: - method: GET name: getgeome description: Get Your Own Geolocation call: ip-geolocation-ip-geolocation.getgeome outputParameters: - type: object mapping: $. - path: /v1/v1/agent-geo/api/geo/timezone/{ip} name: v1-agent-geo-api-geo-timezone-ip description: REST surface for v1-agent-geo-api-geo-timezone-ip. operations: - method: GET name: gettimezone description: Get Timezone for an IP call: ip-geolocation-ip-geolocation.gettimezone with: ip: rest.ip outputParameters: - type: object mapping: $. - path: /v1/v1/agent-geo/api/geo/{ip} name: v1-agent-geo-api-geo-ip description: REST surface for v1-agent-geo-api-geo-ip. operations: - method: GET name: getgeoviagateway description: Full Geolocation Lookup (via Gateway) call: ip-geolocation-ip-geolocation.getgeoviagateway with: ip: rest.ip outputParameters: - type: object mapping: $. - type: mcp namespace: ip-geolocation-ip-geolocation-mcp port: 9090 transport: http description: MCP adapter for Frostbyte IP Geolocation API — IP Geolocation. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-geolocation-ip-address description: Get Geolocation for an IP Address hints: readOnly: true destructive: false idempotent: true call: ip-geolocation-ip-geolocation.getipgeo with: ip: tools.ip outputParameters: - type: object mapping: $. - name: get-your-own-ip-geolocation description: Get Your Own IP Geolocation hints: readOnly: true destructive: false idempotent: true call: ip-geolocation-ip-geolocation.getownip outputParameters: - type: object mapping: $. - name: batch-ip-geolocation-lookup description: Batch IP Geolocation Lookup hints: readOnly: true destructive: false idempotent: false call: ip-geolocation-ip-geolocation.batchgeo with: body: tools.body outputParameters: - type: object mapping: $. - name: get-country-code-ip description: Get Country Code for an IP hints: readOnly: true destructive: false idempotent: true call: ip-geolocation-ip-geolocation.getcountry with: ip: tools.ip outputParameters: - type: object mapping: $. - name: calculate-distance-between-two-ips description: Calculate Distance Between Two IPs hints: readOnly: false destructive: false idempotent: false call: ip-geolocation-ip-geolocation.getdistance with: body: tools.body outputParameters: - type: object mapping: $. - name: get-your-own-geolocation description: Get Your Own Geolocation hints: readOnly: true destructive: false idempotent: true call: ip-geolocation-ip-geolocation.getgeome outputParameters: - type: object mapping: $. - name: get-timezone-ip description: Get Timezone for an IP hints: readOnly: true destructive: false idempotent: true call: ip-geolocation-ip-geolocation.gettimezone with: ip: tools.ip outputParameters: - type: object mapping: $. - name: full-geolocation-lookup-gateway description: Full Geolocation Lookup (via Gateway) hints: readOnly: true destructive: false idempotent: true call: ip-geolocation-ip-geolocation.getgeoviagateway with: ip: tools.ip outputParameters: - type: object mapping: $.