Custom Code Management
Add, review, and manage inline custom scripts on a Webflow site — analytics, tracking pixels, chat widgets, or any custom JavaScript.
Important Note
ALWAYS use Webflow MCP tools for all operations:
- Use Webflow MCP's
webflow_guide_tool to get best practices before any other tool call
- Use Webflow MCP's
data_sites_tool with action list_sites to identify available sites
- Use Webflow MCP's
data_scripts_tool with action list_registered_scripts to list all registered scripts
- Use Webflow MCP's
data_scripts_tool with action list_applied_scripts to list scripts applied to pages
- Use Webflow MCP's
data_scripts_tool with action add_inline_site_script to register a new inline script
- Use Webflow MCP's
data_scripts_tool with action delete_all_site_scripts to remove ALL site scripts (no selective delete)
- Use Webflow MCP's
data_scripts_tool with action get_page_script to get custom code for a specific page
- Use Webflow MCP's
data_scripts_tool with action upsert_page_script to add or update page-level custom code
- Use Webflow MCP's
data_scripts_tool with action delete_all_page_scripts to remove all custom code from a page
- All tool calls must include the required
context parameter (15-25 words, third-person perspective)
Instructions
Phase 1: Discovery
- Call
webflow_guide_tool first — always the first MCP tool call
- Get the site: Use
data_sites_tool with action list_sites. If only one site, use it automatically.
Phase 2: Analysis
- List scripts: Call
list_registered_scripts and list_applied_scripts in parallel
- Check page-level scripts (if relevant): Use
get_page_script for specific pages
- Present findings: Name, version, location (header/footer), registration vs application status
Phase 3: Planning & Confirmation
Before any mutation, present the plan and require explicit confirmation:
- Adding scripts: user must type "add"
- Removing ALL site scripts: user must type "delete all" (warn: no selective delete)
- Page-level changes: user must type "update"
Phase 4: Execution
- Add site script:
add_inline_site_script with displayName, sourceCode, version, location, canCopy
- Remove all site scripts:
delete_all_site_scripts
- Add/update page script:
upsert_page_script
- Remove page scripts:
delete_all_page_scripts
Phase 5: Verification
- Re-list scripts to confirm success
- Report what changed (name, location, version, char count)
- Remind user to publish — suggest using
safe-publish skill
Examples
Example 1: View scripts
User: "What scripts are on my site?"
webflow_guide_tool → data_sites_tool → list_registered_scripts + list_applied_scripts in parallel
- Present summary of all scripts
Example 2: Add Google Tag Manager
User: "Add GTM to my site"
webflow_guide_tool → data_sites_tool → ask for GTM container ID
- Preview script, require "add" →
add_inline_site_script (header, version "1.0.0")
- Verify and remind to publish
Example 3: Remove all scripts
User: "Remove all scripts"
webflow_guide_tool → data_sites_tool → list current scripts
- Warn: removes ALL scripts. Require "delete all" →
delete_all_site_scripts
- Verify and remind to publish
Example 4: Page-specific tracking
User: "Add conversion tracking to my thank-you page"
webflow_guide_tool → data_sites_tool → get_page_script to check existing
- Preview, require "update" →
upsert_page_script
- Verify and remind to publish
Guidelines
webflow_guide_tool always first — before any other MCP tool
- No
<script> tags — Webflow adds them automatically
- Max 10,000 characters per script;
displayName + version must be unique
- Site-level scripts (
add_inline_site_script) apply to all pages; page-level scripts (upsert_page_script) apply to one page
- No selective delete —
delete_all_site_scripts removes everything; always list scripts first so user knows what will be lost
- Hosted/external scripts not available via MCP — inline only
- Recommend header for analytics (GA, GTM); footer for chat widgets and non-critical scripts
- If
displayName + version exists, suggest incrementing the version
- Always remind users to publish after changes
1---2name: webflow-mcp-custom-code-management3description: Add, review, or remove inline custom scripts on a Webflow site (up to 10,000 chars). Use for analytics, tracking pixels, chat widgets, or any custom JavaScript. Also manages page-level scripts.4---5
6# Custom Code Management
7
8Add, review, and manage inline custom scripts on a Webflow site — analytics, tracking pixels, chat widgets, or any custom JavaScript.
9
10## Important Note
11
12**ALWAYS use Webflow MCP tools for all operations:**
13- Use Webflow MCP's `webflow_guide_tool` to get best practices **before any other tool call**
14- Use Webflow MCP's `data_sites_tool` with action `list_sites` to identify available sites
15- Use Webflow MCP's `data_scripts_tool` with action `list_registered_scripts` to list all registered scripts
16- Use Webflow MCP's `data_scripts_tool` with action `list_applied_scripts` to list scripts applied to pages
17- Use Webflow MCP's `data_scripts_tool` with action `add_inline_site_script` to register a new inline script
18- Use Webflow MCP's `data_scripts_tool` with action `delete_all_site_scripts` to remove ALL site scripts (no selective delete)
19- Use Webflow MCP's `data_scripts_tool` with action `get_page_script` to get custom code for a specific page
20- Use Webflow MCP's `data_scripts_tool` with action `upsert_page_script` to add or update page-level custom code
21- Use Webflow MCP's `data_scripts_tool` with action `delete_all_page_scripts` to remove all custom code from a page
22- All tool calls must include the required `context` parameter (15-25 words, third-person perspective)
23
24## Instructions
25
26### Phase 1: Discovery
271. **Call `webflow_guide_tool` first** — always the first MCP tool call
282. **Get the site**: Use `data_sites_tool` with action `list_sites`. If only one site, use it automatically.
29
30### Phase 2: Analysis
313. **List scripts**: Call `list_registered_scripts` and `list_applied_scripts` in parallel
324. **Check page-level scripts** (if relevant): Use `get_page_script` for specific pages
335. **Present findings**: Name, version, location (header/footer), registration vs application status
34
35### Phase 3: Planning & Confirmation
36Before any mutation, present the plan and require explicit confirmation:
37- Adding scripts: user must type **"add"**
38- Removing ALL site scripts: user must type **"delete all"** (warn: no selective delete)
39- Page-level changes: user must type **"update"**
40
41### Phase 4: Execution
426. **Add site script**: `add_inline_site_script` with displayName, sourceCode, version, location, canCopy
437. **Remove all site scripts**: `delete_all_site_scripts`
448. **Add/update page script**: `upsert_page_script`
459. **Remove page scripts**: `delete_all_page_scripts`
46
47### Phase 5: Verification
4810. Re-list scripts to confirm success
4911. Report what changed (name, location, version, char count)
5012. Remind user to publish — suggest using `safe-publish` skill
51
52## Examples
53
54### Example 1: View scripts
55**User:** "What scripts are on my site?"
561. `webflow_guide_tool` → `data_sites_tool` → `list_registered_scripts` + `list_applied_scripts` in parallel
572. Present summary of all scripts
58
59### Example 2: Add Google Tag Manager
60**User:** "Add GTM to my site"
611. `webflow_guide_tool` → `data_sites_tool` → ask for GTM container ID
622. Preview script, require "add" → `add_inline_site_script` (header, version "1.0.0")
633. Verify and remind to publish
64
65### Example 3: Remove all scripts
66**User:** "Remove all scripts"
671. `webflow_guide_tool` → `data_sites_tool` → list current scripts
682. Warn: removes ALL scripts. Require "delete all" → `delete_all_site_scripts`
693. Verify and remind to publish
70
71### Example 4: Page-specific tracking
72**User:** "Add conversion tracking to my thank-you page"
731. `webflow_guide_tool` → `data_sites_tool` → `get_page_script` to check existing
742. Preview, require "update" → `upsert_page_script`
753. Verify and remind to publish
76
77## Guidelines
78
79- **`webflow_guide_tool` always first** — before any other MCP tool
80- **No `<script>` tags** — Webflow adds them automatically
81- **Max 10,000 characters** per script; `displayName` + `version` must be unique
82- **Site-level** scripts (`add_inline_site_script`) apply to all pages; **page-level** scripts (`upsert_page_script`) apply to one page
83- **No selective delete** — `delete_all_site_scripts` removes everything; always list scripts first so user knows what will be lost
84- **Hosted/external scripts** not available via MCP — inline only
85- Recommend **header** for analytics (GA, GTM); **footer** for chat widgets and non-critical scripts
86- If `displayName + version` exists, suggest incrementing the version
87- Always remind users to **publish** after changes