Add a widget
add_widgetAdd a widget that is not just a URL: section headings, text, newsletter signup, contact form, services, offers, events, map, gallery, Q&A and more. Check list_widget_types for the props each type takes. Types: link (Link), text (Section heading), label (Text), image (Image), youtube (YouTube video), vimeo (Vimeo video), spotify (Spotify), soundcloud (SoundCloud), apple-music (Apple Music), deezer (Deezer), audio (Audio), gallery (Gallery), newsletter (Email signup), contact-form (Contact form), services (Services), offer-card (Product), event-card (Event), experience (Experience), goals-tracker (Goal tracking), qr-card (QR code), whatsapp (WhatsApp), telegram (Telegram), latest-posts (Latest posts), map (Map), github (GitHub), google-calendar (Google Calendar).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"type": "<type>"
},
"name": "add_widget"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Which page: "home" (the default) or a subpage slug from list_pages. | |
| size | No | Tile size on the 8-column desktop grid: small 2×2 (quarter row), wide 4×2 (half row), tall 2×4, large 4×4, banner 8×2 (full row). Phones use a 4-column grid, so wide/large/banner fill the phone width. | |
| type | Yes | Widget type from list_widget_types. | |
| props | No | Props for this type (see list_widget_types). For text and section headings pass {"content": "…"}. | |
| position | No | Where it goes in reading order: "top", "bottom" (default), "after:<widget id>" or "before:<widget id>". "top" puts it right under the name and bio. |