MCP App Store
by KeenEthics

Overview

Describe yourself and the impression you want; esigna designs with you. See design directions side by side, refine by conversation or by hand in the full Editor, add your own Photo and logo, preview it in light and dark inboxes and on a phone, then copy it into Gmail, Outlook or Apple Mail.

Tools

add_signature_image

ChatGPT
Put an image the user attached in this conversation into the Signature: their Photo, their logo, an existing image block, or a new image block (a banner, badge or event art, or an image you generated for them here). Pass the host file. Never invent an image or a download URL. esigna hosts the image at a public, unguessable link, as an email signature's images must be, so anyone who receives an email with it can see it. Side effects: the image goes in as a new revision, and an image it replaces stays in the draft's history (undo_signature_edit restores it). The hosted image stays at its link even after an Undo, so emails already sent keep showing it.

browse_templates

ChatGPT
Show esigna's original Templates with their ids and what each suits. With templateId, also returns that Template's design as source so you can remix it.

check_designs

ChatGPT
Check 2–4 design directions before the user sees them: returns a design review and a layout sketch for each, and the set's proposalId, and shows nothing. Each is your own <signature> in source with a name and a one-line rationale; make them genuinely different (layout, type, colour), not one design in three colours. Uses the draft's details and images. To fix a FIX, or a design that could not be drawn, check the set again with its proposalId and only the designs you changed (changes, by number); the new set keeps the rest as checked. When nothing is marked FIX, show the set once with propose_designs and its proposalId. Side effects: each call only adds a new set, kept on esigna's server for 30 days under its own proposalId. It never changes the draft; details given with it reach the draft only when the user picks a design (choose_design). A set checked before stays as it was.

choose_design

ChatGPT
Use one of the proposed designs (proposalId + index) or a Template (templateId), on the draft if given (keeping its details and images, with any details given with the designs or this call set on top) or as a new Signature. Call it as soon as the user picks one, in words or in esigna's gallery: its result shows the chosen Signature as a card with Edit and Copy signature. A pick the gallery already applied is shown as it is, unchanged. Side effects: on a draft, the design is a new revision and the revision before stays in the draft's history (undo_signature_edit restores it); otherwise it adds a new draft. The set records the pick and its draft, so another pick from it changes only the design on that draft. esigna keeps the draft on its server for 30 days after its last change.

create_signature

ChatGPT
Create a new Signature from the user's details, either from a Template or from your own design written as source. Returns the draft id, its source, a sketch and a design review, and shows it in the conversation. esigna keeps the draft on its server for 30 days after its last change. Source: tags are blocks (<stack> vertical group, <row> columns, <text>, <image>, <button>, <rule>, <spacer>); attributes are the block's fields and style, in px. Type on a <row> or <stack> (fontFamily, fontSize, fontWeight, color, lineHeight) passes to the text inside it, as in CSS, and reads back on each text; a button keeps its own colour. lineHeight up to 4 ("1.4") is a multiple of each text's font size, stored in px; in em or % on a row or stack, it is of that group's font size, as in CSS. Bind details instead of typing them: <text binding="title"/>, <image imageSlot="photo" …/>, <image binding="linkedin" socialIconStyle="round" …/>, <button linkBinding="booking">Book a call</button>. Theme colours: color/background/borderColor="accent|text|muted|icon". Email-table idioms: columns are a <row> of stacks; a vertical bar is borderLeft+paddingLeft on a stack; a card is background+padding on a stack; a short accent line is <rule width="40" borderTop="2"/> inside a stack that has its own width (a stack without one shrinks to its narrowest set-width block); space with gap, padding or <spacer>; a width is the block's content, with its padding and border drawn around it, so a row's columns fit when their widths, paddings, borders and gaps add up to its room; an image or button is sized by imageWidth and imageHeight (a button is 200×32 unless set); a label pill is a <button> without a link; a monogram or initials tile is a square one: <button background="accent" imageWidth="40" imageHeight="40" fontWeight="700">MO</button>; credentials follow the name in one <row inline="true">: <text bind="name"/><text bind="credentials" prefix=", "/>, never in a column of their own; when that line would wrap, the credentials take a line of their own under the name, without the comma: <text bind="credentials"/>. Blocks: <stack> <row> <text> <image> <button> <rule> <spacer>. Block attributes: id, label, href, linkBinding, src, assetPath, alt, prefix, suffix, imageWidth, imageHeight, crop, radius, background, backgroundToken, imageSlot, socialIconStyle, binding, shownWith, showsAddress, art, hidden; a crop is "zoom x y": zoom a percentage from 100 (the whole picture) to 300, x and y from -1 to 1 (0 0 is centred), e.g. crop="140 0 -0.2". Style attributes: width, height, fill, fontFamily, fontSize, lineHeight, fontWeight, color, colorToken, borderColorToken, align, valign, italic, underline, paddingTop, paddingRight, paddingBottom, paddingLeft, gap, inline, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderStyle. Short forms: color/background/borderColor="accent|text|muted|icon" use the theme, padding="t r b l", bind=binding, slot=imageSlot.

edit_signature

ChatGPT
Change a draft with one or more operations, applied together as one revision and one Undo: details, theme, update a block's attributes, insert/replace blocks written as source, move, duplicate, remove, rewrite the whole layout, switch Template, Size, name. Use block ids from the latest source. Returns the new source, sketch and review; fix anything it marks FIX. Setting a detail the design does not show places a block for it (field-…); to show it elsewhere, move that block or write your own bound block, which replaces it. Side effects: only the draft changes, and the revision before stays in the draft's history (undo_signature_edit restores it). Source: tags are blocks (<stack> vertical group, <row> columns, <text>, <image>, <button>, <rule>, <spacer>); attributes are the block's fields and style, in px. Type on a <row> or <stack> (fontFamily, fontSize, fontWeight, color, lineHeight) passes to the text inside it, as in CSS, and reads back on each text; a button keeps its own colour. lineHeight up to 4 ("1.4") is a multiple of each text's font size, stored in px; in em or % on a row or stack, it is of that group's font size, as in CSS. Bind details instead of typing them: <text binding="title"/>, <image imageSlot="photo" …/>, <image binding="linkedin" socialIconStyle="round" …/>, <button linkBinding="booking">Book a call</button>. Theme colours: color/background/borderColor="accent|text|muted|icon". Email-table idioms: columns are a <row> of stacks; a vertical bar is borderLeft+paddingLeft on a stack; a card is background+padding on a stack; a short accent line is <rule width="40" borderTop="2"/> inside a stack that has its own width (a stack without one shrinks to its narrowest set-width block); space with gap, padding or <spacer>; a width is the block's content, with its padding and border drawn around it, so a row's columns fit when their widths, paddings, borders and gaps add up to its room; an image or button is sized by imageWidth and imageHeight (a button is 200×32 unless set); a label pill is a <button> without a link; a monogram or initials tile is a square one: <button background="accent" imageWidth="40" imageHeight="40" fontWeight="700">MO</button>; credentials follow the name in one <row inline="true">: <text bind="name"/><text bind="credentials" prefix=", "/>, never in a column of their own; when that line would wrap, the credentials take a line of their own under the name, without the comma: <text bind="credentials"/>. Blocks: <stack> <row> <text> <image> <button> <rule> <spacer>. Block attributes: id, label, href, linkBinding, src, assetPath, alt, prefix, suffix, imageWidth, imageHeight, crop, radius, background, backgroundToken, imageSlot, socialIconStyle, binding, shownWith, showsAddress, art, hidden; a crop is "zoom x y": zoom a percentage from 100 (the whole picture) to 300, x and y from -1 to 1 (0 0 is centred), e.g. crop="140 0 -0.2". Style attributes: width, height, fill, fontFamily, fontSize, lineHeight, fontWeight, color, colorToken, borderColorToken, align, valign, italic, underline, paddingTop, paddingRight, paddingBottom, paddingLeft, gap, inline, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderStyle. Short forms: color/background/borderColor="accent|text|muted|icon" use the theme, padding="t r b l", bind=binding, slot=imageSlot.

editor_open

ChatGPT
Open (or start) the draft the Editor shows.

editor_sync

ChatGPT
Send the Editor's hand edits and receive conversational ones.

editor_upload_image

ChatGPT
Host an image uploaded in the Editor at a public, unguessable link.

get_signature

ChatGPT
Read a draft as it is now, including changes made by hand in the Editor: details, source with block ids, a layout sketch, the full design review and recent history.

open_signature_editor

ChatGPT
Open the full Signature Editor for hand editing (Layers, Inspector, crop, uploads), an Export preview, or Copy signature, where the user copies the Signature for Gmail, Outlook or Apple Mail. Pass the draftId of the Signature you are working on. Copying is always the user's own click. The call itself changes nothing. The Editor then saves, through its own tools: the user's hand edits and uploads, a new blank Signature when it has no draft to show, and the contents of an opened file.

propose_designs

ChatGPT
Show a set check_designs checked, by its proposalId, side by side as one gallery in the conversation for the user to choose from; never write the designs again. Every call to this tool adds a gallery, so call it once per request with the final set, and refine the chosen design after the user picks. Use for a fresh look or when the user is unsure. Details given with the set show on the designs; they reach the draft only when the user picks one (choose_design). Showing a set changes nothing.

undo_signature_edit

ChatGPT
Undo the latest change to a draft, whether made here or in the Editor, or go back to an earlier revision from its history. The undone change stays in history. A draft keeps its last 24 revisions.

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

App Stats

13

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily