naftiko: 1.0.0-alpha2 info: label: IPGeolocation.io — IP Geolocation description: 'IPGeolocation.io IP Geolocation. 2 operations. Lead operation: Single IP geolocation lookup. Self-contained Naftiko capability covering one IPGeolocation.io business surface.' tags: - IPGeolocation - IP Intelligence - IP Geolocation created: '2026-05-29' modified: '2026-05-29' binds: - namespace: env keys: IPGEOLOCATION_API_KEY: IPGEOLOCATION_API_KEY capability: consumes: - type: http namespace: ip-location-ip-geolocation baseUri: https://api.ipgeolocation.io description: IPGeolocation.io — IP Geolocation business capability. Self-contained, no shared references. authentication: type: apikey key: apiKey value: '{{env.IPGEOLOCATION_API_KEY}}' placement: query resources: - name: ipgeo path: /v3/ipgeo operations: - name: lookupIpGeolocation method: GET description: Single IP geolocation lookup inputParameters: - name: ip in: query type: string required: false description: An IPv4 address, IPv6 address, or domain name to look up. When omitted, the API - name: lang in: query type: string required: false description: Language code for translated location names. Defaults to `en`. Non-English - name: include in: query type: string required: false description: Comma-separated list of optional data modules to add to the response. These are - name: fields in: query type: string required: false description: Comma-separated list of fields or objects to return. Everything else is omitted. - name: excludes in: query type: string required: false description: Comma-separated list of fields or objects to remove from the response. The `ip` - name: output in: query type: string required: false description: Desired response format. Defaults to `json` if not specified. You can also outputRawFormat: json outputParameters: - name: result type: object value: $. - name: ipgeo-bulk path: /v3/ipgeo-bulk operations: - name: bulkLookupIpGeolocation method: POST description: Bulk IP geolocation lookup inputParameters: - name: lang in: query type: string required: false description: Language code for translated location names. Defaults to `en`. Non-English - name: include in: query type: string required: false description: Comma-separated list of optional data modules to add to the response. These are - name: fields in: query type: string required: false description: Comma-separated list of fields or objects to return. Everything else is omitted. - name: excludes in: query type: string required: false description: Comma-separated list of fields or objects to remove from the response. The `ip` - name: output in: query type: string required: false description: Desired response format. Defaults to `json` if not specified. You can also - name: body in: body type: object required: true description: A JSON object containing an `ips` array. Each element is a string representing outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: ip-location-ip-geolocation-rest port: 8080 description: REST adapter for IPGeolocation.io — IP Geolocation. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/ipgeo name: ipgeo description: REST surface for /v3/ipgeo. operations: - method: GET name: lookupIpGeolocation description: Single IP geolocation lookup call: ip-location-ip-geolocation.lookupIpGeolocation with: ip: rest.ip lang: rest.lang include: rest.include fields: rest.fields excludes: rest.excludes output: rest.output outputParameters: - type: object mapping: $. - path: /v1/ipgeo-bulk name: ipgeo-bulk description: REST surface for /v3/ipgeo-bulk. operations: - method: POST name: bulkLookupIpGeolocation description: Bulk IP geolocation lookup call: ip-location-ip-geolocation.bulkLookupIpGeolocation with: lang: rest.lang include: rest.include fields: rest.fields excludes: rest.excludes output: rest.output body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: ip-location-ip-geolocation-mcp port: 9090 transport: http description: MCP adapter for IPGeolocation.io — IP Geolocation. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: single-ip-geolocation-lookup description: Single IP geolocation lookup hints: readOnly: true destructive: false idempotent: true call: ip-location-ip-geolocation.lookupIpGeolocation with: ip: tools.ip lang: tools.lang include: tools.include fields: tools.fields excludes: tools.excludes output: tools.output outputParameters: - type: object mapping: $. - name: bulk-ip-geolocation-lookup description: Bulk IP geolocation lookup hints: readOnly: true destructive: false idempotent: false call: ip-location-ip-geolocation.bulkLookupIpGeolocation with: lang: tools.lang include: tools.include fields: tools.fields excludes: tools.excludes output: tools.output body: tools.body outputParameters: - type: object mapping: $.