Skip to main content

vitamind

io.github.JaviMaligno/vitamindVersion 1.0.0

Know when the sun can make vitamin D where you are, for your skin type. Live UV data.

Status

Responds271 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 14:39 UTC
Latency
271 ms
Remotes responding
2 of 2
Sign-in
OAuth sign-in, No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 21:12 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://getvitamind.app/api/mcp-auth/mcpSign-in required271 ms
OAuth sign-in

Claude Code

This server asks for sign-in. Your client opens the sign-in when it connects.

claude mcp add --transport http vitamind https://getvitamind.app/api/mcp-auth/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: vitamind
Remote MCP server URL: https://getvitamind.app/api/mcp-auth/mcp

Cursor

{
  "mcpServers": {
    "vitamind": {
      "url": "https://getvitamind.app/api/mcp-auth/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"vitamind","type":"http","url":"https://getvitamind.app/api/mcp-auth/mcp"}'
Streamable HTTP
https://getvitamind.app/api/mcp/mcpResponds308 ms
No sign-in

Claude Code

claude mcp add --transport http vitamind https://getvitamind.app/api/mcp/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: vitamind
Remote MCP server URL: https://getvitamind.app/api/mcp/mcp

Cursor

{
  "mcpServers": {
    "vitamind": {
      "url": "https://getvitamind.app/api/mcp/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"vitamind","type":"http","url":"https://getvitamind.app/api/mcp/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

15 tools

Tools of vitamind
Read-only
Idempotent
Open world
compare_vitamin_d_yearCompare the vitamin D year of 2 to 5 places side by side in ONE call — 'Madrid vs Berlin vs Oslo, where do I actually get winter sun?'. Returns each place's months with sun, exact season span and viable days per year, plus rankedByViableDays. Use this instead of calling get_vitamin_d_year once per city: only this tool can draw the years on a shared axis.Not declaredNot declaredNot declaredNot declared
configure_sun_profileShow the user an interactive form for the four values every other tool assumes — Fitzpatrick skin type, fraction of skin exposed, age and target IU — with the minutes they need updating live. Use this when those values are unknown, when the user wants to change them, or instead of asking for them one at a time in conversation. Whatever the user picks comes back into the conversation; pass those values explicitly to the other tools afterwards.Not declaredNot declaredNot declaredNot declared
estimate_sun_sessionEstimate a sun session's outcome: 'I was (or will be) out N minutes — how much vitamin D did I make?' plus 'how long before I'd burn?' for the profile. Takes a start time (defaults to the day's best hour) and session minutes; returns estimated IU (with the physiological cap), average UV and clear-sky minutes-to-sunburn. Use for any 'how much did I get / can I get in X minutes' or 'how long without burning' question.Not declaredNot declaredNot declaredNot declared
get_current_statusWhether RIGHT NOW is a good moment for vitamin D synthesis at a location, using live Open-Meteo UV/cloud data when reachable (clear-sky model otherwise): current UV index, minutes needed now, and when today's window opens or closes.Not declaredNot declaredNot declaredNot declared
get_my_citiesThe signed-in user's current city and favorite cities with coordinates and timezones, ready to feed into the public tools. Requires OAuth (scope profile:read).Not declaredNot declaredNot declaredNot declared
get_my_historyThe signed-in user's sun history from the app's calendar: which recent days had viable sun, which they confirmed going outside, and their current streak. Covers the calendar days from `from` to `to`; records exist only for days the app was open, so a date missing from `records` means nothing was measured, not that the sun was insufficient. Requires OAuth (scope history:read). Renders as a calendar the user can tap to confirm a day.Not declaredNot declaredNot declaredNot declared
get_my_profileThe signed-in user's saved Vitamin D profile: skin type, exposed-skin default, age, target IU and their current city. Requires connecting with OAuth (scope profile:read). Call this FIRST for any personal question, then pass its values to the public tools instead of asking the user.Not declaredNot declaredNot declaredNot declared
get_sun_forecastThe NEXT FEW DAYS of vitamin D sun at a location, using the live Open-Meteo forecast: per day the peak UV, average cloud cover, the synthesis window and the minutes needed, plus bestDay. Use this for any question spanning several days — 'which day this week should I go out', 'will it be better tomorrow', 'when's my next chance' — instead of calling get_vitamin_d_window once per date.Not declaredNot declaredNot declaredNot declared
get_sun_timesSunrise, sunset, solar noon, civil dawn/dusk, morning AND evening golden hour, and day length (with day-over-day trend) for a location and date. Handles midnight sun and polar night. Pure sun times — for vitamin D questions use the vitamin_d tools instead.Not declaredNot declaredNot declaredNot declared
get_vitamin_d_windowThe solar vitamin D synthesis window for ONE specific day at a location, for a personal profile: when UV is strong enough (index ≥ 3), the best hour, the clear-sky minutes needed to reach the target IU, and (with atTime) the minutes at the specific hour the user plans to go out. Returns synthesisPossible=false when the sun never gets high enough that day. Only for single-day questions — for months, seasons or 'when during the year', call get_vitamin_d_year instead of calling this once per date.Not declaredNot declaredNot declaredNot declared
get_vitamin_d_yearThe WHOLE YEAR of solar vitamin D for a location in a single call. monthsWithSun lists every month with at least one viable day (season edges count as partial months, see byMonth[].viableDays); solidMonths lists months where most days work; exactViableSpan gives the exact season boundaries; summary carries per-year aggregates for comparing places. Use this for any question about months, seasons, winter/summer or 'when during the year can I…' — never probe individual dates with get_vitamin_d_window for that.Not declaredNot declaredNot declaredNot declared
log_sun_sessionSets a day's answer in the signed-in user's history calendar. Three values: confirmed=true (went out, the default), confirmed=false (had usable sun but stayed in), confirmed=null (clear the answer). Defaults to today. Requires OAuth (scope history:write).Not declaredNot declaredNot declaredNot declared
search_cityFind a city in the app's database by name (any of the app's six languages works) and get its coordinates, IANA timezone and elevation — feed those into the other tools.Not declaredNot declaredNot declaredNot declared
set_history_locationRecords where the signed-in user was over a range of past days, so their history stops assuming. Use it when the user corrects a stretch — get_my_history marks inherited days with `locationAssumed`, and the history calendar offers those stretches for correction. Pass a cityId from search_city, or lat/lon. Changes only the location: whether they went outside that day is untouched. Requires OAuth (scope history:write).Not declaredNot declaredNot declaredNot declared
update_my_profileSave the signed-in user's synthesis profile — skin type, exposed-skin fraction, age and target IU — to their account, so the app and every later call use them. Requires OAuth (scope profile:write). Only these four values are writable; favourites, cities and history are not.Not declaredNot declaredNot declaredNot declared

Details

Registry status
Active
Published
Jul 27, 2026
Updated
Jul 27, 2026
Categories (suggested)
Data and analyticsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing