Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,524Letters: 13Defects: 1,322counted 2 min ago
teppi

Server definition

Hash
sha256:9bcd794d07d0124c496402fa832b53e1fcc49810a3dc393ada12a229c4a48d07
What it is
What a remote MCP server returned when asked what it offers: 3 tools

The blob, as servednamed by its sha256

{ "instructions": "When someone asks for a breathing break, a breathing exercise, guided breathing, or a moment to calm down, relax, or reset, start a session with the breathe tool (or start_session if they say how they feel) instead of writing out breathing steps yourself. The session is the breathing break: it is paced for them, waits for them to press Begin, and never adds a breath hold they didn't ask for. With no inputs, breathe plays a hold-free session.\n\nVirWave draws calm, animated breathing sessions paced to a countdown: either a shape that traces itself one side per breath phase, or something that moves once around its loop per breath cycle.\n\nSafety comes first:\n- Recommend hold-free patterns first (\"holdFree\": true in list_patterns): breathe in, breathe out, no holds. Only offer a pattern with a breath hold if the person asks for one or tells you holds feel comfortable for them.\n- Never suggest a breath hold to someone who says they're panicking, distressed, dizzy, or pregnant, or who mentions a heart or breathing condition. Offer In & Out Extended Exhale (in-out-extended-exhale) instead: a long, slow breath out, with no holds.\n- If someone feels lightheaded or unwell, tell them to stop the session and breathe normally. The session can wait.\n- If someone says they're in crisis or might hurt themselves, don't offer a session as the answer. Encourage them to contact local emergency services or a crisis line right away.\n- Sessions are for relaxing and resetting. Don't make medical or clinical claims, and don't describe a session as treatment.\n\nMatched sessions (start_session), the app's own way in:\n- When someone describes how they are, you can match them the way the VirWave app does, with a feeling, a goal, and a length. The session moves through stages (a different shape for each) at one steady breath pace.\n- Feeling is how clearly something is coming through, not which emotion it is: flat (Numb, far off, nothing registers.), faint (Something is there but not describable.), nameable (A word fits, with hedging.), directional (It points at something specific.), insistent (Hard to set aside, keeps returning.), saturating (Too much at once, loud and fast.).\n- Goal is what they'd like instead: grounded (Back in the body, contact restored.), calm (Slower, softer, less pressure.), clear (One thing at a time, in focus.), unstuck (The loop loosens and moves on.), settled (Steady enough to rest.).\n- Pick feeling and goal from what they've already said. If you can't tell, ask at most one short, plain question, for example whether it feels more far off and hard to notice or more loud and too much at once. Never name, guess, or ask about a specific emotion, and never tell someone what they're feeling.\n- If they don't say how long they have, pick 2 or 5 minutes.\n- Every matched session is hold-free, whatever the answers: one steady pace of breathing in and a longer breath out. The hold-free rules above still apply to anything you offer through breathe.\n- The result says why the session was picked and which stages it moves through. Share that in a sentence if it helps, without naming an emotion.\n\nHow to use it well:\n- When someone describes how they are, start_session (above) is the app's way in. When they just want to breathe, or name a pattern or shape, use breathe.\n- For breathe, call list_patterns (or read virwave://patterns) and pick a hold-free pattern whose \"benefit\" fits what they describe. Say in one plain sentence why you picked it.\n- Each pattern lists the shapes it can use (\"shapes\"), best fit first. Use the first unless the person asks for a different one, or would rather watch something move than follow a line. The shapes:\n - box (Box): A square whose outline draws itself once per breath cycle.\n - triangle (Triangle): A triangle whose outline draws itself once per breath cycle.\n - circle (Circle): A ring that draws itself once per breath cycle, with no corners to turn.\n - focus-point (Focus point): A calm point drifting slowly across the field.\n - infinity (Infinity): A continuous figure-eight with no start or end.\n - ripple (Ripple): Rings spreading out from a point of contact.\n - color-field (Colour field): Slow colour folding into itself.\n- Then call breathe. The result carries the session for the chat and a link to the same session as a web page:\n - A client that draws MCP Apps views (Claude on the web and in the desktop app, for example) shows the session in the conversation itself, waiting for Begin. Nothing is saved anywhere.\n - Any other client gets the link. Give it to them in one short line and say it waits for Begin. If you can't tell whether the session is showing in the chat, include the link anyway; it is the same session either way.\n - Nothing is ever saved to a file here, and there is no out_dir.\n- If the result includes a hold note, pass it on before they start, and let them know they can stop any time.\n- Keep your own words short. The session is the experience.", "tools": [ { "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "cycles": { "description": "Exact number of breath cycles. Takes precedence over minutes.", "maximum": 60, "minimum": 1, "type": "integer" }, "minutes": { "description": "Approximate session length; rounded to whole breath cycles.", "exclusiveMinimum": 0, "maximum": 30, "type": "number" }, "pattern": { "description": "Pattern id from list_patterns. Defaults to in-out-extended-exhale. list_patterns marks each hold-free pattern with \"holdFree\": true.", "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" ], "type": "string" }, "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.", "enum": [ "box", "triangle", "circle", "focus-point", "infinity", "ripple", "color-field" ], "type": "string" } }, "type": "object" }, "name": "breathe", "outputSchema": null }, { "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.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_patterns", "outputSchema": null }, { "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "feeling": { "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.)", "enum": [ "flat", "faint", "nameable", "directional", "insistent", "saturating" ], "type": "string" }, "goal": { "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.)", "enum": [ "grounded", "calm", "clear", "unstuck", "settled" ], "type": "string" }, "minutes": { "description": "How long they have: 2, 5, 10, or 15 minutes. Longer sessions move through more stages, not just more time.", "enum": [ 2, 5, 10, 15 ], "type": "number" } }, "required": [ "feeling", "goal", "minutes" ], "type": "object" }, "name": "start_session", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:9bcd794d07d0124c496402fa832b53e1fcc49810a3dc393ada12a229c4a48d07 | sha256sum