# How to connect Framer with ChatGPT

```json
{
  "title": "How to connect Framer with ChatGPT",
  "toolkit": "Framer",
  "toolkit_slug": "framer",
  "framework": "ChatGPT",
  "framework_slug": "chatgpt",
  "url": "https://composio.dev/toolkits/framer/framework/chatgpt",
  "markdown_url": "https://composio.dev/toolkits/framer/framework/chatgpt.md",
  "updated_at": "2026-11-06T07:05:19.963Z"
}
```

## Introduction

### How to connect Framer MCP with ChatGPT
[ChatGPT](https://chatgpt.com/) can take action across your apps and files, stay with a project for hours, and turn a goal into finished materials like sheets, slides, and docs, not just answers.
In this guide, I will explain the easiest and most secure way to connect your Framer account to ChatGPT via Composio Connect, so it can publish projects, manage CMS content, update locales, edit assets, and inspect site data through natural language commands without ever putting your account credentials at risk.
For exact tool slugs and parameter tables, see the [tool catalog in the Composio docs](https://docs.composio.dev/toolkits/framer).

## Also integrate Framer with

- [Claude Cowork](https://composio.dev/toolkits/framer/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/framer/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/framer/framework/atomic-agent)

## TL;DR

### Why use Composio over default connectors?
- Apps with read and write access. Default connectors mostly can read your data. Composio's Framer integration lets ChatGPT take actions like creating drafts, sending updates, labeling records, and more.
- 1,700+ SaaS toolkits out of the box. Composio gives you instant access to a vast catalog of pre-built connectors, from Gmail and Slack to Notion, Linear, and Salesforce.
- One MCP server for every app. Connect any of your applications on demand through a single endpoint, rather than juggling a separate server for each app.
- Smart, context-aware tool loading. Unlike traditional MCP servers that dump every available tool into the LLM context window, Composio searches for and loads only the tools relevant to the task at hand.
- Cross-app automation. Chain actions across multiple apps in a single run - fetch a thread, summarize it in Notion, and post highlights to Slack without leaving the conversation.

## Connect Framer to ChatGPT

### Prerequisites
- A ChatGPT account. We will use the [ChatGPT desktop app](https://openai.com/chatgpt/download/), and the steps are the same on the web.
- Access to the Framer workspace you want to connect.
- [Composio plugin](https://dashboard.composio.dev/login?cta_placement=toolkit-framework-chatgpt-composio-connect&next=%2F~%2Forg%2Fconnect%2Fclients%2Fchatgpt).
Note: Composio connects through OAuth. You will be asked to sign in and approve specific permissions. Review the permission screen carefully if you are using a work account.
### Step-by-step: Connect Framer to ChatGPT
### 1. Install the Composio plugin
Click the button. ChatGPT opens the Composio plugin page. Click Install plugin.
[Install in ChatGPT](https://chatgpt.com/plugins/plugin_asdk_app_6a58503580c08191b78cc5bdaf4eba6e)
You can also find it inside ChatGPT: go to Settings, open Plugins, search the marketplace for Composio, and click Install plugin.
### 2. Authenticate
After you install, ChatGPT asks you to authenticate with Composio. Log in and click Allow access to authorize ChatGPT to use your Composio account.
### 3. Start using Composio
That is it. Composio tools are now available in ChatGPT. Type @Composio followed by your request, for example @Composio find unread Framer messages and summarize them, and it will run the actions you authorize. On first use it asks you to authorize Framer.
### Option 2: Add Composio as an MCP server
If you cannot use the plugin marketplace, add Composio as a custom MCP server instead.
### 1. Open the MCP settings
In ChatGPT, go to Settings and open the Plugins section. Inside the Plugins page, click the MCP tab.
### 2. Add the server
Click Add server. In the Name field enter Composio, for Type select Streamable HTTP, and in the URL field paste the Composio MCP server URL:

```bash
https://connect.composio.dev/mcp
```

## What is the Framer MCP server, and what's possible with it?

The Framer MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Framer account. It provides structured and secure access to your Framer projects, pages, canvas content, CMS collections, branches, code, styles, locales, and deployments, so your agent can create and edit pages, manage CMS content, add design elements and assets, work with branches, and deploy sites on your behalf.
- Pages and canvas creation: Have your agent create web pages and design pages, add frames and text, insert images and SVGs, clone existing pages or nodes, and build component-based layouts.
- CMS content management: Let the agent create collections, define collection fields, add or synchronize collection items, and organize structured content for your Framer site.
- Agent-led design updates: Direct your agent to apply Framer agent changes, create reusable color and text styles, add component instances, and turn component instances into editable layers.
- Branch-based project work: Instruct your agent to create branches for design work, inspect branch changes, identify the active branch, and delete branches when they are no longer needed.
- Publishing and project setup: Have your agent create code files and locales, add redirects, and deploy an existing Framer deployment to configured production domains or specified domains.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `FRAMER_ADD_COLLECTION_FIELDS` | Add Collection Fields | Create or update typed field definitions in a CMS collection. |
| `FRAMER_ADD_COLLECTION_ITEMS` | Add Collection Items | Create or update CMS collection items with typed, tagged field values. |
| `FRAMER_ADD_COMPONENT_INSTANCE` | Add Component Instance | Insert a component instance by component module URL. |
| `FRAMER_ADD_DETACHED_COMPONENT_LAYERS` | Add Detached Component Layers | Insert editable component layers using the current editor selection/context without retaining an instance. This action does not accept a target page. Attributes are forwarded to Framer, but Framer currently ignores them when producing the detached output and returns the component defaults instead. |
| `FRAMER_ADD_ENUM_CASE` | Add Enum Case | Add a case to an enum field or enum variable. |
| `FRAMER_ADD_IMAGE` | Add Image | Upload one image and insert it using the current editor selection/context. This action does not accept a target page. |
| `FRAMER_ADD_IMAGES` | Add Images | Upload and insert multiple images using the current editor selection/context. This action does not accept a target page. |
| `FRAMER_ADD_MANAGED_COLLECTION_ITEMS` | Add Managed Collection Items | Add or synchronize managed CMS items with typed, tagged field values and stable external IDs. |
| `FRAMER_ADD_REDIRECTS` | Add Redirects | Create project redirects, or update existing redirects by including their IDs; all changes take effect on a subsequent publish. |
| `FRAMER_ADD_SVG` | Add SVG | Insert an SVG on the canvas or replace the selected SVG. |
| `FRAMER_ADD_TEXT` | Add Text | Insert text using the current editor selection/context. This action does not accept a target page. |
| `FRAMER_APPLY_AGENT_CHANGES` | Apply Agent Changes | Execute Framer's agent command DSL on a project page. |
| `FRAMER_CLONE_DESIGN_PAGE` | Clone Design Page | Clone a design page by node ID, optionally requesting a name. |
| `FRAMER_CLONE_NODE` | Clone Node | Clone a node by ID. |
| `FRAMER_CLONE_WEB_PAGE` | Clone Web Page | Clone a web page by node ID, optionally requesting a route path. |
| `FRAMER_CREATE_BRANCH` | Create Branch | Create a Framer project branch from the active branch or a specified base, then switch the editor and API session to the new branch. |
| `FRAMER_CREATE_BRANCH_FOR_AGENT` | Create Branch For Agent | Create an agent branch from the active branch and switch to it. |
| `FRAMER_CREATE_CODE_FILE` | Create Code File | Create a Framer code file with initial source content. |
| `FRAMER_CREATE_COLLECTION` | Create Collection | Create a user-owned CMS collection in the connected Framer project. |
| `FRAMER_CREATE_COLOR_STYLE` | Create Color Style | Create a reusable color style in the connected Framer project. |
| `FRAMER_CREATE_COMPONENT_NODE` | Create Component Node | Create a smart component node with a name. |
| `FRAMER_CREATE_DESIGN_PAGE` | Create Design Page | Create a design page. |
| `FRAMER_CREATE_FRAME_NODE` | Create Frame Node | Create a frame node, optionally below a parent. |
| `FRAMER_CREATE_LOCALE` | Create Locale | Create a project locale. |
| `FRAMER_CREATE_MANAGED_COLLECTION` | Create Managed Collection | Create a plugin-managed CMS collection in the connected project. |
| `FRAMER_CREATE_TEXT_NODE` | Create Text Node | Create a text node, optionally below a parent. |
| `FRAMER_CREATE_TEXT_STYLE` | Create Text Style | Create a reusable text style in the connected Framer project. |
| `FRAMER_CREATE_WEB_PAGE` | Create Web Page | Create a web page at a route path. |
| `FRAMER_DELETE_BRANCH` | Delete Branch | Delete an explicit project branch, switching to its base if active. |
| `FRAMER_DELETE_BRANCH_FOR_AGENT` | Delete Branch For Agent | Delete a branch in the agent workflow. |
| `FRAMER_DEPLOY` | Deploy | Promote an existing Framer deployment to explicit domains or to the project's configured production domains. |
| `FRAMER_EXPORT_SVG` | Export SVG | Export a node as serialized SVG through Framer's dedicated WebSocket side channel. |
| `FRAMER_FLATTEN_COMPONENT_INSTANCE_FOR_AGENT` | Flatten Component Instance For Agent | Replace a component instance with editable local layers. |
| `FRAMER_GET_ACTIVE_BRANCH` | Get Active Branch | Get the branch currently active for the Framer editor and API session, including its base, contributor state, and creator metadata. |
| `FRAMER_GET_ACTIVE_BRANCH_FOR_AGENT` | Get Active Branch For Agent | Get metadata for the branch active in the Framer agent session. |
| `FRAMER_GET_AGENT_CONTEXT` | Get Agent Context | Get dynamic project context for Framer's agent command and query APIs. |
| `FRAMER_GET_AGENT_SYSTEM_PROMPT` | Get Agent System Prompt | Get Framer's static agent prompt, including its command and project-query DSL references. |
| `FRAMER_GET_ANCESTORS_FOR_AGENT` | Get Ancestors For Agent | Get a node's ancestors from its parent through the page root. |
| `FRAMER_GET_BRANCH_CHANGES` | Get Branch Changes | Get semantic changes in a branch relative to its base branch. |
| `FRAMER_GET_BRANCH_CHANGES_FOR_AGENT` | Get Branch Changes For Agent | Get a summarized changelog for a project branch relative to its base. |
| `FRAMER_GET_BRANCHES` | Get Branches | Return every project branch, a selected set, or one branch by passing zero, many, or one branch ID. |
| `FRAMER_GET_BRANCHES_FOR_AGENT` | Get Branches For Agent | List project branches available to the Framer agent session. |
| `FRAMER_GET_CANVAS_ROOT` | Get Canvas Root | Get the root node of the current canvas. |
| `FRAMER_GET_CHANGE_CONTRIBUTORS` | Get Change Contributors | Get contributors who changed the project in an optional version range. |
| `FRAMER_GET_CHANGED_PATHS` | Get Changed Paths | Get page paths added, removed, or modified between the active project version and its previously published version. |
| `FRAMER_GET_CHILDREN` | Get Children | Get a node's canvas children. |
| `FRAMER_GET_CODE_FILE` | Get Code File | Get one Framer code file by ID or project-relative path. |
| `FRAMER_GET_CODE_FILES` | Get Code Files | List code files and their current contents in the connected Framer project. |
| `FRAMER_GET_CODE_FILE_VERSION_CONTENT` | Get Code File Version Content | Get the source content of a saved Framer code file version. |
| `FRAMER_GET_CODE_FILE_VERSIONS` | Get Code File Versions | List saved versions of a Framer code file. |
| `FRAMER_GET_COLLECTION` | Get Collection | Get one CMS collection by its node ID. |
| `FRAMER_GET_COLLECTION_FIELDS` | Get Collection Fields | List all field definitions in a CMS collection, including dividers. |
| `FRAMER_GET_COLLECTION_ITEMS` | Get Collection Items | List items and typed field values in a CMS collection. |
| `FRAMER_GET_COLLECTIONS` | Get Collections | List managed and user-owned CMS collections in the connected Framer project. |
| `FRAMER_GET_COLOR_STYLE` | Get Color Style | Get one reusable color style by ID. |
| `FRAMER_GET_COLOR_STYLES` | Get Color Styles | List reusable color styles in the connected Framer project. |
| `FRAMER_GET_CURRENT_USER` | Get Current User | Get the Framer user whose identity and project permissions are represented by the connected project API key. |
| `FRAMER_GET_CUSTOM_CODE` | Get Custom Code | Get custom HTML and disabled state for all four project document injection locations. |
| `FRAMER_GET_DEFAULT_LOCALE` | Get Default Locale | Get the project's default locale. |
| `FRAMER_GET_DEPLOYMENT` | Get Deployment | Get the latest status snapshot, timestamps, creator, preview URL, and failure stage for one Framer deployment. |
| `FRAMER_GET_DEPLOYMENT_ISSUES` | Get Deployment Issues | Get optimization warnings and errors for a Framer deployment, including related node IDs when available. |
| `FRAMER_GET_DESCENDANT_REFERENCES_OF_TYPES_FOR_AGENT` | Get Descendant References Of Types For Agent | Get matching style or token nodes referenced by descendants. |
| `FRAMER_GET_DESCENDANTS_OF_TYPES_FOR_AGENT` | Get Descendants Of Types For Agent | Get descendants of a node matching provider-defined node types. |
| `FRAMER_GET_FONT` | Get Font | Get one available font variant by family, weight, and style. |
| `FRAMER_GET_FONTS` | Get Fonts | List individual font files and variants available to the Framer project. |
| `FRAMER_GET_GROUND_NODE_FOR_AGENT` | Get Ground Node For Agent | Get the top-level canvas node containing a node. |
| `FRAMER_GET_LOCALE_LANGUAGES` | Get Locale Languages | List valid locale language codes. |
| `FRAMER_GET_LOCALE_REGIONS` | Get Locale Regions | List valid region codes for a language. |
| `FRAMER_GET_LOCALES` | Get Locales | List configured non-default locales. |
| `FRAMER_GET_LOCALIZATION_GROUPS` | Get Localization Groups | Get localization groups, optionally filtered by IDs or type. |
| `FRAMER_GET_MANAGED_COLLECTION_FIELDS` | Get Managed Collection Fields | List supported fields in a plugin-managed Framer CMS collection. |
| `FRAMER_GET_MANAGED_COLLECTION_ITEM_IDS` | Get Managed Collection Item IDs | List external item IDs in a plugin-managed CMS collection. |
| `FRAMER_GET_MANAGED_COLLECTIONS` | Get Managed Collections | List plugin-managed CMS collections available to the connected API session. |
| `FRAMER_GET_NODE` | Get Node | Get a project node by ID. |
| `FRAMER_GET_NODE_FOR_AGENT` | Get Node For Agent | Get one serialized Framer node and its children by ID. |
| `FRAMER_GET_NODES_FOR_AGENT` | Get Nodes For Agent | Get serialized Framer nodes and their children by ID. |
| `FRAMER_GET_NODES_OF_TYPES_FOR_AGENT` | Get Nodes Of Types For Agent | Get all nodes of selected types on a Framer page without children. |
| `FRAMER_GET_NODES_WITH_ATTRIBUTE` | Get Nodes With Attribute | Get project nodes whose node type supports an attribute, whether or not it is set. |
| `FRAMER_GET_NODES_WITH_ATTRIBUTE_SET` | Get Nodes With Attribute Set | Get project nodes where a supported attribute has a non-null value. |
| `FRAMER_GET_NODES_WITH_TYPE` | Get Nodes With Type | Get all nodes of a known class, optionally below a parent node. |
| `FRAMER_GET_PARENT` | Get Parent | Get a node's parent. |
| `FRAMER_GET_PARENT_NODE_FOR_AGENT` | Get Parent Node For Agent | Get the direct parent of a node. |
| `FRAMER_GET_PROJECT_INFO` | Get Project Info | Get the connected Framer project's current identity and legacy migration ID. |
| `FRAMER_GET_PUBLISH_INFO` | Get Publish Info | Get the connected project's current staging and production publication URLs, deployment times, and optimization states. |
| `FRAMER_GET_RECT` | Get Rect | Get the bounding rectangle of a Framer node. |
| `FRAMER_GET_RECT_FOR_AGENT` | Get Rect For Agent | Get a node's rounded canvas rectangle. |
| `FRAMER_GET_REDIRECTS` | Get Redirects | List the project's redirects, including source and destination paths and locale expansion behavior. |
| `FRAMER_GET_SCOPE_NODE_FOR_AGENT` | Get Scope Node For Agent | Get the enclosing page or component scope for a node. |
| `FRAMER_GET_TEXT_FOR_NODE` | Get Text for Node | Get the plain-text content of a text node by ID. |
| `FRAMER_GET_TEXT_STYLE` | Get Text Style | Get one reusable text style by ID. |
| `FRAMER_GET_TEXT_STYLES` | Get Text Styles | List reusable text styles in the connected Framer project. |
| `FRAMER_GET_UNPUBLISHED_PAGE_CHANGES` | Get Unpublished Page Changes | List web pages added, updated, or removed since the active branch was last published. |
| `FRAMER_GET_VECTOR_SET_ITEMS` | Get Vector Set Items | List vector items in one Framer vector set. |
| `FRAMER_GET_VECTOR_SET_ITEM_VARIABLES` | Get Vector Set Item Variables | List customizable variables for one Framer vector-set item. |
| `FRAMER_GET_VECTOR_SETS` | Get Vector Sets | List vector icon sets available to the connected Framer project. |
| `FRAMER_JOIN_BRANCH` | Join Branch | Join an explicit project branch as a contributor. |
| `FRAMER_JOIN_BRANCH_FOR_AGENT` | Join Branch For Agent | Join a branch as a contributor for agent editing. |
| `FRAMER_LEAVE_BRANCH` | Leave Branch | Leave an explicit project branch as a contributor. |
| `FRAMER_LEAVE_BRANCH_FOR_AGENT` | Leave Branch For Agent | Leave a branch as a contributor. |
| `FRAMER_LIST_COMPONENTS_FOR_AGENT` | List Components For Agent | List project, external, and additional components available to the agent. |
| `FRAMER_LIST_DEPLOYMENTS` | List Deployments | List one cursor-controlled page of deployments for the active Framer branch, returning at most 30 records. |
| `FRAMER_LIST_ICON_SETS_FOR_AGENT` | List Icon Sets For Agent | List project, external, and additional icon sets available to the agent on the active page. |
| `FRAMER_LIST_LOCALIZATION_GROUPS_NEXT` | List Localization Groups Next | List all localization groups from Framer's session-bound iterator. The action consumes every cursor on one WebSocket connection and returns the complete list. |
| `FRAMER_MAKE_EXTERNAL_COMPONENT_LOCAL_FOR_AGENT` | Make External Component Local For Agent | Copy an external component into the project and optionally replace all instances. |
| `FRAMER_MERGE_BRANCH` | Merge Branch | Merge an explicit source branch into its base or a compatible target. |
| `FRAMER_MERGE_BRANCH_FOR_AGENT` | Merge Branch For Agent | Merge the active agent branch into its base or an explicit target, then switch to the target. |
| `FRAMER_PAGINATE_FOR_AGENT` | Paginate For Agent | Paginate a complete item list to completion within one Framer WebSocket session and return all results. |
| `FRAMER_PUBLISH` | Publish | Publish the active Framer branch and return the resulting deployment plus its preview or staging hostnames. |
| `FRAMER_PUBLISH_FOR_AGENT` | Publish For Agent | Run an agent publish operation, including production deployment when requested. |
| `FRAMER_QUERY_ANALYTICS_FOR_AGENT` | Query Analytics For Agent | Run an analytics query over an ISO date range. |
| `FRAMER_QUERY_IMAGES_FOR_AGENT` | Query Images For Agent | Search Framer's agent image sources and return candidate images. |
| `FRAMER_READ_COMPONENT_CONTROLS_FOR_AGENT` | Read Component Controls For Agent | Read provider-defined controls for project components on the active page. |
| `FRAMER_READ_ICON_SET_CONTROLS_FOR_AGENT` | Read Icon Set Controls For Agent | Read provider-defined controls for icon sets on the active page. |
| `FRAMER_READ_ICONS_FOR_AGENT` | Read Icons For Agent | Read exact icon names from an icon set on the active page. |
| `FRAMER_READ_LAYOUT_TEMPLATE_CONTROLS_FOR_AGENT` | Read Layout Template Controls For Agent | Read provider-defined controls for layout templates on the active page. |
| `FRAMER_READ_PROJECT_FOR_AGENT` | Read Project For Agent | Execute agent query objects against project state. |
| `FRAMER_READ_SHADER_CONTROLS_FOR_AGENT` | Read Shader Controls For Agent | Read provider-defined controls for shaders on the active page. |
| `FRAMER_REMOVE_CODE_FILE` | Remove Code File | Remove a Framer code file. |
| `FRAMER_REMOVE_COLLECTION_FIELDS` | Remove Collection Fields | Remove one or more fields from a CMS collection. |
| `FRAMER_REMOVE_COLLECTION_ITEMS` | Remove Collection Items | Remove CMS collection items by item or node ID. |
| `FRAMER_REMOVE_COLOR_STYLE` | Remove Color Style | Remove a reusable Framer color style. |
| `FRAMER_REMOVE_ENUM_CASE` | Remove Enum Case | Remove a case from an enum field or enum variable. |
| `FRAMER_REMOVE_MANAGED_COLLECTION_ITEMS` | Remove Managed Collection Items | Remove items from a managed CMS collection by external item ID. |
| `FRAMER_REMOVE_NODES` | Remove Nodes | Remove one or more canvas nodes by ID; pass a one-element list to remove one node. |
| `FRAMER_REMOVE_REDIRECTS` | Remove Redirects | Remove project redirects by ID; unknown IDs are ignored by Framer. |
| `FRAMER_REMOVE_TEXT_STYLE` | Remove Text Style | Remove a reusable Framer text style. |
| `FRAMER_RENAME_BRANCH` | Rename Branch | Rename an explicit project branch. |
| `FRAMER_RENAME_BRANCH_FOR_AGENT` | Rename Branch For Agent | Rename a branch for the agent workflow. |
| `FRAMER_RENAME_CODE_FILE` | Rename Code File | Rename a Framer code file. |
| `FRAMER_REPLACE_TEXT_FOR_AGENT` | Replace Text For Agent | Replace exact text within one Framer text node. |
| `FRAMER_SCREENSHOT_NODE` | Screenshot Node | Capture a node screenshot through Framer's dedicated WebSocket side channel. |
| `FRAMER_SERIALIZE_FOR_AGENT` | Serialize For Agent | Serialize a node with optional depth, attribute, and ancestor filtering. |
| `FRAMER_SERIALIZE_NODES_FOR_AGENT` | Serialize Nodes For Agent | Serialize multiple nodes with optional depth, attribute, and ancestor filtering. |
| `FRAMER_SET_CODE_FILE_CONTENT` | Set Code File Content | Replace the source content of a Framer code file. |
| `FRAMER_SET_COLLECTION_FIELD_ORDER` | Set Collection Field Order | Set the display order of fields in a CMS collection. |
| `FRAMER_SET_COLLECTION_ITEM_ATTRIBUTES` | Set Collection Item Attributes | Update one CMS item's slug, typed fields, locale status, or draft state. |
| `FRAMER_SET_COLLECTION_ITEM_ORDER` | Set Collection Item Order | Set the item order in a CMS collection. |
| `FRAMER_SET_COLOR_STYLE_ATTRIBUTES` | Set Color Style Attributes | Update selected attributes of a reusable Framer color style. |
| `FRAMER_SET_CUSTOM_CODE` | Set Custom Code | Set custom HTML at one Framer document injection location, or clear that location by passing null or omitting HTML. |
| `FRAMER_SET_ENUM_CASE_ORDER` | Set Enum Case Order | Set the case order for an enum field or enum variable. |
| `FRAMER_SET_LOCALIZATION_DATA` | Set Localization Data | Set localized values and per-locale group status. The result includes per-value and per-group status update errors. |
| `FRAMER_SET_MANAGED_COLLECTION_FIELDS` | Set Managed Collection Fields | Replace and synchronize the typed field schema of a managed CMS collection. |
| `FRAMER_SET_MANAGED_COLLECTION_ITEM_ORDER` | Set Managed Collection Item Order | Set item order in a plugin-managed Framer CMS collection. |
| `FRAMER_SET_NODE_ATTRIBUTES` | Set Node Attributes | Patch editable attributes on a node. Only explicitly supplied attributes are sent. |
| `FRAMER_SET_PARENT` | Set Parent | Move a node to a new parent and optional child index. |
| `FRAMER_SET_REDIRECT_ORDER` | Set Redirect Order | Set the evaluation and display order of project redirects; unknown redirect IDs are ignored. |
| `FRAMER_SET_TEXT` | Set Text | Set text on the current selection or insert it when appropriate. |
| `FRAMER_SET_TEXT_STYLE_ATTRIBUTES` | Set Text Style Attributes | Update selected attributes of a reusable Framer text style. |
| `FRAMER_SWITCH_BRANCH` | Switch Branch | Switch the editor and subsequent edits to an explicit branch. |
| `FRAMER_SWITCH_BRANCH_FOR_AGENT` | Switch Branch For Agent | Switch the active branch for agent operations. |
| `FRAMER_TYPECHECK_CODE` | Typecheck Code | Type-check source content with Framer's TypeScript service and return diagnostics. |
| `FRAMER_UPDATE_ENUM_CASE` | Update Enum Case | Update a case in an enum field or enum variable. |
| `FRAMER_UPLOAD_FILE` | Upload File | Upload one file asset to Framer. |
| `FRAMER_UPLOAD_FILES` | Upload Files | Upload multiple file assets to Framer. |
| `FRAMER_UPLOAD_IMAGE` | Upload Image | Upload one image to Framer without inserting it on the canvas. |
| `FRAMER_UPLOAD_IMAGES` | Upload Images | Upload multiple images to Framer without inserting them on the canvas. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

Once connected, ChatGPT can access the Framer MCP server via Composio to run actions that you authorize, directly in your workspace.

## Complete Code

None listed.

## How to build Framer MCP Agent with another framework

- [Claude Cowork](https://composio.dev/toolkits/framer/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/framer/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/framer/framework/atomic-agent)

## Related Toolkits

- [Figma](https://composio.dev/toolkits/figma) - Figma is a collaborative interface design tool for teams and individuals. It streamlines design workflows with real-time collaboration and easy sharing.
- [Abyssale](https://composio.dev/toolkits/abyssale) - Abyssale is a creative automation platform for generating images, videos, GIFs, PDFs, and HTML5 content programmatically. It streamlines and scales visual content production for marketing, design, and operations teams.
- [Alttext ai](https://composio.dev/toolkits/alttext_ai) - AltText.ai is a service that generates alt text for images automatically. It helps boost accessibility and SEO for your visual content.
- [Are.na](https://composio.dev/toolkits/arena) - Are.na is a creative research platform for collecting images, links, notes, and ideas in channels. Use it to organize inspiration, build knowledge maps, and connect research across projects.
- [Bannerbear](https://composio.dev/toolkits/bannerbear) - Bannerbear is an API-driven platform for generating images and videos automatically at scale. It helps businesses create custom graphics, social visuals, and marketing assets using powerful templates.
- [Bannerbite](https://composio.dev/toolkits/bannerbite) - Bannerbite is a creative automation platform for generating images and videos from reusable projects and templates. It helps teams produce on-brand visual assets faster without rebuilding designs from scratch.
- [BeatAPI](https://composio.dev/toolkits/beatapi) - BeatAPI is an asynchronous API platform for AI image, video, and music workflows. It enables scalable generation, video analysis, uploads, and ecommerce video pipelines.
- [Builder.io](https://composio.dev/toolkits/builder_io) - Builder.io is a visual development platform for managing content, models, assets, and Space configuration. Use it to ship editable digital experiences faster without waiting on every code change.
- [Canva](https://composio.dev/toolkits/canva) - Canva is a drag-and-drop design suite for creating professional graphics, presentations, and marketing materials. It makes it easy for anyone to design with beautiful templates and a vast library of elements.
- [Canva MCP](https://composio.dev/toolkits/canva_mcp) - Canva MCP is Canva's remote MCP server for accessing designs and content. It centralizes design assets and enables programmatic design workflows.
- [Claid ai](https://composio.dev/toolkits/claid_ai) - Claid.ai delivers AI-driven image editing APIs for tasks like background removal, upscaling, and color correction. It helps automate and enhance image workflows with powerful, developer-friendly tools.
- [Cloudinary](https://composio.dev/toolkits/cloudinary) - Cloudinary is a cloud-based platform for managing, uploading, and transforming images and videos. It streamlines media workflows and delivers optimized assets globally.
- [Clueso MCP](https://composio.dev/toolkits/clueso_mcp) - Clueso is a product video and documentation platform for creating polished visual content. It brings video editing, voiceovers, captions, animations, and exports into one hosted workspace.
- [Contentdrips](https://composio.dev/toolkits/contentdrips) - Contentdrips is an asynchronous rendering API for branded graphics and carousels. It turns reusable templates into on-brand social visuals at scale.
- [Creatomate](https://composio.dev/toolkits/creatomate) - Creatomate is an API for generating automated videos, images, GIFs, and reusable media templates. Use it to turn structured data into polished visual content at scale.
- [Cults](https://composio.dev/toolkits/cults) - Cults is a digital marketplace for 3D printing models, connecting designers and makers. It lets creators share, sell, and discover a huge variety of printable designs easily.
- [DeepImage](https://composio.dev/toolkits/deepimage) - DeepImage is an AI-powered image enhancer and upscaler. Get higher-quality images with just a few clicks.
- [Dreamstudio](https://composio.dev/toolkits/dreamstudio) - DreamStudio is Stability AI’s platform for generating and editing images with AI. It lets you easily turn ideas into stunning visuals, fast.
- [Dribbble](https://composio.dev/toolkits/dribbble) - Dribbble is a design community and publishing platform for managing shots, projects, and attachments. Use it to showcase work, collect feedback, and organize creative designs.
- [Dynamic Mockups](https://composio.dev/toolkits/dynamic_mockups) - Dynamic Mockups is an API platform for generating product mockups, rendering templates, and managing visual asset catalogs. Use it to automate high-quality product visuals, AI images, and motion assets at scale.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Framer MCP?

With a standalone Framer MCP server, the agents and LLMs can only access a fixed set of Framer tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Framer and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with ChatGPT?

Yes, you can. ChatGPT fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Framer tools.

### Can I manage the permissions and scopes for Framer while using Tool Router?

Yes, absolutely. You can configure which Framer scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Framer data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
