MCP App Store
by KeenEthics

Overview

The Knak connector for Claude helps teams create and manage email content with Knak AI directly inside Claude. Powered by the Model Context Protocol (MCP), the integration streamlines AI-driven email workflows between Claude and Knak.

Tools

generate-asset

ChatGPT
Supported content types A user can generate an email asset, but not a landing page. If they ask about a landing page, reply that only email assets are supported right now. Workflow for generating assets Do only one step at a time, do not ask the user for more than one field at the same time. When a user asks to create, generate, write, or draft an email, follow this workflow: 1. If no brand is specified, call list-brands and ask the user to choose one. If there is only one brand, select it automatically. 2. Call list-campaigns with the chosen brand_name and ask the user to choose a campaign. If there is only one campaign, select it automatically. 3. Call list-brand-voices with the chosen brand_id and follow its next_step. Propose the brand's default voice in one line rather than presenting a list, for example "I'm planning to use the Warm and Direct brand voice. Is that ok, or do you want to change it?" Show the other brand voices only if the user wants to change it. If the user already asked for a voice, tone, or writing style, propose the closest match instead of the default. If the brand has no brand voices, skip this step without asking. 4. If the user did not mention themes, then skip this step. If the user mentioned themes then call list-themes with the chosen brand_id and ask the user to select a theme. 5. If a theme was selected, skip this step. Otherwise call list-color-kits with the chosen brand_id and follow its next_step. Propose the brand's default color kit in one line rather than presenting a list, for example "I'm planning to use the Summer color kit. Is that ok, or do you want to change it?" Show the other color kits only if the user wants to change it. If the brand has no color kits, skip this step without asking. 6. If a theme was selected, skip this step. Otherwise call list-font-kits with the chosen brand_id and follow its next_step. Propose the brand's default font kit in one line rather than presenting a list, for example "I'm planning to use the Corporate font kit. Is that ok, or do you want to change it?" Show the other font kits only if the user wants to change it. If the brand has no font kits, skip this step without asking. 7. If the user did not select a them, ask the user if they would like to use modules in their email. If they would like to use modules ask the user if they know the names or if they would like to search for modules. If they want to search, proceed to the next step. If they know the names then ask for a list of names and look up the module ids by calling get-module-by-name with each name. After calling get-module-by-name ask the user if they are done or if they want to add more modules. They can add more by name as above or they can search. If they want to search proceed to the next step. If they are done with modules, skip the next step and proceed to the step after the next one. 8. If the user would like to use a module but they don't know the name ask for a word or phrase to use as a search term and call search-modules to get a list of matching modules. Ask the user to pick which modules they would like to use. Allow the user to pick multiple modules. Ask the user if they would like to search for more modules. If they would like to search for more modules, repeat this step. If they are done, proceed to the next step. 9. Ask the user if they would like to drag-and-drop or attach a text document (.docx, .pdf, .html, .md, .txt) with copy or context for the email. The document is not a public URL for passing to this tool. Do not summarize, shorten, or rewrite the document — Knak decides which parts to use word for word, so it needs the original text. 10. Ask the user how they would like to handle images — see Images below. Skip this step if a theme, modules, or asset_to_clone were selected; those already carry imagery. 11. Ask the user for a creative prompt for the email. 12. Call generate-asset with the chosen campaign_name, brand_name, optionally the id property of the theme if the user selected a theme, the brand_voice_id t…

generate-asset-tool

ChatGPT
Generates an email or landing page asset inside a campaign folder. Accepts a creative prompt describing the desired content, plus optional parameters for asset name, subject line, theme, sender details, tags, images, and file attachments. Generation is asynchronous; the response returns an asset ID and progress URLs. Required: ask the user for a creative prompt and confirm the campaign name (and brand name when there is more than one brand) before calling this tool. Use list-brands and list-campaigns to discover valid names. After this tool returns, a progress widget appears above your reply and renders the asset preview inline once generation finishes. In your reply, mention that the preview will be generated in the widget above. Do not offer a separate "you can open it here" link — the widget surfaces a "View in Knak" button when ready. Do not ask the user if they want a preview; the preview is shown automatically.

get-asset

ChatGPT
Returns full metadata for a single asset (email or landing page) by ID. Use this after list-assets to inspect a specific asset's details, or after generate-asset to confirm what was created.

get-asset-preview

ChatGPT
Returns a rendered visual preview of a previously-generated asset. Call this ONLY when the user explicitly asks to see or re-view an asset's preview (e.g. "show me that email again"). Do NOT call this right after generate-asset — the progress widget will display the preview automatically when generation finishes. If the asset is still generating, this returns an error instructing you to tell the user to wait.

get-asset-preview-tool

ChatGPT
Returns a rendered visual preview of a previously-generated asset. Call this ONLY when the user explicitly asks to see or re-view an asset's preview (e.g. "show me that email again"). Do NOT call this right after generate-asset — the progress widget will display the preview automatically when generation finishes. If the asset is still generating, this returns an error instructing you to tell the user to wait.

get-asset-tool

ChatGPT
Returns full metadata for a single asset (email or landing page) by ID. Use this after list-assets to inspect a specific asset's details, or after generate-asset to confirm what was created.

get-module-by-name

ChatGPT
Get a module by name accessible to brand_id

list-assets

ChatGPT
Returns existing assets (emails and landing pages) accessible to the authenticated user. Supports optional filtering by brand name, campaign name, asset name search, and asset type. Use this to discover what already exists before creating new assets.

list-assets-tool

ChatGPT
Returns existing assets (emails and landing pages) accessible to the authenticated user. Supports optional filtering by brand name, campaign name, asset name search, and asset type. Use this to discover what already exists before creating new assets.

list-brand-voices

ChatGPT
Returns the brand voices assigned to a brand that can be applied during asset generation. Call this tool once the brand is chosen in the generate-asset workflow, and follow the next_step in the result: propose the brand's default voice for the user to confirm or change, rather than asking them to pick from a list. Pass the confirmed brand_voice_id to generate-asset. Call list-brands before calling this tool and ask the user to select a brand to get the brand_id filter. Required filter: - brand_id: exact match on brand ID One brand voice applies per generation. When the user does not choose one, omit brand_voice_id from generate-asset and the brand's default voice is used.

list-brands

ChatGPT
Returns the brands accessible to the authenticated user, most relevant first. Call this tool first when the user has not specified a brand. Returns at most 25 brands per call; when the user's organization has more, pass a search term to narrow them. Only paginate with offset when the user explicitly asks to see all of their brands. Do not describe the ordering to the user. The brand name field is the foreign key used by list-campaigns and generate-asset; display_name is for presentation to the user.

list-brands-tool

ChatGPT
Returns the brands accessible to the authenticated user. Call this tool first when the user has not specified a brand. The brand name field is the foreign key used by list-campaigns and generate-asset; display_name is for presentation to the user.

list-campaigns

ChatGPT
Returns campaigns accessible to the authenticated user, most relevant first, optionally filtered by brand name. Call this after the user selects a brand (from list-brands) to discover which campaign to use. Returns at most 25 campaigns per call; when the brand has more, pass a search term to narrow them. Only paginate with offset when the user explicitly asks to see all of their campaigns. Do not describe the ordering to the user. Ask the user to choose a campaign, then call generate-asset with the chosen campaign_name and brand_name.

list-campaigns-tool

ChatGPT
Returns campaigns accessible to the authenticated user, optionally filtered by brand name. Call this after the user selects a brand (from list-brands) to discover which campaign to use. Present the results and ask the user to choose a campaign, then call generate-asset with the chosen campaign_name and brand_name.

list-color-kits

ChatGPT
Returns the color kits assigned to a brand that can be applied during asset generation. Call this tool once the brand is chosen in the generate-asset workflow, and only if no theme was chosen. Follow the next_step in the result: propose the brand's default color kit for the user to confirm or change, rather than asking them to pick from a list. Pass the confirmed color_kit_id to generate-asset. Call list-brands before calling this tool and ask the user to select a brand to get the brand_id filter. Required filter: - brand_id: exact match on brand ID One color kit applies per generation. When the user does not choose one, omit color_kit_id from generate-asset and the brand's default color kit is used.

list-font-kits

ChatGPT
Returns the font kits assigned to a brand that can be applied during asset generation. Call this tool once the brand is chosen in the generate-asset workflow, and only if no theme was chosen. Follow the next_step in the result: propose the brand's default font kit for the user to confirm or change, rather than asking them to pick from a list. Pass the confirmed font_kit_id to generate-asset. Call list-brands before calling this tool and ask the user to select a brand to get the brand_id filter. Required filter: - brand_id: exact match on brand ID One font kit applies per generation. When the user does not choose one, omit font_kit_id from generate-asset and the brand's default font kit is used.

list-themes

ChatGPT
Returns email themes accessible to the authenticated user that can be used for asset generation. Call this tool when the user mentions they want to choose or specify a theme for asset generation. Present the results to the user and ask them to choose a theme, then pass the theme_id to generate-asset. By default only published email themes are returned. Results are ordered deterministically by name. Call list-brands before calling this tool and ask the user to select a brand to get the brand_id filter. Required filter: - brand_id: exact match on brand ID Supports optional filters: - name: exact match on theme name - search: partial match on theme name - published: overrides the default. Binary toggle: true returns only published themes, false returns only drafts (not drafts in addition to published)

list-themes-tool

ChatGPT
Returns email themes accessible to the authenticated user that can be used for asset generation. Call this tool when the user mentions they want to choose or specify a theme for asset generation. Present the results to the user and ask them to choose a theme, then pass the theme_id to generate-asset. By default only published email themes are returned. Results are ordered deterministically by name. Call list-brands before calling this tool and ask the user to select a brand to get the brand_id filter. Required filter: - brand_id: exact match on brand ID Supports optional filters: - name: exact match on theme name - search: partial match on theme name - published: overrides the default. Binary toggle: true returns only published themes, false returns only drafts (not drafts in addition to published)

search-modules

ChatGPT
Search modules available to a brand_id. Wildcards are not supported. If the user asks to search for all modules, ask for a search term to use this tool.

generate-asset-tool

Claude

get-asset-preview-tool

Claude

get-asset-tool

Claude

list-assets-tool

Claude

list-brands-tool

Claude

list-campaigns-tool

Claude

list-themes-tool

Claude

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

App Stats

26

Tools

2

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily