How to integrate Framer MCP with Hermes

Connect Hermes to Framer MCP. Publish your framer project to production, update cms collection items in framer, and more using natural language, with authentication handled for you.

Framer logoFramer
Api Key

Framer is a website builder and design platform for creating responsive sites. Its Server API helps teams manage projects, content, assets, and localization.

156 Tools

Introduction

Hermes is a 24/7 autonomous agent that lives on your computer or server — it remembers what it learns and evolves as your usage grows.

This guide explains the easiest and most robust way to connect your Framer account to Hermes. You can do this through either Composio Connect CLI or Composio Connect MCP. For personal use we recommend the CLI, but you won't go wrong with MCP either.

For exact tool slugs and parameter tables, see the tool catalog in the Composio docs.

Also integrate Framer with

What is Composio Connect?

Composio Connect is a consumer offering that lets anyone plug 1,700+ applications directly into their agent harness — including Hermes. It can:

  • Search and load tools from relevant toolkits on-demand, reducing context usage.
  • Chain multiple tools to accomplish complex workflows via a remote workbench, without excessive back-and-forth with the LLM.
  • Manage app authentication end-to-end with zero manual overhead.

Integrating Framer with Hermes

Using Composio Connect CLI

1. Install the Composio CLI

Run the install script directly, or paste https://composio.dev/hermes into your Hermes chat box to have it installed for you.

bash
curl -fsSL https://composio.dev/install | bash
Hermes authenticating with Composio

2. Authenticate

Once the CLI is installed, ask Hermes to authenticate with Composio.

3. Connect to Framer

Ask your agent to connect to Framer, or simply request any Framer-related task. Hermes will prompt you to authenticate and authorize access.

4. Done. You're all set with a new Framer connection.


Using Composio Connect MCP

1. Get your MCP URL and API Key

Go to dashboard.composio.dev and copy your Connect MCP URL and API key.

Copy MCP URL and API key from Composio dashboard

2. Open the Hermes config file

bash
nano ~/.hermes/config.yaml

3. Add the Composio Connect MCP server

bash
mcp_servers:
  composio:
    url: "https://connect.composio.dev/mcp"
    headers:
      x-consumer-api-key: "YOUR_COMPOSIO_API_KEY"
    connect_timeout: 60
    timeout: 180

Save with Ctrl + O, Enter, then exit with Ctrl + X.

4. Restart your Hermes agent

Once restarted, ask your agent to connect to Framer or request any Framer-related task. It will prompt you to authenticate and authorize access.

5. Done!

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.

Way Forward

With Framer connected, Hermes can now act on your behalf whenever it detects a relevant task or you ask it to.

From here, you can extend Hermes further:

  • Connect more apps: Calendar, Slack, Notion, Linear, and hundreds of others are available through the same Composio Connect setup. Each new integration compounds what Hermes can do for you.
  • Build workflows across tools: Once multiple apps are connected, Hermes can chain actions together — turn an email into a calendar invite, a Slack message into a Linear ticket, or a meeting note into a follow-up draft.
  • Let it learn your patterns: The more you use Hermes, the better it gets at anticipating how you'd handle recurring tasks. Give it feedback on drafts and decisions, and it will adapt.

If you run into trouble or want to share what you've built, join the community or check out the Docs for deeper configuration options.

TOOLS

Supported Tools

Every Framer action and event your agent gets out of the box.

Add Collection Fields

Create or update typed field definitions in a CMS collection.

Add Collection Items

Create or update CMS collection items with typed, tagged field values.

Add Component Instance

Insert a component instance by component module URL.

Add Detached Component Layers

Insert editable component layers using the current editor selection/context without retaining an instance.

Add Enum Case

Add a case to an enum field or enum variable.

Add Image

Upload one image and insert it using the current editor selection/context.

Add Images

Upload and insert multiple images using the current editor selection/context.

Add Managed Collection Items

Add or synchronize managed CMS items with typed, tagged field values and stable external IDs.

Add Redirects

Create project redirects, or update existing redirects by including their IDs; all changes take effect on a subsequent publish.

Add SVG

Insert an SVG on the canvas or replace the selected SVG.

Add Text

Insert text using the current editor selection/context.

Apply Agent Changes

Execute Framer's agent command DSL on a project page.

Clone Design Page

Clone a design page by node ID, optionally requesting a name.

Clone Node

Clone a node by ID.

Clone Web Page

Clone a web page by node ID, optionally requesting a route path.

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.

Create Branch For Agent

Create an agent branch from the active branch and switch to it.

Create Code File

Create a Framer code file with initial source content.

Create Collection

Create a user-owned CMS collection in the connected Framer project.

Create Color Style

Create a reusable color style in the connected Framer project.

Create Component Node

Create a smart component node with a name.

Create Design Page

Create a design page.

Create Frame Node

Create a frame node, optionally below a parent.

Create Locale

Create a project locale.

Create Managed Collection

Create a plugin-managed CMS collection in the connected project.

Create Text Node

Create a text node, optionally below a parent.

Create Text Style

Create a reusable text style in the connected Framer project.

Create Web Page

Create a web page at a route path.

Delete Branch

Delete an explicit project branch, switching to its base if active.

Delete Branch For Agent

Delete a branch in the agent workflow.

Deploy

Promote an existing Framer deployment to explicit domains or to the project's configured production domains.

Export SVG

Export a node as serialized SVG through Framer's dedicated WebSocket side channel.

Flatten Component Instance For Agent

Replace a component instance with editable local layers.

Get Active Branch

Get the branch currently active for the Framer editor and API session, including its base, contributor state, and creator metadata.

Get Active Branch For Agent

Get metadata for the branch active in the Framer agent session.

Get Agent Context

Get dynamic project context for Framer's agent command and query APIs.

Get Agent System Prompt

Get Framer's static agent prompt, including its command and project-query DSL references.

Get Ancestors For Agent

Get a node's ancestors from its parent through the page root.

Get Branch Changes

Get semantic changes in a branch relative to its base branch.

Get Branch Changes For Agent

Get a summarized changelog for a project branch relative to its base.

Get Branches

Return every project branch, a selected set, or one branch by passing zero, many, or one branch ID.

Get Branches For Agent

List project branches available to the Framer agent session.

Get Canvas Root

Get the root node of the current canvas.

Get Change Contributors

Get contributors who changed the project in an optional version range.

Get Changed Paths

Get page paths added, removed, or modified between the active project version and its previously published version.

Get Children

Get a node's canvas children.

Get Code File

Get one Framer code file by ID or project-relative path.

Get Code Files

List code files and their current contents in the connected Framer project.

Get Code File Version Content

Get the source content of a saved Framer code file version.

Get Code File Versions

List saved versions of a Framer code file.

Get Collection

Get one CMS collection by its node ID.

Get Collection Fields

List all field definitions in a CMS collection, including dividers.

Get Collection Items

List items and typed field values in a CMS collection.

Get Collections

List managed and user-owned CMS collections in the connected Framer project.

Get Color Style

Get one reusable color style by ID.

Get Color Styles

List reusable color styles in the connected Framer project.

Get Current User

Get the Framer user whose identity and project permissions are represented by the connected project API key.

Get Custom Code

Get custom HTML and disabled state for all four project document injection locations.

Get Default Locale

Get the project's default locale.

Get Deployment

Get the latest status snapshot, timestamps, creator, preview URL, and failure stage for one Framer deployment.

Get Deployment Issues

Get optimization warnings and errors for a Framer deployment, including related node IDs when available.

Get Descendant References Of Types For Agent

Get matching style or token nodes referenced by descendants.

Get Descendants Of Types For Agent

Get descendants of a node matching provider-defined node types.

Get Font

Get one available font variant by family, weight, and style.

Get Fonts

List individual font files and variants available to the Framer project.

Get Ground Node For Agent

Get the top-level canvas node containing a node.

Get Locale Languages

List valid locale language codes.

Get Locale Regions

List valid region codes for a language.

Get Locales

List configured non-default locales.

Get Localization Groups

Get localization groups, optionally filtered by IDs or type.

Get Managed Collection Fields

List supported fields in a plugin-managed Framer CMS collection.

Get Managed Collection Item IDs

List external item IDs in a plugin-managed CMS collection.

Get Managed Collections

List plugin-managed CMS collections available to the connected API session.

Get Node

Get a project node by ID.

Get Node For Agent

Get one serialized Framer node and its children by ID.

Get Nodes For Agent

Get serialized Framer nodes and their children by ID.

Get Nodes Of Types For Agent

Get all nodes of selected types on a Framer page without children.

Get Nodes With Attribute

Get project nodes whose node type supports an attribute, whether or not it is set.

Get Nodes With Attribute Set

Get project nodes where a supported attribute has a non-null value.

Get Nodes With Type

Get all nodes of a known class, optionally below a parent node.

Get Parent

Get a node's parent.

Get Parent Node For Agent

Get the direct parent of a node.

Get Project Info

Get the connected Framer project's current identity and legacy migration ID.

Get Publish Info

Get the connected project's current staging and production publication URLs, deployment times, and optimization states.

Get Rect

Get the bounding rectangle of a Framer node.

Get Rect For Agent

Get a node's rounded canvas rectangle.

Get Redirects

List the project's redirects, including source and destination paths and locale expansion behavior.

Get Scope Node For Agent

Get the enclosing page or component scope for a node.

Get Text for Node

Get the plain-text content of a text node by ID.

Get Text Style

Get one reusable text style by ID.

Get Text Styles

List reusable text styles in the connected Framer project.

Get Unpublished Page Changes

List web pages added, updated, or removed since the active branch was last published.

Get Vector Set Items

List vector items in one Framer vector set.

Get Vector Set Item Variables

List customizable variables for one Framer vector-set item.

Get Vector Sets

List vector icon sets available to the connected Framer project.

Join Branch

Join an explicit project branch as a contributor.

Join Branch For Agent

Join a branch as a contributor for agent editing.

Leave Branch

Leave an explicit project branch as a contributor.

Leave Branch For Agent

Leave a branch as a contributor.

List Components For Agent

List project, external, and additional components available to the agent.

List Deployments

List one cursor-controlled page of deployments for the active Framer branch, returning at most 30 records.

List Icon Sets For Agent

List project, external, and additional icon sets available to the agent on the active page.

List Localization Groups Next

List all localization groups from Framer's session-bound iterator.

Make External Component Local For Agent

Copy an external component into the project and optionally replace all instances.

Merge Branch

Merge an explicit source branch into its base or a compatible target.

Merge Branch For Agent

Merge the active agent branch into its base or an explicit target, then switch to the target.

Paginate For Agent

Paginate a complete item list to completion within one Framer WebSocket session and return all results.

Publish

Publish the active Framer branch and return the resulting deployment plus its preview or staging hostnames.

Publish For Agent

Run an agent publish operation, including production deployment when requested.

Query Analytics For Agent

Run an analytics query over an ISO date range.

Query Images For Agent

Search Framer's agent image sources and return candidate images.

Read Component Controls For Agent

Read provider-defined controls for project components on the active page.

Read Icon Set Controls For Agent

Read provider-defined controls for icon sets on the active page.

Read Icons For Agent

Read exact icon names from an icon set on the active page.

Read Layout Template Controls For Agent

Read provider-defined controls for layout templates on the active page.

Read Project For Agent

Execute agent query objects against project state.

Read Shader Controls For Agent

Read provider-defined controls for shaders on the active page.

Remove Code File

Remove a Framer code file.

Remove Collection Fields

Remove one or more fields from a CMS collection.

Remove Collection Items

Remove CMS collection items by item or node ID.

Remove Color Style

Remove a reusable Framer color style.

Remove Enum Case

Remove a case from an enum field or enum variable.

Remove Managed Collection Items

Remove items from a managed CMS collection by external item ID.

Remove Nodes

Remove one or more canvas nodes by ID; pass a one-element list to remove one node.

Remove Redirects

Remove project redirects by ID; unknown IDs are ignored by Framer.

Remove Text Style

Remove a reusable Framer text style.

Rename Branch

Rename an explicit project branch.

Rename Branch For Agent

Rename a branch for the agent workflow.

Rename Code File

Rename a Framer code file.

Replace Text For Agent

Replace exact text within one Framer text node.

Screenshot Node

Capture a node screenshot through Framer's dedicated WebSocket side channel.

Serialize For Agent

Serialize a node with optional depth, attribute, and ancestor filtering.

Serialize Nodes For Agent

Serialize multiple nodes with optional depth, attribute, and ancestor filtering.

Set Code File Content

Replace the source content of a Framer code file.

Set Collection Field Order

Set the display order of fields in a CMS collection.

Set Collection Item Attributes

Update one CMS item's slug, typed fields, locale status, or draft state.

Set Collection Item Order

Set the item order in a CMS collection.

Set Color Style Attributes

Update selected attributes of a reusable Framer color style.

Set Custom Code

Set custom HTML at one Framer document injection location, or clear that location by passing null or omitting HTML.

Set Enum Case Order

Set the case order for an enum field or enum variable.

Set Localization Data

Set localized values and per-locale group status.

Set Managed Collection Fields

Replace and synchronize the typed field schema of a managed CMS collection.

Set Managed Collection Item Order

Set item order in a plugin-managed Framer CMS collection.

Set Node Attributes

Patch editable attributes on a node.

Set Parent

Move a node to a new parent and optional child index.

Set Redirect Order

Set the evaluation and display order of project redirects; unknown redirect IDs are ignored.

Set Text

Set text on the current selection or insert it when appropriate.

Set Text Style Attributes

Update selected attributes of a reusable Framer text style.

Switch Branch

Switch the editor and subsequent edits to an explicit branch.

Switch Branch For Agent

Switch the active branch for agent operations.

Typecheck Code

Type-check source content with Framer's TypeScript service and return diagnostics.

Update Enum Case

Update a case in an enum field or enum variable.

Upload File

Upload one file asset to Framer.

Upload Files

Upload multiple file assets to Framer.

Upload Image

Upload one image to Framer without inserting it on the canvas.

Upload Images

Upload multiple images to Framer without inserting them on the canvas.

FAQ

Frequently asked questions

Start with Framer.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Framer tool your agent needs.Free to start.

Start building