Integrations

Model Context Protocol (MCP)

Robolly's Model Context Protocol (MCP) server connects compatible AI assistants directly to your Robolly account. After connecting it, you can ask an assistant to browse your templates, import designs from the template gallery, create or update templates, and render images, PDFs, or videos.

The Robolly MCP server runs remotely, so there is nothing to download or host.

Before you start

You will need:

  1. A Robolly account with API access.
  2. Your Robolly API key from Account settings.
  3. An MCP client that supports Streamable HTTP servers and custom HTTP headers.

Use these connection details:

SettingValue
Server namerobolly
TransportStreamable HTTP
URLhttps://api.robolly.com/mcp
AuthenticationAuthorization: Bearer YOUR_API_KEY

Your API key gives the connected assistant access to your Robolly organization. Keep it secret and do not commit it to source control or paste it into a shared configuration.

Robolly currently authenticates MCP connections with an API key, not OAuth. MCP clients that only support OAuth authentication cannot connect at this time.

How to set up Robolly MCP in Claude Code

Run the following command in your terminal, replacing YOUR_ROBOLLY_API_KEY with the API key from your Robolly account:

claude mcp add --transport http robolly https://api.robolly.com/mcp \
  --header "Authorization: Bearer YOUR_ROBOLLY_API_KEY"

The default Claude Code scope keeps the connection local to the current project. Run claude mcp list to confirm that Robolly is connected, or use /mcp inside Claude Code to check its status.

The command stores the API key in your local Claude Code configuration. Do not use --scope project with the API key, because project-scoped configuration can be committed and shared.

How to set up Robolly MCP in VS Code

  1. Open the Command Palette.
  2. Run MCP: Open User Configuration.
  3. Add the following configuration:
{
	"inputs": [
		{
			"type": "promptString",
			"id": "robolly-api-key",
			"description": "Robolly API key",
			"password": true
		}
	],
	"servers": {
		"robolly": {
			"type": "http",
			"url": "https://api.robolly.com/mcp",
			"headers": {
				"Authorization": "Bearer ${input:robolly-api-key}"
			}
		}
	}
}

VS Code will ask for your API key when it starts the server and will store the value securely. Confirm that you trust the server when prompted, then use Robolly's tools from the Chat view.

How to set up other MCP clients

Configuration formats differ between MCP clients. Use an HTTP server configuration equivalent to the following:

{
	"mcpServers": {
		"robolly": {
			"type": "http",
			"url": "https://api.robolly.com/mcp",
			"headers": {
				"Authorization": "Bearer YOUR_ROBOLLY_API_KEY"
			}
		}
	}
}

If your client uses a secure secret input or environment variable, use it instead of placing the API key directly in the configuration.

Some clients call the transport type streamable-http instead of http. Both refer to the Streamable HTTP transport used by Robolly.

Available tools

ToolWhat it does
list_templatesLists templates in your Robolly organization.
get_templateGets a template, including its editable design.
list_gallery_templatesSearches and lists designs available in the Robolly template gallery.
create_templateCreates a new template, including importing a design from the gallery.
update_templateUpdates an existing template and its editable design.
get_template_modificationsLists base keys, detailed properties, value constraints, and examples accepted by a template.
renderRenders a template as JPG, PNG, WebP, or PDF and returns a temporary file URL.
render_videoQueues an MP4 or WebM video render with one or more clips, optional audio, and dynamic values.
get_renderChecks a queued render's status and returns its temporary file URL when finished.

The create_template and update_template tools change templates in your Robolly account. The render and render_video tools consume rendering credits in the same way as rendering through the dashboard or API.

Video rendering is asynchronous. After using render_video, the assistant can use the returned render ID with get_render until the render is finished. Video availability, duration, audio, and clip limits depend on your Robolly plan.

The MCP server does not currently expose template deletion.

Template names and previews

Refer to templates by their names when talking to the assistant. For example, ask it to render your Abrasive Open graph template instead of finding and pasting its template ID. The assistant uses list_templates to resolve the name to the ID required by Robolly's tools. If multiple templates have the same name, the assistant may ask you which one to use.

Template listing and lookup tools return each available previewUrl and an MCP resource link. When you ask to see previews, the tools instruct the assistant to use those URLs as inline Markdown images. This reuses existing previews and does not render new images.

Whether previews appear embedded ultimately depends on the MCP client. MCP resource links provide URLs but do not require clients to display them inline. Clients without inline remote-image support can still show or open the returned preview URL.

Dynamic and detailed modifications

Every named template element has a base modification key. Using the element name by itself changes its primary value. For example, title changes a text element's content, photo changes an image source, and shape changes a rectangle's color.

Detailed modification keys change a specific property by using the syntax {element-name}.{modification-key}. For example:

ModificationExample key
Change a text colortitle.textColor
Change an element's backgroundhero.background.color
Change opacityphoto.opacity
Change a filter valuephoto.filters.0.value
Move an elementlogo.x and logo.y

The complete base key list and detailed modification guide come from the accepted-modifications endpoint and are returned by get_template_modifications. Each element includes concrete detailed keys based on its type and existing design structure. For example, filter and gradient-stop keys are returned only for indexes that already exist. The get_template response contains only template data, keeping the API resource and MCP workflow metadata separate.

Detailed modification keys apply while rendering through render or render_video. To permanently change the saved design, the assistant must use update_template instead.

Example prompts

After connecting the server, try prompts like:

  • "Show me my 5 most recently updated Robolly templates. For every template with a previewUrl, display an inline Markdown image using the exact URL, followed by its template name. Do not render new images."
  • "Find a certificate design in the Robolly template gallery and import it into my account."
  • "Which fields can I modify when rendering my Abrasive Open graph template?"
  • "Render my Abrasive Open graph template as a PNG with the title changed to Annual Report."
  • "Render my Abrasive Open graph template as a PNG with hero.background.color changed to #F5F5F5."
  • "Render my Abrasive Open graph template as a five-second MP4 with the title changed to Annual Report."
  • "Permanently update my saved Abrasive Open graph template to use a white artboard background."

Use the exact template name when possible. You can ask the assistant to list your templates with previews first if you do not remember it.

Troubleshooting

The client reports an authentication error

Confirm that the authorization header starts with Bearer followed by your Robolly API key:

Authorization: Bearer YOUR_ROBOLLY_API_KEY

Do not add the user- prefix used by the Robolly dashboard.

Opening the MCP URL in a browser shows an error

This is expected. The MCP endpoint accepts protocol requests from MCP clients and does not provide a normal web page.

The client cannot connect or discover tools

Confirm that the client supports Streamable HTTP and custom request headers. Robolly does not currently expose an SSE or local stdio MCP server.

A render does not contain the expected dynamic content

Ask the assistant to use get_template_modifications first. Modification names must match the element names configured in the template.