Koble til en AI-assistent (MCP)

Koble til en AI-assistent (MCP)

Kopier side

Koble Claude, Cursor, VS Code eller Gemini CLI til Workflow Transactional Email via MCP for å kontrollere konfigurasjoner og feilsøke utsendelser.

Appen kjører en MCP-server, slik at en AI-assistent kan sjekke oppsettet ditt, lage og oversette e-postmaler, administrere HTTP-forespørsler og rydde opp i mediebiblioteket ditt direkte, i stedet for at du må kopiere konfigurasjonen frem og tilbake.

Nyttige ting den kan gjøre: utarbeide et markedsføringsoppsett med bunntekstene dine, oversette et oppsett til alle språkene du selger på, sjekke hvilke e-postoppsett som refererer til en hemmelighet som snart skal byttes ut, finne alle opplastede bilder som ikke lenger brukes, forklare hvorfor gårsdagens utsendelser mislyktes, eller lage en ny HTTP-forespørsel basert på dokumentasjonen til et tredjeparts-API.

Endepunkt

text
POST https://shopify.workflow-transactional-email.app/api/mcp

Transporten skjer via Streamable HTTP. Autentiseringen skjer med samme «bearer»-nøkkel som for REST-API-et - se Autentisering og API-nøkler.

Kobler til

Fanen MCP på appens utviklerside genererer en kommando som er klar til å kopieres, med din URL og nøkkel allerede utfylt, for Claude, Claude Desktop, Cursor, VS Code og Gemini CLI. Bruk den i stedet for å skrive den inn for hånd.

For Claude Code ser kommandoen slik ut:

bash
claude mcp add --transport http flow-transactional-email \
  https://shopify.workflow-transactional-email.app/api/mcp \
  --header "Authorization: Bearer fak_your_key_here"

For redigeringsprogrammer som bruker en JSON-konfigurasjon, ser strukturen slik ut:

~/.cursor/mcp.jsonjson
{
  "mcpServers": {
    "flow-transactional-email": {
      "url": "https://shopify.workflow-transactional-email.app/api/mcp",
      "headers": {
        "Authorization": "Bearer fak_your_key_here"
      }
    }
  }
}

Tilgjengelige verktøy

Verktøysettet avspeiler nøkkelens nivå. En skrivebeskyttet nøkkel blir ikke bare avvist når den prøver å bruke et skriveverktøy - den ser ikke engang dette verktøyet i listen, så en assistent kan ikke overtales til å prøve det.

Les (15 verktøy)

E-postmaler: list_email_templates, get_email_template, get_layout_schema, list_template_translations, list_template_versions, get_template_version. list_email_templates tar imot q, category (transactional eller marketing), page og limit.

E-postavsendere: list_smtp_configs, list_senders

Hemmeligheter: list_secret_keys (kun navn)

HTTP-forespørsler: list_http_requests, get_http_request

Media: list_files (bruk usage: true for å se hva som fremdeles refererer til hver fil)

Historikk: list_history (filtrer etter status, inkludert SKIPPED for markedsførings-e-poster der alle mottakerne har meldt seg av), get_history_entry, get_stats

Lesing og skriving (legger sammen 12)

E-postmaler: create_email_template, update_email_template, delete_email_template

Språk: set_template_translation, delete_template_translation, promote_template_translation

Versjoner: restore_template_version, restore_template_github_version

HTTP-forespørsler: create_http_request, update_http_request, delete_http_request

Media: delete_file

Les, skriv og utfør (legger til 1)

test_http_request - utfører en konfigurert HTTP-forespørsel mot det virkelige målet.

Utarbeide planløsninger med en assistent

Be assistenten om å lese get_layout_schema først: den beskriver det visuelle designformatet med standardinnstillingene for hver blokk, hvilken Liquid du kan bruke og begrensningene, generert av selve byggverktøyet. Deretter tar create_email_template imot et name, et subject og et bodyDesign (visuelt, standard) eller en HTML-body (tekst). Oppsettet vises umiddelbart i appen, og alle endringer lagres i versjonshistorikken, slik at alt assistenten gjør kan angres.

To felt avgjør hvordan et oppsett fungerer i en e-post:

  • category: transactional (standard) eller marketing. En markedsføringsmal utelater mottakere som har meldt seg av, og inneholder en avmeldingslenke og en bunntekst; se Markedsførings-e-poster og avmeldinger.
  • marketingTexts: bunntekstene i et markedsføringsoppsett i stedet for butikkens tekster fra Innstillinger, { unsubscribeText, unsubscribeLinkLabel, companyDetails }; alle feltene er valgfrie; null betyr at tekstene fra Innstillinger brukes. Avmeldingssetningen må inneholde {{ unsubscribe_link }} eller {{ unsubscribe_url }}.

set_template_translation oppretter eller erstatter ett språk med det fullstendige oversatte innholdet. For en tekstmal kan den også inneholde attachments (en liste = dette språkets egne filer, null = malens, utelatt = uendret), og for en markedsføringsmal marketingTexts for det aktuelle språket i tillegg til malens. promote_template_translation gjør et språk til malens hovedspråk; de to bytter plass, slik at ingenting går tapt.

Et godt første forslag:

«Les oppsettskjemaet, og oversett deretter oppsettet mitt «Order shipped» til tysk og fransk. Behold alle Liquid-tagger og URL-er nøyaktig slik de er.»

Hver skriveoperasjon kontrolleres på samme måte som når man lagrer i appen: Liquid må analysere dataene, filene må være dine egne, og verktøyet oppgir hvilket felt som ga feil.

Rydding i mediebiblioteket

En god oppgave for en assistent. Be den om å lage en liste over filene dine med opplysninger om bruken, og deretter slette de som ingen refererer til:

«Vis en liste over filene jeg har lastet opp, med informasjon om bruken, og fortell meg hvilke som ikke brukes av noen. Slett deretter disse.»

delete_file-kommandoen avslås med feilkode 409 dersom en e-postmal eller en forhåndsinnstilling for topp- eller bunntekst fortsatt refererer til filen, og avslaget angir hva som bruker den - dermed kan assistenten ikke fjerne et logo som en aktiv e-post fortsatt trenger, selv om du ber den om det.

Det assistenten aldri kan se

Det finnes bevisst ikke noe verktøy som returnerer en hemmelig verdi, et SMTP-brukernavn eller -passord, eller et påloggingstoken for en postkasse. list_secret_keys returnerer kun navn.

Det er poenget med utformingen: Du kan be en assistent om å skrive en HTTP-forespørsel som autentiserer seg hos betalingsleverandøren din, og den vil henvise til {{ secrets.stripeApiKey }} på riktig måte uten at selve nøkkelen noensinne kommer inn i modellens kontekst.

Historikken som returneres via MCP, blir maskert på nøyaktig samme måte som via REST. Det samme forbeholdet gjelder - maskeringen omfatter feltnavn og verdimønstre, og fritekstfelt kan fortsatt inneholde personopplysninger i kommunikasjonen. Tenk på dette før du lar en assistent søke i et stort historikkintervall.