ComposeIt LogoComposeIt

Model Context Protocol (MCP) Server

Connect AI assistants (Claude, Cursor, Antigravity, Windsurf) directly to ComposeIt for autonomous template creation, editing, document compilation, and asset management.

The ComposeIt MCP Server implements the open Model Context Protocol (MCP) specification, allowing modern AI developer tools and assistants to interact directly with your ComposeIt workspace.

ComposeIt hosts the MCP server at https://mcp.composeit.app. You do not need to install or run code locally; you only need to provide your ComposeIt API key when configuring your client.

Using natural language, your AI assistant can:

  • Design & build templates: Generate complete visual templates from scratch using structured Abstract Syntax Trees (AST) or clone pre-configured blueprints.
  • Edit & refine templates: Update layouts, fonts, margins, CSS styles, formulas, and collection loops.
  • Configure E-Signatures: Place visual DocuSeal signer fields and configure multi-party signing order, expiration, and collection mapping.
  • Compile & render documents: Pass dynamic JSON data to generate production PDFs, HTML documents, or images.
  • Manage digital assets: Upload logos, banners, signatures, and media files directly into your organization library.

Quick Setup (Hosted MCP)

Connecting your AI client to ComposeIt takes less than a minute. You only need your ComposeIt API Key (obtainable from ComposeIt Dashboard → API Keys).

1. Claude Desktop

Edit your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "composeit": {
      "url": "https://mcp.composeit.app/sse",
      "headers": {
        "x-api-key": "YOUR_COMPOSEIT_API_KEY"
      }
    }
  }
}

2. Cursor / Antigravity IDE

In your project root or user settings, add to .cursor/mcp.json or Antigravity configuration:

{
  "mcpServers": {
    "composeit": {
      "url": "https://mcp.composeit.app/sse",
      "headers": {
        "x-api-key": "YOUR_COMPOSEIT_API_KEY"
      }
    }
  }
}

Alternatively, you can also use the Authorization header with a Bearer token:

{
  "mcpServers": {
    "composeit": {
      "url": "https://mcp.composeit.app/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_COMPOSEIT_API_KEY"
      }
    }
  }
}

Alternatively, if your client does not support custom headers, you can pass the API key via query parameter:

{
  "mcpServers": {
    "composeit": {
      "url": "https://mcp.composeit.app/sse?apiKey=YOUR_COMPOSEIT_API_KEY"
    }
  }
}

Available MCP Tools

1. Template Management

get_template_ast_guide

Retrieves the comprehensive AST specification, component hierarchy, ProseMirror schema, dynamic variables, formulas, loops, tables, charts, and DocuSeal e-sign visual signer mapping guide.

  • Arguments: None.

create_template

Creates a new template with a valid AST definition, clones from a pre-configured blueprint, or clones from an existing template.

  • Arguments:
    • name (string, required): Display title for the template.
    • description (string, optional): Short description.
    • templateType ("document" | "email", optional): Default "document".
    • definition (object, optional): Valid AST (ProjectData) definition object.
    • blueprint (string, optional): Name of a blueprint configured in server environment (e.g. "invoice", "contract").
    • cloneTemplateId (string, optional): Existing template UUID to clone definition from.
    • format (enum, optional): "A4", "Letter", "Legal", "A3", "A5", "Tabloid", "Custom".
    • isLandscape (boolean, optional): Whether document pages are landscape.

edit_template

Modifies an existing template's metadata, page configuration, or complete AST definition.

  • Arguments:
    • templateId (string, required): UUID of the template.
    • name (string, optional): Updated name.
    • description (string, optional): Updated description.
    • definition (object, optional): Updated AST (ProjectData) definition object.
    • format (enum, optional): Update page format.
    • isLandscape (boolean, optional): Update page orientation.
    • isActive (boolean, optional): Active publish status.
    • createVersion (boolean, optional): Snapshot a new version in history.
    • versionNote (string, optional): Changelog note for the version.

list_templates

Lists templates with search query, pagination, and sorting.

  • Arguments:
    • page (number, optional): 1-based page number.
    • pageSize (number, optional): Records per page (1 to 100).
    • q (string, optional): Search keyword.
    • recentlyUpdated (boolean, optional): Sort by update date descending.

get_template

Retrieves full details and layout definition for a specific template.

  • Arguments:
    • templateId (string, required): UUID of the template.
    • typeOnly (boolean, optional): If true, returns only id and templateType.

duplicate_template

Duplicates an existing template and its layout definition.

  • Arguments:
    • templateId (string, required): ID of the template to duplicate.

delete_template

Moves a template to the trash bin.

  • Arguments:
    • templateId (string, required): Template UUID.

2. Version Control

list_template_versions

Retrieves version history for a template.

  • Arguments:
    • templateId (string, required): Template UUID.

get_template_version

Inspects an exact historical version snapshot.

  • Arguments:
    • templateId (string, required): Template UUID.
    • versionId (string, required): Version snapshot identifier.

3. Document Compilation & Rendering

render_document

Merges dynamic JSON data into an active template to compile PDF, HTML, image, or MJML files.

  • Arguments:
    • templateId (string, required): Template to render.
    • formats (array, required): Output formats: ["pdf"], ["html"], ["image"], ["mjml"].
    • data (object, optional): JSON key-value data to inject into template placeholders.
    • imageType ("png" | "jpg", optional): Format if rendering images.
    • isTest (boolean, optional): Test watermark preview without consuming merge credits.
    • sendForSignature (boolean, optional): Trigger DocuSeal e-signature workflow.
    • docusealConnection (string, optional): Connected DocuSeal integration ID.

list_documents

Lists compiled documents and download links.

  • Arguments:
    • limit (number, optional): Max records to retrieve.
    • offset (number, optional): Pagination offset.

get_document

Retrieves outputs, metadata, and CDN download URLs for a compiled document.

  • Arguments:
    • documentId (string, required): Unique document ID.

4. Asset Management

upload_asset

Uploads an image, video, logo, or font to your organization media library.

  • Arguments:
    • filePath (string, optional): Local filesystem path to file.
    • fileUrl (string, optional): Remote URL to download and ingest.
    • base64Data (string, optional): Base64 encoded file content.
    • name (string, required): Display filename.
    • assetType ("image" | "video", optional): Default "image".

list_assets

Lists organization media assets with optional filtering.

  • Arguments:
    • assetType ("image" | "video", optional): Filter by type.
    • folderId (string, optional): Filter by folder.
    • includeTrashed (boolean, optional): Include trashed assets.

get_asset

Retrieves CDN URLs and metadata for a specific media asset.

  • Arguments:
    • assetId (string, required): Unique asset identifier.

delete_asset

Moves an asset to the trash.

  • Arguments:
    • assetId (string, required): Asset identifier.

Example Interaction

You can ask your AI assistant naturally:

"Create a NDA agreement template with two signers ('First Party' and 'Second Party') using DocuSeal, sequential signing order, and signature blocks on the last page."

The assistant calls get_template_ast_guide to inspect component rules, builds a valid ProjectData AST with ds-signature and ds-date elements mapped to First Party and Second Party, configures the root datasource connection.submitters, calls create_template, and returns the created template.

We use cookies to ensure you get the best experience on our website. For more information on how we use cookies, please see our privacy policy.