mcpbeat

Vitamind MCP Server

io.github.JaviMaligno/vitamind
answering

Vitamind is answering right now. Last checked 1 min ago. It exposes 15 tools. Last commit 3 Aug 2026.

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

Uptime history 39 hours of history · worst hour 50%
39 hours agonow
57.1%
Uptime 24h
105 of 184 checks
15
Tools
read from the server
477 ms
Response time
average over 24h
1
Stars
last commit 3 Aug 2026

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 1 min ago.

run in your terminal
claude mcp add vitamind --transport http https://getvitamind.app/api/mcp-auth/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "vitamind": {
      "url": "https://getvitamind.app/api/mcp-auth/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.vitamind]
url = "https://getvitamind.app/api/mcp-auth/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "vitamind": {
      "url": "https://getvitamind.app/api/mcp-auth/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "vitamind": {
      "url": "https://getvitamind.app/api/mcp-auth/mcp"
    }
  }
}

This endpoint answered with an authorization challenge — the server is running, but you need an API key or OAuth to use it.

Available tools 15

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

history
get_my_history
The 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.
set_history_location
Records 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).
profile
get_my_profile
The 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.
update_my_profile
Save 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.
sun
get_sun_forecast
The 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.
get_sun_times
Sunrise, 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.
vitamin
get_vitamin_d_window
The 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.
get_vitamin_d_year
The 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.
cities
get_my_cities
The 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).
city
search_city
Find 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.
compare
compare_vitamin_d_year
Compare 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.
configure
configure_sun_profile
Show 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.
current
get_current_status
Whether 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.
estimate
estimate_sun_session
Estimate 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.
log
log_sun_session
Sets 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).

Endpoints

URLTransportStateLatencyChecked
https://getvitamind.app/api/mcp/mcp streamable-http answering 180 ms 1 min ago
https://getvitamind.app/api/mcp-auth/mcp streamable-http needs key 1378 ms 2 min ago

Vitamind — questions

Answers built from our own checks of this server.

What can Vitamind do?
It exposes 15 tools, read directly from the server on our last check. Among them: compare_vitamin_d_year, configure_sun_profile, estimate_sun_session, get_current_status, get_my_cities, get_my_history and 9 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Vitamind mostly used for?
Its tools cluster around profile, sun and vitamin. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Vitamind working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 105 of 184 checks got a reply (57.1%), average response time 477 ms. The bar chart above shows every period we have measured.
How do I connect Vitamind?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address. You will need your own key or an OAuth login: it refuses anonymous clients.
Does Vitamind need an API key?
Yes. Every time we knock, Vitamind answers with an authorization challenge instead of its tool list — that is how we know it is running and gated rather than broken. Bring your own credentials and it will talk.
How fast is Vitamind?
It answers our handshake in 477 ms on average, which is faster than 24% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is Vitamind open source?
Yes — written in TypeScript, 1 stars on GitHub and 4 open issues. The source link is on this page, so you can read exactly what it does with your data before you connect it.