{"name":"io.github.almostjacked/health-mcp","slug":"almostjacked-health-mcp","title":"Health Data (your own Supabase)","description":"Your health data (weight, macros, weigh-ins) as MCP tools — in your own Supabase, zero custody.","url":"https://mcp.market/server/almostjacked-health-mcp","rating":null,"grade":"D","score":51,"certified":false,"status":"active","category":"data","tags":["data"],"presence":{"score":18,"stars":0,"forks":0,"downloads_week":31,"last_push_at":"2026-08-07T17:24:28.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/almostjacked/health-mcp","website":null,"version":"0.1.3","remotes":[],"packages":[{"registryType":"npm","identifier":"@almostjacked/health-mcp","version":"0.1.3","transport":{"type":"stdio"},"environmentVariables":[{"description":"Your Supabase project URL","isRequired":true,"name":"SUPABASE_URL"},{"description":"A secret API key for your project","isRequired":true,"isSecret":true,"name":"SUPABASE_SECRET_KEY"}]}],"tools":[{"name":"get_daily_summary","description":"All metrics for one day (default: the most recent day with any data): totals plus every weigh-in/measurement.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_energy_inputs","description":"Daily (date, weight, kcal) entries for days having BOTH a calorie total and at least one weigh-in \\u2014 shaped exactly for the fitness-tools `adaptive-tdee` tool. Pass the returned `entries` array straight through to compute measured TDEE. Weight is the day's average in lb.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_recent","description":"Rows for the last N days (default 30), optionally one metric. Daily totals and individual measurements in one date-sorted list.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_schema","description":"The Postgres schema (two tables) and the metric registry (names, units, classes). Call before writing SQL for the query tool.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_stats","description":"Min/max/avg plus a rolling-average series for one metric over a date range. rollup: daily (7-day rolling), weekly, monthly (rolling window = 7 periods). Measurements average multiple samples per day first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_sync_status","description":"Latest date, row count, and days-since-last-entry per metric. Use to detect a stalled daily sync before trusting an analysis. days_since is measured against the UTC calendar date, so a healthy daily sync typically reads 1\\u20132 (never 0 in the evening US time); treat 3+ as a stalled sync.","write_action":false,"price_micros":0,"input_schema":null},{"name":"query","description":"Escape hatch: run one read-only SQL statement (SELECT or WITH\\u2026SELECT) against the schema from get_schema. Writes/DDL/PRAGMA are rejected; LIMIT 500 enforced when absent. Use for anything the other tools can't answer.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":51,"grade":"D","scanned_at":"2026-09-23T21:43:06.275Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T21:43:06.254Z","components":{"code":{"score":8,"max":25,"notes":["7 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 47 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"exec.shell-concat","severity":"high","component":"code","title":"Shell command built from a string (injection risk)","evidence":"dist/functions/health-mcp.ts: …t(metric)}` : \"\"; const t = await exec(`SELECT date::text AS date, metric, value, unit, NULL::text AS timestamp FROM daily_totals WHERE date >= ${lit(cutoff)}${filt}`); const m = await exec(`SEL…"},{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/functions/health-mcp.ts: …ode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"@almostjacked/health-mcp","version":"0.1.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-08-07T16:16:09.971Z","repositoryUrl":"git+https://github.com/almostjacked/health-mcp.git","weeklyDownloads":31}],"repo":{"found":true,"owner":"almostjacked","repo":"health-mcp","archived":false,"pushedAt":"2026-08-07T17:24:28Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/308442193?v=4","ownerCreatedAt":"2026-07-23T15:46:17Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":0,"forks":0,"downloadsWeek":31,"license":"MIT","lastPushAt":"2026-08-07T17:24:28.000Z","score":18}}}},"grade_history":[],"reviews":[]}