{"name":"io.github.virwave/virwave-breathe","slug":"virwave-breathe","title":"VirWave Breathe","description":"Calm, animated breathing sessions paced to your breath. Runs locally and collects nothing.","url":"https://mcp.market/server/virwave-breathe","rating":null,"grade":"B","score":82,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":34,"stars":0,"forks":0,"downloads_week":143,"last_push_at":"2026-09-24T00:01:43.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T11:16:08.140Z","last_ok_at":"2026-11-04T11:16:08.140Z","latency_ms":247},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/virwave/virwave-breathe","website":"https://virwave.com","version":"1.2.0","remotes":[{"type":"streamable-http","url":"https://xswebtvkueusdaeboizp.supabase.co/functions/v1/breathe"}],"packages":[{"registryType":"npm","identifier":"virwave-breathe","version":"1.2.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"auto (default) shows the session in the chat when the client supports MCP Apps, and opens the browser otherwise. on always answers for the chat view. off never does.","default":"auto","name":"VIRWAVE_INLINE"},{"description":"Set to true to also save the session page when the session is shown in the chat.","default":"false","name":"VIRWAVE_SAVE_COPY"},{"description":"Used when the session is not shown in the chat. Set to false to stop new sessions opening in the default browser. The file path is returned either way.","default":"true","name":"VIRWAVE_OPEN_BROWSER"},{"description":"Folder for session pages. Defaults to a VirWave Breathe folder in the system temp directory.","name":"VIRWAVE_SAVE_DIR"}]}],"tools":[{"name":"breathe","description":"Creates an animated VirWave breathing session the person can follow with their eyes. Invoke it when someone asks for a breathing break, a breathing exercise, guided breathing, or a moment to calm down, relax, or reset: the visual session is the breathing break. In a client that supports MCP Apps (Claude on the web and in the desktop app, for example), the session appears in the chat itself. The result also carries a link to the same session as a web page, for any client that cannot draw it there. Either way the session opens at rest and starts when the person presses Begin, so nothing moves without their say-so. With no inputs, it plays the default Circle 4-8 Breathing session, which has no breath holds.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"pattern":{"description":"Pattern id from list_patterns. Defaults to in-out-extended-exhale. list_patterns marks each hold-free pattern with \"holdFree\": true.","type":"string","enum":["in-out-equal-4","in-out-slow-5","in-out-extended-exhale","in-out-quick-2","in-hold-out-equal-4","in-hold-out-extended-exhale","in-hold-out-quick-2","box-equal-4","box-quick-3","4-7-8-signature"]},"shape":{"description":"Shape to draw. Each pattern lists the shapes it can use; defaults to the pattern's first. box: A square whose outline draws itself once per breath cycle. triangle: A triangle whose outline draws itself once per breath cycle. circle: A ring that draws itself once per breath cycle, with no corners to turn. focus-point: A calm point drifting slowly across the field. infinity: A continuous figure-eight with no start or end. ripple: Rings spreading out from a point of contact. color-field: Slow colour folding into itself.","type":"string","enum":["box","triangle","circle","focus-point","infinity","ripple","color-field"]},"minutes":{"description":"Approximate session length; rounded to whole breath cycles.","type":"number","exclusiveMinimum":0,"maximum":30},"cycles":{"description":"Exact number of breath cycles. Takes precedence over minutes.","type":"integer","minimum":1,"maximum":60}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"list_patterns","description":"Lists the VirWave breathing patterns this server can play: phases and seconds, what each rhythm is good for, which shapes can draw it, whether it is hold-free, and any safety note about breath holds. Hold-free patterns are listed first.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"start_session","description":"Matches a VirWave session the way the app's entry flow does: how clearly a feeling is coming through, what they'd like instead, and how long they have. Invoke it when someone says how they are feeling, or what they would like to feel instead, and wants a breathing session that fits. The session moves through stages (arrive, the matched core, close), each with its own shape, at one steady breath pace, and ends at the chosen length. In a client that supports MCP Apps (Claude on the web and in the desktop app, for example), the session appears in the chat itself. The result also carries a link to the same session as a web page, for any client that cannot draw it there. Either way the session waits for Begin, and the result says why it was picked and which stages it has. Every matched session is hold-free: breathe in, a longer breath out.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"feeling":{"type":"string","enum":["flat","faint","nameable","directional","insistent","saturating"],"description":"How the feeling is coming through: how clearly, not which feeling it is. The options describe how clear the signal is, and none of them names an emotion. flat (Flat / no signal: Numb, far off, nothing registers.) faint (Faint trace: Something is there but not describable.) nameable (Nameable: A word fits, with hedging.) directional (Directional: It points at something specific.) insistent (Insistent: Hard to set aside, keeps returning.) saturating (Saturating: Too much at once, loud and fast.)"},"goal":{"type":"string","enum":["grounded","calm","clear","unstuck","settled"],"description":"What they'd like instead. grounded (Grounded: Back in the body, contact restored.) calm (Calm: Slower, softer, less pressure.) clear (Clear: One thing at a time, in focus.) unstuck (Unstuck: The loop loosens and moves on.) settled (Settled: Steady enough to rest.)"},"minutes":{"type":"number","enum":[2,5,10,15],"description":"How long they have: 2, 5, 10, or 15 minutes. Longer sessions move through more stages, not just more time."}},"required":["feeling","goal","minutes"],"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":82,"grade":"B","scanned_at":"2026-09-24T05:03:36.871Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T05:03:36.852Z","components":{"code":{"score":20,"max":25,"notes":["4 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1071ms"]},"poisoning":{"score":15,"max":15,"notes":["3 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/hosted.js: …ode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…"}],"inputs":{"probes":[{"url":"https://xswebtvkueusdaeboizp.supabase.co/functions/v1/breathe","reachable":true,"authRequired":false,"latencyMs":1071,"serverInfo":{"name":"virwave-breathe","version":"1.2.0"}}],"packages":[{"registryType":"npm","identifier":"virwave-breathe","version":"1.2.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":0,"publishedAt":"2026-09-24T00:11:23.513Z","repositoryUrl":"git+https://github.com/virwave/virwave-breathe.git","weeklyDownloads":143}],"repo":{"found":true,"owner":"virwave","repo":"virwave-breathe","archived":false,"pushedAt":"2026-09-24T00:01:43Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/154301197?v=4","ownerCreatedAt":"2023-12-19T05:01:13Z","license":"MIT"},"icon":{"url":"https://virwave.com/assets/favicon.png","source":"site","width":1024,"height":1024},"presence":{"stars":0,"forks":0,"downloadsWeek":143,"license":"MIT","lastPushAt":"2026-09-24T00:01:43.000Z","score":34}}}},"grade_history":[],"reviews":[]}