← WebMCP Directory

Tool tree

formless-health.vercel.app

Health & EducationTools verified
Website
A live, agent-editable interface running in your browser.
Explore capabilities
    get_website_summaryAnswer

    Call this first when you connect to the website. Explains what Formless Labs is and how to use its tools.

    View tool JSON
    {
      "name": "get_website_summary",
      "kind": "answer",
      "impl": "imperative",
      "description": "Call this first when you connect to the website. Explains what Formless Labs is and how to use its tools.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    get_website_promptAnswer

    Returns the prompt that governs how the agent should work with this website, capability by capability, naming the tool that delivers each one.

    View tool JSON
    {
      "name": "get_website_prompt",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns the prompt that governs how the agent should work with this website, capability by capability, naming the tool that delivers each one.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    list_project_filesAnswer

    Lists source files in the live WebContainer project with revision, editability, size, and hash.

    View tool JSON
    {
      "name": "list_project_files",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists source files in the live WebContainer project with revision, editability, size, and hash.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    read_project_filesAnswer

    Reads one to twenty UTF-8 source files from the live project. Use list_project_files first.

    View tool JSON
    {
      "name": "read_project_files",
      "kind": "answer",
      "impl": "imperative",
      "description": "Reads one to twenty UTF-8 source files from the live project. Use list_project_files first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "paths": {
            "type": "array",
            "minItems": 1,
            "maxItems": 20,
            "items": {
              "type": "string"
            }
          },
          "revision": {
            "type": "integer",
            "minimum": 0
          }
        },
        "required": [
          "paths"
        ],
        "additionalProperties": false
      }
    }
    apply_project_changesAction

    Atomically writes or deletes editable application files, validates the project, and rolls back failures. Full file contents are required for writes.

    View tool JSON
    {
      "name": "apply_project_changes",
      "kind": "act",
      "impl": "imperative",
      "description": "Atomically writes or deletes editable application files, validates the project, and rolls back failures. Full file contents are required for writes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "changes": {
            "type": "array",
            "minItems": 1,
            "maxItems": 20,
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                },
                "operation": {
                  "type": "string",
                  "enum": [
                    "write",
                    "delete"
                  ]
                },
                "content": {
                  "type": "string"
                }
              },
              "required": [
                "path",
                "operation"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "baseRevision",
          "changes"
        ],
        "additionalProperties": false
      }
    }
    reset_projectAction

    Restores the editable app to the starter snapshot. Call only after the user explicitly requests a reset.

    View tool JSON
    {
      "name": "reset_project",
      "kind": "act",
      "impl": "imperative",
      "description": "Restores the editable app to the starter snapshot. Call only after the user explicitly requests a reset.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "confirm": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "baseRevision",
          "confirm"
        ],
        "additionalProperties": false
      }
    }
    get_ui_elementsAnswer

    Returns the stable IDs and current state of instrumented elements in the live preview.

    View tool JSON
    {
      "name": "get_ui_elements",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns the stable IDs and current state of instrumented elements in the live preview.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    navigate_to_routeAction

    Moves the live preview to one of the routes the app declares. Prefer this over clicking a link: it works even when the navigation control is off-screen, and it cannot miss. Call with no path to list the available routes.

    View tool JSON
    {
      "name": "navigate_to_route",
      "kind": "act",
      "impl": "imperative",
      "description": "Moves the live preview to one of the routes the app declares. Prefer this over clicking a link: it works even when the navigation control is off-screen, and it cannot miss. Call with no path to list the available routes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
    highlight_ui_elementsAction

    Highlights one or more live UI elements, optionally blinks between two colors, and dims or hides everything else in the preview. Set durationSeconds to clear the highlight automatically.

    View tool JSON
    {
      "name": "highlight_ui_elements",
      "kind": "act",
      "impl": "imperative",
      "description": "Highlights one or more live UI elements, optionally blinks between two colors, and dims or hides everything else in the preview. Set durationSeconds to clear the highlight automatically.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "elementIds": {
            "type": "array",
            "minItems": 1,
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9A-Fa-f]{6}$"
          },
          "alternateColor": {
            "type": "string",
            "pattern": "^#[0-9A-Fa-f]{6}$"
          },
          "blinkIntervalMs": {
            "type": "number",
            "minimum": 100,
            "maximum": 5000
          },
          "durationSeconds": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 300
          },
          "restTreatment": {
            "type": "string",
            "enum": [
              "dim",
              "hide"
            ]
          },
          "dimOpacity": {
            "type": "number",
            "minimum": 0.1,
            "maximum": 0.8
          }
        },
        "required": [
          "elementIds",
          "color",
          "restTreatment"
        ],
        "additionalProperties": false
      }
    }
    clear_ui_highlightsAction

    Restores every registered UI element to its normal visual state.

    View tool JSON
    {
      "name": "clear_ui_highlights",
      "kind": "act",
      "impl": "imperative",
      "description": "Restores every registered UI element to its normal visual state.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    poll_user_messagesAnswer

    Returns typed and final speech messages after a monotonic cursor. Poll approximately every two seconds while listening for user input.

    View tool JSON
    {
      "name": "poll_user_messages",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns typed and final speech messages after a monotonic cursor. Poll approximately every two seconds while listening for user input.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "afterId": {
            "type": "integer",
            "minimum": 0,
            "default": 0
          }
        },
        "additionalProperties": false
      }
    }
    speak_textAction

    Speaks text aloud through the page, using the browser's speech synthesizer. Use it to answer a user who is talking rather than typing. Keep each turn to a sentence or two: the call does not return until the utterance finishes. The result lists the available voices, so a later call can pick one by name.

    View tool JSON
    {
      "name": "speak_text",
      "kind": "act",
      "impl": "imperative",
      "description": "Speaks text aloud through the page, using the browser's speech synthesizer. Use it to answer a user who is talking rather than typing. Keep each turn to a sentence or two: the call does not return until the utterance finishes. The result lists the available voices, so a later call can pick one by name.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          "voice": {
            "type": "string"
          },
          "lang": {
            "type": "string"
          },
          "rate": {
            "type": "number",
            "minimum": 0.5,
            "maximum": 2
          },
          "pitch": {
            "type": "number",
            "minimum": 0,
            "maximum": 2
          },
          "volume": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "interrupt": {
            "type": "boolean"
          }
        },
        "required": [
          "text"
        ],
        "additionalProperties": false
      }
    }
    stop_speakingAction

    Immediately stops anything the page is saying and drops whatever is queued behind it.

    View tool JSON
    {
      "name": "stop_speaking",
      "kind": "act",
      "impl": "imperative",
      "description": "Immediately stops anything the page is saying and drops whatever is queued behind it.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    get_health_summaryAnswer

    Summarizes the patient-authorized health record: what it contains, how much of it there is, and over what dates. Call this before any other health tool. Reports whether the record is the user's own, the de-identified sample, or absent.

    View tool JSON
    {
      "name": "get_health_summary",
      "kind": "answer",
      "impl": "imperative",
      "description": "Summarizes the patient-authorized health record: what it contains, how much of it there is, and over what dates. Call this before any other health tool. Reports whether the record is the user's own, the de-identified sample, or absent.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    list_health_recordsAnswer

    Lists items in the health record as dated, titled lines, newest first. Filter by group, free text, status, or a date range, and page with offset. This is the cheap way to find the handful of refs worth reading in full.

    View tool JSON
    {
      "name": "list_health_records",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists items in the health record as dated, titled lines, newest first. Filter by group, free text, status, or a date range, and page with offset. This is the cheap way to find the handful of refs worth reading in full.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "group": {
            "type": "string"
          },
          "query": {
            "type": "string"
          },
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200
          },
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "sort": {
            "type": "string",
            "enum": [
              "date_desc",
              "date_asc",
              "group"
            ]
          }
        },
        "additionalProperties": false
      }
    }
    read_health_recordsAnswer

    Reads the full content of specific health records by ref, as taken from the provider's FHIR API. format "fields" is the labelled human reading, "fhir" is the verbatim resource JSON, and "text" is the prose of a clinical-note file. Give refs from list_health_records, or a group to read its first items.

    View tool JSON
    {
      "name": "read_health_records",
      "kind": "answer",
      "impl": "imperative",
      "description": "Reads the full content of specific health records by ref, as taken from the provider's FHIR API. format \"fields\" is the labelled human reading, \"fhir\" is the verbatim resource JSON, and \"text\" is the prose of a clinical-note file. Give refs from list_health_records, or a group to read its first items.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "refs": {
            "type": "array",
            "minItems": 1,
            "maxItems": 20,
            "items": {
              "type": "string"
            }
          },
          "group": {
            "type": "string"
          },
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          },
          "format": {
            "type": "string",
            "enum": [
              "fields",
              "fhir",
              "text"
            ]
          },
          "textOffset": {
            "type": "integer",
            "minimum": 0
          },
          "maxChars": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100000
          }
        },
        "additionalProperties": false
      }
    }
    list_app_versionsAnswer

    Lists the published versions of this app that anyone can switch to, and reports which one the live preview is currently showing.

    View tool JSON
    {
      "name": "list_app_versions",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists the published versions of this app that anyone can switch to, and reports which one the live preview is currently showing.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    publish_app_versionAction

    Publishes the current editable app as a named version that every visitor can see and load. Publishing is public and permanent until you unpublish it, so ask the user before calling this.

    View tool JSON
    {
      "name": "publish_app_version",
      "kind": "act",
      "impl": "imperative",
      "description": "Publishes the current editable app as a named version that every visitor can see and load. Publishing is public and permanent until you unpublish it, so ask the user before calling this.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 60
          },
          "description": {
            "type": "string",
            "maxLength": 280
          },
          "confirm": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "baseRevision",
          "name",
          "confirm"
        ],
        "additionalProperties": false
      }
    }
    switch_app_versionAction

    Replaces the live preview with a published version. The current working copy is overwritten, so confirm with the user first — publish their unsaved work before switching if they want to keep it.

    View tool JSON
    {
      "name": "switch_app_version",
      "kind": "act",
      "impl": "imperative",
      "description": "Replaces the live preview with a published version. The current working copy is overwritten, so confirm with the user first — publish their unsaved work before switching if they want to keep it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "versionId": {
            "type": "string",
            "pattern": "^[0-9a-f]{16}$"
          },
          "confirm": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "baseRevision",
          "versionId",
          "confirm"
        ],
        "additionalProperties": false
      }
    }