> Agent-readable docs index: /llms.txt. Download /docs.zip to grep all markdown files locally.

---
title: "getNodeXml"
sidebarTitle: "getNodeXml"
description: "Get a specific Framer node as XML. You first need to get a node id via getProjectXml or call getSelectedNodesXml instead > IMPORTANT. If you need to recursively read all xml in the Framer project you "
tag: "TOOL"
tagColor: "purple"
gridGap: 30
---

<Aside full>
  <RequestExample>
    ```json lines=false
    {
      "method": "tools/call",
      "params": {
        "name": "getNodeXml",
        "arguments": {
          "nodeId": "string"
        }
      }
    }
    ```
  </RequestExample>
</Aside>

<MCPTool {...{"name":"getNodeXml","description":"Get a specific Framer node as XML. You first need to get a node id via getProjectXml or call getSelectedNodesXml instead\n\n> IMPORTANT. If you need to recursively read all xml in the Framer project you should first read all pages xml, then read all components xml for the components that appear in the pages. Components are a way to encapsulate layers, you still need to call getNodeXml on each instance componentId to see the actual component implementation.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"nodeId":{"type":"string","minLength":1,"description":"The ID of the node to get as XML for, can be a page nodeId, a component componentId or any other XML layer found in a page or component"}},"required":["nodeId"],"additionalProperties":false},"annotations":{"readOnlyHint":true}}} />
