Integrations

Connecting an MCP client

The MCP server is OAuth-only — a plain API key won't authenticate here, even though it works everywhere else on /v1/*. Point any MCP-compatible client (Claude Desktop, Claude Code, Cursor, etc.) at the server URL below; the client discovers the OAuth endpoints automatically and prompts you to sign in and consent. Full OAuth endpoint details are in the API reference.

MCP server URL
https://app.frameline.io/v1/mcp

Example configuration for a client that takes a raw server list:

mcp.json
{
  "mcpServers": {
    "frameline": {
      "url": "https://app.frameline.io/v1/mcp"
    }
  }
}

On first connection you'll be redirected to sign in (if needed) and approve the client for a specific workspace. Every tool call after that acts on that workspace only.

Integrations

Available tools

Every tool is a thin wrapper over the same services the dashboard and machine API use — a template created through MCP is identical to one created by hand.

list_templates

List templates in the caller's workspace, with tags, description and a per-page summary — enough to match a request against a template's purpose without opening its draft.

ParamTypeNotes
searchstringOptional free-text filter.
tagsstring[]Optional tag filter.
pagenumberDefaults to 1.
limitnumber1–100.
get_template

Fetch a template's metadata by id.

ParamTypeNotes
id*string
get_template_draft

Fetch a template's full editable design document (pages, layers, tags).

ParamTypeNotes
id*string
list_template_parameters

List the variables derived from a template's canvas layers.

ParamTypeNotes
id*string
create_templatescope: template:write

Create a new template with one blank page of a given size.

ParamTypeNotes
name*string1–120 chars.
descriptionstringUp to 500 chars.
tagsstring[]Up to 20 tags.
widthnumber1–20000.
heightnumber1–20000.
update_templatescope: template:write

Rename, re-describe or re-tag a template.

ParamTypeNotes
id*string
namestring1–120 chars.
descriptionstringUp to 500 chars.
tagsstring[]Up to 20 tags.
duplicate_templatescope: template:write

Copy a template and its current draft.

ParamTypeNotes
id*string
namestringName for the copy.
save_template_draftscope: template:write

Replace a template's design document — the same shape the studio editor authors.

ParamTypeNotes
id*string
design*object{ version, designName, activePageId, pages[] }.
render_templatescope: render:write

Rasterize a template's current draft to an image or PDF, optionally substituting variable values first. Costs one credit per rendered file unless identical output was already rendered.

ParamTypeNotes
id*string
format"png" | "jpeg" | "pdf"Defaults to png.
modificationsRecord<string,string>Variable overrides.
pageIdstringDefaults to the active page.
allPagesbooleanRender every page.
get_brand_kit

Fetch the workspace brand kit — logo, fonts, color palette and style-guide text — to keep generated designs on-brand.

search_stock_photos

Search royalty-free stock photos (Pexels/Unsplash) to drop straight into a template's image layer.

ParamTypeNotes
querystringUp to 200 chars. Omit for a curated feed.
provider"pexels" | "unsplash"Omit to search all sources.
pagenumberDefaults to 1.
perPagenumber1–80.