← WebMCP Directory

Tool tree

weave-webmcp.vercel.app

Developer ToolsTools verified
Website
A visual website builder where a person and an AI agent author the same site through WebMCP. Structured context, reviewable change proposals, and a human approval gate before anything ships.
Explore capabilities
    weave_get_contextAction

    Read the structured state of the website being edited: project and page, current revision, the human’s selection, the ordered list of page sections with their semantic types, a bounded element tree with stable ids, any proposals awaiting human review, and the actions currently available. Re-read this after the human edits the page — the revision number changes whenever the project does, and a proposal built against an old revision will be refused.

    View tool JSON
    {
      "name": "weave_get_context",
      "kind": "act",
      "impl": "imperative",
      "description": "Read the structured state of the website being edited: project and page, current revision, the human’s selection, the ordered list of page sections with their semantic types, a bounded element tree with stable ids, any proposals awaiting human review, and the actions currently available. Re-read this after the human edits the page — the revision number changes whenever the project does, and a proposal built against an old revision will be refused.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/app/"
    }
    weave_add_sectionAction

    Add a complete, professionally designed section to the current page from WEAVE’s section library. The section lands after the given element, or at the end of the page by default, and every element inside it is immediately editable by the human and by weave_update_element.

    View tool JSON
    {
      "name": "weave_add_section",
      "kind": "act",
      "impl": "imperative",
      "description": "Add a complete, professionally designed section to the current page from WEAVE’s section library. The section lands after the given element, or at the end of the page by default, and every element inside it is immediately editable by the human and by weave_update_element.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "section_type": {
            "type": "string",
            "enum": [
              "header",
              "hero",
              "features",
              "products",
              "testimonials",
              "pricing",
              "faq",
              "cta",
              "contact",
              "footer"
            ],
            "description": "Which kind of section to add."
          },
          "after_element_id": {
            "type": "string",
            "description": "Id of the section to insert after. Defaults to the end of the page."
          }
        },
        "required": [
          "section_type"
        ],
        "additionalProperties": false
      },
      "page": "/app/"
    }
    weave_propose_changesAction

    Propose several related edits as ONE reviewable change, instead of applying them one at a time. Use this for any request that touches more than one element — rewriting a hero, restructuring a page, adding and then populating a section. The proposal is shown to the human, who can edit individual values, skip parts of it, apply it or reject it; accepted operations then commit together as one undoable revision. Nothing changes on the page until the human applies it. The proposal is pinned to the current revision and is refused if the human edits the page first. Each operation is an object with an "op" field: {"op":"update_text","target":ELEMENT_ID,"value":TEXT} · {"op":"rename","target":ELEMENT_ID,"name":TEXT} · {"op":"update_style","target":ELEMENT_ID,"styles":{CSS}} · {"op":"update_attrs","target":ELEMENT_ID,"attrs":{HTML_ATTRS}} · {"op":"set_visible","target":ELEMENT_ID,"visible":BOOL} · {"op":"move","target":ELEMENT_ID,"index":N} or {"op":"move","target":ELEMENT_ID,"parent":ELEMENT_ID,"index":N} · {"op":"add_section","sectionType":ONE_OF(header|hero|features|products|testimonials|pricing|faq|cta|contact|footer),"afterElementId":ELEMENT_ID} · {"op":"delete","target":ELEMENT_ID}

    View tool JSON
    {
      "name": "weave_propose_changes",
      "kind": "act",
      "impl": "imperative",
      "description": "Propose several related edits as ONE reviewable change, instead of applying them one at a time. Use this for any request that touches more than one element — rewriting a hero, restructuring a page, adding and then populating a section. The proposal is shown to the human, who can edit individual values, skip parts of it, apply it or reject it; accepted operations then commit together as one undoable revision. Nothing changes on the page until the human applies it. The proposal is pinned to the current revision and is refused if the human edits the page first. Each operation is an object with an \"op\" field: {\"op\":\"update_text\",\"target\":ELEMENT_ID,\"value\":TEXT} · {\"op\":\"rename\",\"target\":ELEMENT_ID,\"name\":TEXT} · {\"op\":\"update_style\",\"target\":ELEMENT_ID,\"styles\":{CSS}} · {\"op\":\"update_attrs\",\"target\":ELEMENT_ID,\"attrs\":{HTML_ATTRS}} · {\"op\":\"set_visible\",\"target\":ELEMENT_ID,\"visible\":BOOL} · {\"op\":\"move\",\"target\":ELEMENT_ID,\"index\":N} or {\"op\":\"move\",\"target\":ELEMENT_ID,\"parent\":ELEMENT_ID,\"index\":N} · {\"op\":\"add_section\",\"sectionType\":ONE_OF(header|hero|features|products|testimonials|pricing|faq|cta|contact|footer),\"afterElementId\":ELEMENT_ID} · {\"op\":\"delete\",\"target\":ELEMENT_ID}",
      "inputSchema": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "string",
            "description": "One line stating the intent, shown to the human as the proposal title."
          },
          "operations": {
            "type": "array",
            "description": "The edits to propose, in the order they should apply.",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "summary",
          "operations"
        ],
        "additionalProperties": false
      },
      "page": "/app/"
    }
    weave_validate_siteAction

    Check the current page for problems that would make it hard for people or agents to use: images without alternative text, links and buttons with no destination, unnamed or empty sections, sections with no recognisable type, empty text, and missing page metadata. Returns each finding with the element id it refers to, plus an explainable agent-readiness score out of 100.

    View tool JSON
    {
      "name": "weave_validate_site",
      "kind": "act",
      "impl": "imperative",
      "description": "Check the current page for problems that would make it hard for people or agents to use: images without alternative text, links and buttons with no destination, unnamed or empty sections, sections with no recognisable type, empty text, and missing page metadata. Returns each finding with the element id it refers to, plus an explainable agent-readiness score out of 100.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/app/"
    }
    weave_publish_siteAction

    Ask the human to publish the site. This never publishes on its own: it opens an approval card in the WEAVE Agent panel showing the revision and what changed, and only the human’s explicit approval runs the publish. Poll weave_get_context to see whether the request is still awaiting approval.

    View tool JSON
    {
      "name": "weave_publish_site",
      "kind": "act",
      "impl": "imperative",
      "description": "Ask the human to publish the site. This never publishes on its own: it opens an approval card in the WEAVE Agent panel showing the revision and what changed, and only the human’s explicit approval runs the publish. Poll weave_get_context to see whether the request is still awaiting approval.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "note": {
            "type": "string",
            "description": "Optional message shown to the human with the request."
          }
        },
        "additionalProperties": false
      },
      "page": "/app/"
    }