MCP App Store
by KeenEthics

Overview

Marq is the Brand Enablement Platform for brand teams supporting creators across the organization. Connect Marq to ChatGPT to find brand templates and use them to create or update on-brand content like one-pagers, datasheets, and social posts. Use ChatGPT to inspect a project’s pages, text, images, and Smart Fields, then rewrite, proofread, or translate copy and replace images. You can also personalize content with user, team, or project information, populate documents from your Marq datasets, and apply Marq Brand Kit colors, fonts, and logos to supported template elements. Export finished projects as PDF, PNG, or JPG. Changes preserve existing styling and element locks, so teams can create and update content faster without losing brand or layout control. ChatGPT only works with content the signed-in user can access in Marq.

Tools

brand_GetBrandKit

ChatGPT
[Brand Kit] Read the account's brand kit: colors, fonts and logos keyed by brand role, plus the kits the user can access. The branding field is ready to pass straight to the document ApplyBranding tool. Assets with a null schemaKey are not mapped to a role and cannot be applied.

conversion_ExportDocument

ChatGPT
[Document Export] Export a document to PDF or image format. Returns a download URL and file name. Present the result as a markdown link using the file name as link text.

data_FindDataItems

ChatGPT
[Data Library] Find data items across a dataset by primary key or column values. Returns paginated results with refs ready for ApplyDataSmartFields. Use GetDataSetSchema first to discover column names.

data_GetCollectionSchema

ChatGPT
[Data Library] Get the column names, primary key columns, and item count for a single collection. Use this when you already know which collection to query.

data_GetDataSetSamples

ChatGPT
[Data Library] Get a sample data item from each collection in a dataset. Returns 1 truncated sample per collection for previewing data shape. Use GetDataSetSchema or GetCollectionSchema for column details.

data_GetDataSetSchema

ChatGPT
[Data Library] Get the schema for all collections in a dataset. Returns columns shared across all collections (commonColumns) and columns unique to each collection (uniqueColumns), plus primary key columns and item counts per collection.

data_ListDataSets

ChatGPT
[Data Library] List datasets the user has access to. Returns dataset names, data sources, and their collections.

dmes_ApplyBranding

ChatGPT
[DMES - Document Model Query/Edit] Apply the brand colors, fonts, and logos of a saved brand kit throughout the document, replacing existing values on every element bound to that brand role. Call the brand kit tool GetBrandKit first and pass its branding field through verbatim — branding comes from the kit, so never ask the user for hex values or font names and never compose the payload yourself. Roles the kit leaves unmapped are left unchanged. The response's colors, fonts and logos list the roles that matched elements in the document; a role the kit mapped that is absent from them matched nothing.

dmes_ApplyDataSmartFields

ChatGPT
[DMES - Document Model Query/Edit] Apply dataset smart field values to the document. Populates data rows referenced by dataset smart field formulas (nearestNamedReferenceKey patterns). Each entry provides a resolved data item with datasetId (URI), collectionId, primaryKey, and item (column→value map).

dmes_ApplyProjectSmartFields

ChatGPT
[DMES - Document Model Query/Edit] Apply project-level smart field values to the document. Sets shape data fields referenced by project smart field formulas. Supports both text and image data types. Use GetSmartFields first to discover which project smart fields the document references.

dmes_ApplyTeamSmartFields

ChatGPT
[DMES - Document Model Query/Edit] Apply team-level smart field values to the document. Sets text and image smart fields that reference team data (e.g., {{team.name}}, {{team.logo}}). Clears all existing team smart field values before applying the new ones. Use GetSmartFields first to discover which team fields the document references.

dmes_ApplyUserSmartFields

ChatGPT
[DMES - Document Model Query/Edit] Apply user-level smart field values to the document. Sets text and image smart fields that reference user profile data (e.g., {{user.firstName}}, {{user.avatar}}). Clears all existing user smart field values before applying the new ones. Use GetSmartFields first to discover which user fields the document references.

dmes_CopyBlocksToPage

ChatGPT
[DMES - Document Model Query/Edit] Copy existing blocks or groups onto a page, leaving the originals untouched. Use this to reuse a pre-built element — for example a shape-and-text callout on a master or template page — inside the working layout, instead of rebuilding it with CreateShapeBlock/CreateTextBlock. Styling, grouping, and smart-field bindings are carried over from the source. To copy a whole page instead, use CreatePage with sourcePageId.

dmes_CreateImageBlock

ChatGPT
[DMES - Document Model Query/Edit] Create a new image block on a page with an image already applied. Combines block creation and image assignment in a single operation — use this instead of SetBlockImage when adding a new image to a document. Provide imageId and contentType from SearchImages or GetImages to use an existing library image.

dmes_CreatePage

ChatGPT
[DMES - Document Model Query/Edit] Add a new page to the document, or duplicate an existing page, and return its ID. In spread-based documents, duplicating adds a panel to the existing spread rather than a new top-level page. On success the returned pageId may equal sourcePageId and the page count may not increase — this is expected, not a failure.

dmes_CreateShapeBlock

ChatGPT
[DMES - Document Model Query/Edit] Create a new shape block (rectangle, circle, line, etc.) on a page and return its ID. Use this to add vector shapes; for images use CreateImageBlock instead.

dmes_CreateTextBlock

ChatGPT
[DMES - Document Model Query/Edit] Create a new text block on a page with styled content and return its ID. Provide the text as one or more styledRanges, each a run of text with its own styling.

dmes_GetActionSchemas

ChatGPT
[DMES - Document Model Query/Edit - Metadata] Get the available action types and their required fields for the RunActions edit tool. Call this BEFORE using RunActions to discover the exact field names, types, and examples for each action. Optionally filter to a specific action type. Does NOT require a documentId.

dmes_GetAllStyledText

ChatGPT
[DMES - Document Model Query/Edit] Get all styled text content from every text block on a page in a single call. Returns block metadata (ID, class, bounding box) alongside styled text with formatting. One call replaces GetBlocksOnPage + N x GetStyledTextContent, dramatically reducing round trips. RECOMMENDED for page-level translation workflows. Includes vertical overflow info when text overflows. plainText and styledRanges[].text is the raw stored text, so smart fields appear as {{expressions}} rather than as the values a reader sees. Read spans[].replacement for the rendered value and spans[].state to tell a real value from an unfilled placeholder. To survey text across the whole document without styles, use GetDocumentText. Alignment, line spacing, and indents are NOT in styledRanges[].style — they are paragraph-level and are reported in paragraphs. Read paragraphs whenever you need to match, compare, or describe the formatting of a reference text box, including whether a line break is a paragraph break or a soft (Shift+Enter) break. ReplaceStyledText keeps them through a rewrite; pass entries as its paragraphs only to change them.

dmes_GetBlock

ChatGPT
[DMES - Document Model Query/Edit] Get detailed information about a single block by its ID. Returns position, size, rotation, class type, group membership, edit restrictions, and optionally text content. Use this when you have a block ID and need to inspect its current state before modifying it. Each block carries restrictions, describing what its locks actually block. Locking is several independent axes and different edits consult different ones, so check the field matching the edit you intend — before attempting it, and before telling a user something cannot be changed.

dmes_GetBlocksOnPage

ChatGPT
[DMES - Document Model Query/Edit] Get all blocks (shapes, images, text boxes, etc.) on a specific page. Returns block IDs, positions (bounding boxes), class types, and basic metadata. Set includeText=true to also retrieve text content (slower but useful for content analysis). Use this to understand page layout or find blocks to modify. Each block carries restrictions, describing what its locks actually block. Locking is several independent axes and different edits consult different ones, so check the field matching the edit you intend — before attempting it, and before telling a user something cannot be changed.

dmes_GetDocumentStructure

ChatGPT
[DMES - Document Model Query/Edit] Get a high-level overview of the entire document structure. Returns page count, total element counts, and a summary of each page. USE THIS FIRST when exploring an unfamiliar document to understand its scope and organization. By default excludes template and master pages - set includeTemplates/includeMasters to true to see all pages.

dmes_GetDocumentText

ChatGPT
[DMES - Document Model Query/Edit] Read text areas across the document in one call, as a blockId -> areaKey map. This is the cheapest way to survey a document's copy: one call replaces GetPages + GetBlocksOnPage + N x GetTextContent. Each area carries text (the raw stored string) plus spans describing any smart fields inside it. Smart-field text is stored as an {{expression}} and rendered from live data, so text alone is NOT what the reader sees — read each span's replacement for that, and its state to tell a real value from an unfilled placeholder. A document built from a smart-field template is NOT empty just because its raw text is full of expressions. The response scales with the copy in the document and again with its smart fields, so on a long data-driven document (a catalog, a price list) read it a few pages at a time: call GetPages first, then pass pageIds. Skips downstream (linked) text areas, whose content the chain root owns. Empty areas are still returned so every area is an addressable target for ReplaceStyledText.

dmes_GetGroupMembers

ChatGPT
[DMES - Document Model Query/Edit] Get the member block IDs of a specific group. Set recursive=true to also include members of any nested groups (groups can contain other groups). Use this before modifying group membership or when you need to operate on all blocks in a group.

dmes_GetGroupsOnPage

ChatGPT
[DMES - Document Model Query/Edit] Get all groups on a specific page. Groups are logical containers that hold multiple blocks together. Grouped blocks move, scale, and transform as a unit. Returns each group's ID, member block IDs, and combined bounding box. Use this to understand grouping relationships or find groups to modify.

dmes_GetImages

ChatGPT
[DMES - Document Model Query/Edit] Find all blocks with image fills in the document or on a specific page. Returns image metadata (ID, URL, content type, bounding box) for each image block. Use this instead of manually reading FillColor on every block.

dmes_GetItemsAtPosition

ChatGPT
[DMES - Document Model Query/Edit] Find all items (blocks and groups) at a specific x,y coordinate on a page. Useful for hit-testing or finding what element is at a particular location. Returns items in z-order (top to bottom), so the first result is the topmost visible element. Coordinates are in document units (typically pixels from top-left of page).

dmes_GetItemsInRect

ChatGPT
[DMES - Document Model Query/Edit] Find all items (blocks and groups) within or intersecting a rectangular region on a page. Useful for selecting multiple items in an area or analyzing content in a region. Returns items that overlap with the specified rectangle. Coordinates are in document units (typically pixels).

dmes_GetPages

ChatGPT
[DMES - Document Model Query/Edit] Get detailed information about all pages in the document. Returns each page's ID, title, order, type (normal/template/master/embedded), and element counts. Use this to enumerate pages before iterating through them, or to find a specific page by title.

dmes_GetProperty

ChatGPT
[DMES - Document Model Query/Edit] Get a specific property value from any document element (block, page, panel, group) or the document itself. Common block properties: BoundingBox, FillColor, LineColor, Rotation, Opacity, Text, ZOrder. Common page properties: Title, Order. Common panel properties: BoundingBox, FillColor. Document-level properties: bgSelectable, and document metadata. Use this when you need to read a specific property value, especially before modifying it with SetProperty.

dmes_GetSmartFields

ChatGPT
[DMES - Document Model Query/Edit] Scan the document for smart field references. Detects user, team, project, and dataset smart fields used in text content, images, and colors. Also detects special dataset images (Primary, Secondary, Agent, etc.). IMPORTANT: Follow the workflow below based on the response: - missingFields.projectSmartFields — ask the user for values, then apply via ApplyProjectSmartFields. - missingFields.dataSmartFields — use the data tools (ListDataSets, FindDataItems) to locate matching rows, then apply via ApplyDataSmartFields. Do NOT ask the user for arbitrary column values. - warnings.userSmartFieldsExplicitlyUnset / teamSmartFieldsExplicitlyUnset — tell the user to update these in their Marq account settings / team admin panel. Do NOT call ApplyUserSmartFields or ApplyTeamSmartFields — those only create document-level overrides, which is not the correct fix. Use suggestedUserPrompt as a ready-to-use message for the user. Do NOT tell the user to open the document or fill the fields themselves.

dmes_GetStyledTextContent

ChatGPT
[DMES - Document Model Query/Edit] Get text content WITH formatting/styling information from one or more blocks (batch). Returns text broken into "styled ranges" where each range has consistent formatting (font, size, color, bold, etc.). Accepts an array of blockIds to retrieve multiple blocks in a single call. Includes vertical overflow info per text area when text overflows its container. ESSENTIAL for translation workflows: retrieve styled text, translate the text portions while preserving the style objects, then use ReplaceStyledText to apply the translated content with original formatting intact. plainText and styledRanges[].text is the raw stored text, so smart fields appear as {{expressions}} rather than as the values a reader sees. Read spans[].replacement for the rendered value and spans[].state to tell a real value from an unfilled placeholder. When translating, leave the expression inside a span intact — translating it breaks the binding, and its value is translated at render time. Alignment, line spacing, and indents are NOT in styledRanges[].style — they are paragraph-level and are reported in paragraphs. Read paragraphs whenever you need to match, compare, or describe the formatting of a reference text box, including whether a line break is a paragraph break or a soft (Shift+Enter) break. ReplaceStyledText keeps them through a rewrite; pass entries as its paragraphs only to change them.

dmes_GetTextContent

ChatGPT
[DMES - Document Model Query/Edit] Get plain text content from all text areas in a block (no formatting information). A block can have multiple text areas (e.g., main text, captions, labels). Use this for simple text extraction when you don't need style information. For formatted text or translation workflows, use GetStyledTextContent or GetAllStyledText instead; to survey a whole document, use GetDocumentText. plainText is the raw stored text, so smart fields appear as {{expressions}} rather than as the values a reader sees. Read spans[].replacement for the rendered value and spans[].state to tell a real value from an unfilled placeholder.

dmes_ReplaceStyledText

ChatGPT
[DMES - Document Model Query/Edit] Replace the text content of one or more blocks while preserving or applying text formatting/styling (batch). RECOMMENDED for translation and text replacement workflows. Supports batch operations: pass multiple block replacements in a single call to minimize round trips. Workflow: 1) Call GetAllStyledText or GetStyledTextContent to get current text with styles, 2) Modify the text portions while keeping the style objects unchanged, 3) Call ReplaceStyledText with all replacements in one batch. Each new paragraph keeps the bullets, indents, alignment and spacing of the old paragraph in its position, the last one repeating for any extra paragraphs; pass paragraphs to change them. Returns overflow warnings for any text areas where content exceeds available space.

dmes_ReplaceTextStyles

ChatGPT
[DMES - Document Model Query/Edit] Find and replace text styles across the entire document. IDEAL for brand updates: change all instances of one font to another, update colors, etc. Use "SubsetMatch" to match on specific properties (e.g., just font name), or "ExactMatch" to only replace text with exactly matching styles. Example: Replace all "Arial" text with "Helvetica" using SubsetMatch on {font: "Arial"}.

dmes_RunActions

ChatGPT
[DMES - Document Model Query/Edit] Execute low-level document model actions to modify document structure. This is the primary tool for structural changes like creating/removing blocks, groups, setting properties, editing text, and managing data sources. Actions are executed in order as a batch. Use this for: • Creating or removing blocks, groups • Setting properties (position, color, rotation, etc.) on any element • Moving elements between pages • Low-level text editing • Managing data sources and collections IMPORTANT: Call GetActionSchemas first to discover the exact fields required for each action type. For text replacement with formatting, prefer ReplaceStyledText instead. To add a page (blank or a duplicate), use the CreatePage tool. PARTIAL APPLICATION: a rejected action does not stop or roll back the ones before it. The top-level success flag only summarises whether every action succeeded, so a false value does NOT mean the document is unchanged. Read actionResults to see exactly what landed, and retry only the failed entries — replaying the whole batch will re-apply the ones that already ran.

dmes_SearchText

ChatGPT
[DMES - Document Model Query/Edit] Search for blocks containing specific text anywhere in the document or on a specific page. Returns full block information for each match, allowing you to then modify or analyze the found blocks. Use this to find text for replacement, to locate specific content, or to analyze document content. For case-insensitive search (recommended for most use cases), leave caseSensitive as false. Each block carries restrictions, describing what its locks actually block. Locking is several independent axes and different edits consult different ones, so check the field matching the edit you intend — before attempting it, and before telling a user something cannot be changed.

dmes_SetBlockImage

ChatGPT
[DMES - Document Model Query/Edit] Replace the image on a block. Provide imageId (from SearchImages or GetImages) to use an existing library image.

document_CreateProjectFromTemplate

ChatGPT
[Template Library] Create a new document/project from a template ID found via SearchTemplates. Places the new document in the user's root folder. After creating the project, check for smart fields in the document to see if any additional information is needed to fill them out.

document_ListTemplateCategories

ChatGPT
[Template Library] List all template categories and their values for the user's account. Use the returned value IDs to filter SearchTemplates results.

document_SearchTemplates

ChatGPT
[Template Library] Search brand templates by title keyword and/or category value IDs. Returns matching templates sorted by title, plus facet counts with human-readable names for further filtering.

image_GetImage

ChatGPT
[Image Library] Get image metadata and tags by image ID.

image_SearchImages

ChatGPT
[Image Library] Search for images by keyword across the user's accessible images (owned, shared, brand). Returns matching images ranked by relevance.

brand_GetBrandKit

Claude

conversion_ExportDocument

Claude

data_FindDataItems

Claude

data_GetCollectionSchema

Claude

data_GetDataSetSamples

Claude

data_GetDataSetSchema

Claude

data_ListDataSets

Claude

dmes_ApplyBranding

Claude

dmes_ApplyDataSmartFields

Claude

dmes_ApplyProjectSmartFields

Claude

dmes_ApplyTeamSmartFields

Claude

dmes_ApplyUserSmartFields

Claude

dmes_CopyBlocksToPage

Claude

dmes_CreateImageBlock

Claude

dmes_CreatePage

Claude

dmes_CreateShapeBlock

Claude

dmes_CreateTextBlock

Claude

dmes_GetActionSchemas

Claude

dmes_GetAllStyledText

Claude

dmes_GetBlock

Claude

dmes_GetBlocksOnPage

Claude

dmes_GetDocumentStructure

Claude

dmes_GetDocumentText

Claude

dmes_GetGroupMembers

Claude

dmes_GetGroupsOnPage

Claude

dmes_GetImages

Claude

dmes_GetItemsAtPosition

Claude

dmes_GetItemsInRect

Claude

dmes_GetPages

Claude

dmes_GetProperty

Claude

dmes_GetSmartFields

Claude

dmes_GetStyledTextContent

Claude

dmes_GetTextContent

Claude

dmes_ReplaceStyledText

Claude

dmes_ReplaceTextStyles

Claude

dmes_RunActions

Claude

dmes_SearchText

Claude

dmes_SetBlockImage

Claude

document_CreateProjectFromTemplate

Claude

document_ListTemplateCategories

Claude

document_SearchTemplates

Claude

image_GetImage

Claude

image_SearchImages

Claude

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps