mcp-registry/io.github.javimaligno/vitamind · v1.0.0
As of 2026-10-24 11:09 UTC, the Javimaligno Vitamind MCP server is down with a Glimind reliability score of 38/100 (grade F). Over the last 30 days it answered 99.8% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 25.4 hours.
Know when the sun can make vitamin D where you are, for your skin type. Live UV data.
Point your MCP client at this streamable-http endpoint: https://getvitamind.app/api/mcp/mcp
The endpoint did not complete an MCP handshake.
Check the URL, TLS certificate and that the server answers a JSON-RPC "initialize" POST. How to fix →
15 of 15 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →
2 tool(s) look like they change state (create/send/delete/pay…) but declare no destructiveHint.
Set annotations {"readOnlyHint": false, "destructiveHint": true|false, "idempotentHint": …}. Clients use these to ask the user before a side effect and to auto-approve safe reads. How to fix →
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.javimaligno%2Fvitamind/fixes
{
"name": "compare_vitamin_d_year",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"places"
],
"properties": {
"age": {
"type": "number",
"maximum": 120,
"minimum": 0,
"description": "Age in years (synthesis declines with age); omit for adult baseline"
},
"places": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude in decimal degrees"
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude in decimal degrees"
},
"name": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "How to label this place in the comparison"
},
"timezone": {
"type": "string",
"maxLength": 64,
"description": "IANA timezone like 'Europe/Madrid'. Strongly recommended — without it all times are UTC"
},
"elevationM": {
"type": "number",
"maximum": 6000,
"minimum": -100,
"description": "Ground elevation in metres (UV rises ~8%/km); default sea level"
}
},
"additionalProperties": false
},
"maxItems": 5,
"minItems": 2,
"description": "The places to compare, 2 to 5"
},
"skinType": {
"type": "integer",
"maximum": 6,
"minimum": 1,
"description": "Fitzpatrick skin type 1 (very fair) to 6 (very dark); default 3"
},
"targetIU": {
"type": "number",
"maximum": 10000,
"minimum": 100,
"description": "Vitamin D target per session in IU; default 1000"
},
"exposedSkinFraction": {
"type": "number",
"maximum": 1,
"minimum": 0.05,
"description": "Skin exposed: 0.10 face+hands, 0.18 face+arms, 0.25 t-shirt+shorts (default), 0.40 swimsuit"
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "estimate_sun_session",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"lat",
"lon",
"minutes"
],
"properties": {
"age": {
"type": "number",
"maximum": 120,
"minimum": 0,
"description": "Age in years (synthesis declines with age); omit for adult baseline"
},
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude in decimal degrees"
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude in decimal degrees"
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date as YYYY-MM-DD; defaults to today"
},
"minutes": {
"type": "number",
"maximum": 600,
"minimum": 1,
"description": "Session length in minutes"
},
"skinType": {
"type": "integer",
"maximum": 6,
"minimum": 1,
"description": "Fitzpatrick skin type 1 (very fair) to 6 (very dark); default 3"
},
"timezone": {
"type": "string",
"maxLength": 64,
"description": "IANA timezone like 'Europe/Madrid'. Strongly recommended — without it all times are UTC"
},
"startTime": {
"type": "string",
"pattern": "^\\d{1,2}:\\d{2}$",
"description": "Local HH:MM the session starts; defaults to the day's best hour"
},
"elevationM": {
"type": "number",
"maximum": 6000,
"minimum": -100,
"description": "Ground elevation in metres (UV rises ~8%/km); default sea level"
},
"exposedSkinFraction": {
"type": "number",
"maximum": 1,
"minimum": 0.05,
"description": "Skin exposed: 0.10 face+hands, 0.18 face+arms, 0.25 t-shirt+shorts (default), 0.40 swimsuit"
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "get_current_status",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"lat",
"lon"
],
"properties": {
"age": {
"type": "number",
"maximum": 120,
"minimum": 0,
"description": "Age in years (synthesis declines with age); omit for adult baseline"
},
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude in decimal degrees"
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude in decimal degrees"
},
"skinType": {
"type": "integer",
"maximum": 6,
"minimum": 1,
"description": "Fitzpatrick skin type 1 (very fair) to 6 (very dark); default 3"
},
"targetIU": {
"type": "number",
"maximum": 10000,
"minimum": 100,
"description": "Vitamin D target per session in IU; default 1000"
},
"timezone": {
"type": "string",
"maxLength": 64,
"description": "IANA timezone like 'Europe/Madrid'. Strongly recommended — without it all times are UTC"
},
"elevationM": {
"type": "number",
"maximum": 6000,
"minimum": -100,
"description": "Ground elevation in metres (UV rises ~8%/km); default sea level"
},
"exposedSkinFraction": {
"type": "number",
"maximum": 1,
"minimum": 0.05,
"description": "Skin exposed: 0.10 face+hands, 0.18 face+arms, 0.25 t-shirt+shorts (default), 0.40 swimsuit"
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.javimaligno/vitamind"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.github.javimaligno/vitamind"}) over MCP.
get_vitamin_d_window ~562 tokenscompare_vitamin_d_year ~533 tokensestimate_sun_session ~530 tokensget_vitamin_d_year ~525 tokensget_sun_forecast ~483 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fio.github.javimaligno%2Fvitamind?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.github.javimaligno%2Fvitamind?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.javimaligno%2Fvitamind.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.javimaligno%2Fvitamind.svg :target: https://glimind.com/server/mcp-registry%2Fio.github.javimaligno%2Fvitamind?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:aa44adab89ab536e…, first seen 2026-10-17, included at leaf 9384 of 59,866. Version history · verify what your client received.
Compare: most reliable weather servers · most reliable other servers · most reliable health servers · most reliable data servers · most reliable search servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-24 11:09 UTC, the Javimaligno Vitamind MCP server is down with a Glimind reliability score of 38/100 (grade F). Over the last 30 days it answered 99.8% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 25.4 hours.
Javimaligno Vitamind MCP server advertises 15 tools, including compare_vitamin_d_year, configure_sun_profile, estimate_sun_session, get_current_status, get_my_cities.
Point your MCP client at this streamable-http endpoint: https://getvitamind.app/api/mcp/mcp
Glimind scanned all 15 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.