OpenUV · Capability
OpenUV API — UV Index
UV Index — current and forecast UV readings. 2 operations. Lead operation: Get Current UV Index. Self-contained Naftiko capability covering one OpenUV business surface for any latitude/longitude with optional altitude and datetime inputs.
What You Can Do
GET
Getcurrentuvindex
— Get current UV index for a coordinate.
/v1/uv
GET
Getuvforecast
— Get forecast UV index series for a coordinate.
/v1/forecast
MCP Tools
get-current-uv-index
Get current UV index, max UV, ozone, and skin-type safe exposure times for a coordinate.
read-only
idempotent
get-uv-forecast
Get UV index forecast time series for a coordinate.
read-only
idempotent
Capability Spec
naftiko: "1.0.0-alpha2"
info:
label: "OpenUV API — UV Index"
description: >-
UV Index — current and forecast UV readings. 2 operations. Lead operation: Get
Current UV Index. Self-contained Naftiko capability covering one OpenUV
business surface for any latitude/longitude with optional altitude and datetime
inputs.
tags:
- OpenUV
- Weather
- UV Index
created: "2026-05-29"
modified: "2026-05-29"
binds:
- namespace: env
keys:
OPENUV_API_KEY: OPENUV_API_KEY
capability:
consumes:
- type: http
namespace: "openuv-uv-index"
baseUri: "https://api.openuv.io/api/v1"
description: "OpenUV API — UV Index business capability. Self-contained, no shared references."
authentication:
type: apikey
key: x-access-token
value: "{{env.OPENUV_API_KEY}}"
placement: header
resources:
- name: "uv"
path: "/uv"
operations:
- name: "getCurrentUVIndex"
method: GET
description: "Get current UV index, daily max, ozone, sun position, and safe exposure times for a coordinate."
inputParameters:
- name: "lat"
in: query
type: number
required: true
description: "Latitude in decimal degrees (-90 to 90)."
- name: "lng"
in: query
type: number
required: true
description: "Longitude in decimal degrees (-180 to 180)."
- name: "alt"
in: query
type: number
required: false
description: "Altitude in meters above sea level."
- name: "dt"
in: query
type: string
required: false
description: "ISO 8601 datetime; defaults to now."
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "forecast"
path: "/forecast"
operations:
- name: "getUVForecast"
method: GET
description: "Get time-series UV index forecast for a coordinate with sun position per step."
inputParameters:
- name: "lat"
in: query
type: number
required: true
description: "Latitude in decimal degrees."
- name: "lng"
in: query
type: number
required: true
description: "Longitude in decimal degrees."
- name: "alt"
in: query
type: number
required: false
description: "Altitude in meters above sea level."
- name: "dt"
in: query
type: string
required: false
description: "ISO 8601 anchor datetime; defaults to now."
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
exposes:
- type: rest
namespace: "openuv-uv-index-rest"
port: 8080
description: "REST adapter for OpenUV API — UV Index. One Spectral-compliant resource per consumed operation, prefixed with /v1."
resources:
- path: "/v1/uv"
name: "uv"
description: "REST surface for current UV index."
operations:
- method: GET
name: "getCurrentUVIndex"
description: "Get current UV index for a coordinate."
call: "openuv-uv-index.getCurrentUVIndex"
with:
lat: "rest.lat"
lng: "rest.lng"
alt: "rest.alt"
dt: "rest.dt"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/forecast"
name: "forecast"
description: "REST surface for the UV forecast time series."
operations:
- method: GET
name: "getUVForecast"
description: "Get forecast UV index series for a coordinate."
call: "openuv-uv-index.getUVForecast"
with:
lat: "rest.lat"
lng: "rest.lng"
alt: "rest.alt"
dt: "rest.dt"
outputParameters:
- type: object
mapping: "$."
- type: mcp
namespace: "openuv-uv-index-mcp"
port: 9090
transport: http
description: "MCP adapter for OpenUV API — UV Index. One tool per consumed operation, routed inline through this capability's consumes block."
tools:
- name: "get-current-uv-index"
description: "Get current UV index, max UV, ozone, and skin-type safe exposure times for a coordinate."
hints:
readOnly: true
destructive: false
idempotent: true
call: "openuv-uv-index.getCurrentUVIndex"
with:
lat: "tools.lat"
lng: "tools.lng"
alt: "tools.alt"
dt: "tools.dt"
outputParameters:
- type: object
mapping: "$."
- name: "get-uv-forecast"
description: "Get UV index forecast time series for a coordinate."
hints:
readOnly: true
destructive: false
idempotent: true
call: "openuv-uv-index.getUVForecast"
with:
lat: "tools.lat"
lng: "tools.lng"
alt: "tools.alt"
dt: "tools.dt"
outputParameters:
- type: object
mapping: "$."