Skip to main content
Glama
getpoststack

PostStack MCP Server

by getpoststack

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
POSTSTACK_API_KEYYesPostStack API key (`sk_live_…` or `sk_test_…`)
POSTSTACK_MCP_TRACENoSet to `1` to emit per-tool-call NDJSON telemetry to stderr

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_api_keyA

Generate a new PostStack API key. The full key is returned ONCE in this response and cannot be retrieved again. When to use: agent needs to provision credentials for a new integration. Pick "sending_access" for send-only keys (recommended for app servers) or "full_access" for management. Returns: shaped key including the secret string — display it once and tell the user to store it securely. Example: { name: "Backend prod", permission: "sending_access" }

list_api_keysA

List API keys (only the prefix is returned, never the full secret). When to use: audit which keys exist, find a key id to revoke. Returns: { keys: [{ id, name, keyPrefix, permission, mode, ... }] }. Example: { per_page: 50 }

get_api_keyA

Get an API key's metadata (the secret is never returned after creation). When to use: confirm a key's permission, mode or last-used timestamp before revoking. Returns: shaped key without secret. Example: { id: 17 }

revoke_api_keyA

Permanently revoke an API key — all subsequent requests using it will fail. When to use: a key has leaked or is no longer needed. Confirm with the user — irreversible. Returns: { success: boolean }. Example: { id: 17 }

create_broadcastA

Create a draft broadcast targeted at a segment. When to use: agent has assembled a campaign body + segment id and wants to stage it for review or scheduled send. Created in "draft" status — call send_broadcast to dispatch. Returns: shaped broadcast (id, subject, status=draft, recipient counts will populate on send). Example: { segment_id: "seg_abc", from: "Acme hi@acme.io", subject: "April update", html }

list_broadcastsA

List broadcasts. When to use: find recent campaigns, audit which broadcasts were sent, or pick one to inspect with get_broadcast. Returns: { items[], meta } — paginated shaped broadcasts with status and counts. Example: { per_page: 20 }

get_broadcastA

Get a broadcast's details and aggregate delivery stats. When to use: report on send results (delivered/opened/clicked/bounced) for a specific broadcast. Returns: shaped broadcast (subject, status, recipient counts). Example: { id: "br_abc" }

update_broadcastA

Edit a draft broadcast in place. Only draft broadcasts can be updated. When to use: tweak subject/body/segment before sending or before the scheduled time. Returns: shaped broadcast reflecting the new state. Example: { id: "br_abc", subject: "April update (revised)" }

send_broadcastA

Dispatch a draft broadcast to its segment immediately. When to use: after the user has reviewed the staged broadcast and approved sending. The broadcast must be in "draft" status. Returns: { success: boolean }. Example: { id: "br_abc" }

cancel_broadcastA

Cancel a queued or sending broadcast. When to use: stop a broadcast mid-flight. Already-delivered messages cannot be recalled. Returns: { success: boolean }. Example: { id: "br_abc" }

broadcast_performanceA

Get broadcast performance — either for one broadcast (variant breakdown if A/B) or for a leaderboard ranked by a chosen metric. When to use: agent wants to find the best-performing broadcast in a date range, or drill into one broadcast's stats. Pass broadcast_id for single mode, or { since, best_metric } for leaderboard mode. Returns: single mode → { broadcast: { id, subject, status, sent_at, total_recipients, delivered, opened, clicked, bounced, open_rate, click_rate }, variants: [...]|null }. Leaderboard → { metric, since, broadcasts: [...] } sorted by metric desc. Example: { broadcast_id: "br_abc" } — single mode. Example: { since: "2026-03-01T00:00:00Z", best_metric: "click_rate", limit: 5 } — leaderboard mode.

find_non_clickersA

List contacts who received a broadcast but did NOT click any tracked link in it. When to use: build a follow-up campaign to "people who saw it but didn't act". Pair with create_segment + send_broadcast (or send_email) to re-engage them. Returns: { broadcast: { id, subject }, count, contacts: [{ id, email, first_name, last_name }] }. Example: { broadcast_id: "br_abc", limit: 500 }

create_contact_propertyA

Define a custom contact property (typed schema for the contact.properties field). When to use: agent is extending the contact data model — e.g. add a "plan" or "company" field that other tools can filter on. Returns: shaped property definition. Example: { name: "plan", label: "Subscription Plan", type: "select", options: ["free","pro","scale"] }

list_contact_propertiesA

List all custom contact properties defined for this account. When to use: discover which custom fields are available before creating/updating contacts. Returns: { items: [property, ...] }. Example: {}

update_contact_propertyA

Edit a custom contact property's label, options or required flag. When to use: rename a label, expand the option list for a select, or toggle the required flag. Cannot change the type after creation. Returns: shaped property. Example: { id: 5, options: ["free","pro","scale","enterprise"] }

delete_contact_propertyA

Remove a custom contact property definition. Existing contact values for this property are dropped. When to use: a property is unused and being retired. Confirm with the user — values are not recoverable. Returns: { success: boolean }. Example: { id: 5 }

create_contactA

Create a new contact (person who can receive emails / broadcasts). When to use: ingest a new signup, programmatic enrollment, or one-off addition. For bulk imports prefer the API import endpoint. Returns: shaped contact (id, email, names, properties, createdAt). Example: { email: "ada@lovelace.io", first_name: "Ada", properties: { plan: "pro" } }

list_contactsA

List contacts with optional search and segment filtering. When to use: browse the contact book, find candidates by email/name fragment, or list members of a segment. Returns: { items[], meta } — paginated shaped contacts. Example: { search: "@acme.io", segment_id: "seg_xyz" }

get_contactA

Get full details of a contact by id. When to use: inspect a specific contact's properties, subscription state, or last activity. Returns: shaped contact with email, names, properties, unsubscribed flag, createdAt. Example: { id: "con_abc123" }

update_contactA

Update an existing contact's name, properties, or subscription state. When to use: keep the contact record in sync with your app (name change, plan upgrade, opt-out). Returns: shaped contact reflecting the new state. Example: { id: "con_abc123", properties: { plan: "scale" } }

delete_contactA

Permanently delete a contact (irreversible — use unsubscribe_contact for opt-outs). When to use: GDPR erasure or removing a test contact. For unsubscribes, prefer unsubscribe_contact which preserves history. Returns: { success: boolean }. Example: { id: "con_abc123" }

unsubscribe_contactA

Mark a contact as unsubscribed from all email (preserves the contact record). When to use: handle an unsubscribe request received outside PostStack (e.g. CS ticket, app preference). Returns: { success: boolean }. Example: { id: "con_abc123" }

get_contact_by_emailA

Look up a contact by their email address. When to use: agent has an email address (e.g. from a webhook, signup, or user message) and wants the full contact record without paginating list_contacts. Returns 404 if no contact exists with that email — use create_contact to add one. Returns: shaped contact (id, email, names, properties, unsubscribed, createdAt). Example: { email: "ada@lovelace.io" }

get_contact_activityA

Get a contact's recent email-event timeline grouped by event type (sent / delivered / opened / clicked / bounced / complained / failed). When to use: investigate a specific contact's engagement history before sending — e.g. did they bounce on the last campaign, are they frequently opening, when did they last click. Pass email OR id; email triggers a lookup, id is direct. Returns: { contact_id, email, total, events: { sent, delivered, opened, clicked, bounced, complained, failed, other } } where each is an array of { event_id, event_type, created_at, email_id, subject, from, geo_country, ua_client, is_prefetch, metadata }. Example: { email: "ada@lovelace.io", limit: 20 }

get_engagement_summaryA

Get a single contact's engagement summary: segment + lifetime counts + open / click rates + last open / click + top tags. When to use: agent wants to qualify a contact before sending — e.g. "is Ada a frequent opener?", "should we exclude her from a re-engagement push?". Distinct from get_contact_activity which returns the raw timeline. Returns: { segment, last_engaged_at, engagement_calculated_at, lifetime_sent, lifetime_delivered, lifetime_opened, lifetime_clicked, open_rate, click_rate, last_open, last_click, top_tags: [{ tag, count }] }. Example: { email: "ada@lovelace.io" }

search_contactsA

Search contacts with filters (segment, engagement, unsubscribed) and a fuzzy query across email/first_name/last_name. Adds a match_reason on each row indicating which field matched the query. When to use: agent needs to find a candidate set — e.g. "active contacts at @acme.io", "all dormant contacts", "people called Sarah". Use list_contacts for plain pagination without query, or use this when you need filtering or per-row match annotation. Returns: { items: [shaped contact + match_reason], meta: { page, perPage, total, totalPages } }. Example: { query: "ada", filters: { engagement_segment: "active" }, limit: 25 }

create_domainA

Add a new sending domain to PostStack. When to use: a customer is onboarding a new sending domain. The response includes DNS records (SPF, DKIM, DMARC, return-path) the user must configure before verify_domain succeeds. Returns: shaped domain with dnsRecords[] and pending status. Example: { name: "send.acme.io", region: "eu-west-1" }

list_domainsA

List sending domains. When to use: choose which domain to send from, or audit which domains are verified. Returns: { domains: [...] } — array of shaped domains with status and tracking flags. Example: { per_page: 50 }

get_domainA

Get domain details including DNS records and verification status. When to use: read DNS records to display, or check whether the domain is verified before sending. Returns: shaped domain (status, dnsRecords[], tracking flags, verifiedAt). Example: { id: 42 }

verify_domainA

Trigger DNS verification for a domain. When to use: user has configured DNS records (SPF/DKIM/DMARC/return-path) and wants PostStack to re-check them. Returns the new status — "verified" means sending is unblocked. Returns: shaped domain with updated status and per-record verified flags. Example: { id: 42 }

update_domainA

Update domain settings (open/click tracking, TLS mode). When to use: toggle tracking on/off, or switch between opportunistic and enforced TLS. Returns: shaped domain with updated settings. Example: { id: 42, click_tracking: false, tls_mode: "enforced" }

delete_domainA

Permanently delete a sending domain (irreversible — historical email records remain). When to use: a domain is being decommissioned. Confirm with the user first since future sends from any matching from-address will fail. Returns: { success: boolean }. Example: { id: 42 }

check_deliverabilityA

Check whether a from-address is safe to send from RIGHT NOW. When to use: BEFORE sending agent-generated content from a non-default domain. Combines DNS verification (DKIM/SPF/DMARC), 30-day bounce + complaint rates, and the standard deliverability warnings (no plain-text body, link-domain mismatch, oversized HTML, etc.) into one response. Returns: { from, domain, domain_verified, dkim, spf, dmarc, return_path, volume_30d, bounce_rate, complaint_rate, warnings[] }. Example: { from: "Acme hi@acme.io" }

send_emailA

Send a single transactional email immediately, or schedule it for a future time. When to use: the agent has decided what to send (subject + html/text + recipients) and wants PostStack to deliver it. Run preview_email and lint_email first if the body was generated by the agent. Returns: { id } — the new email id, suitable for get_email or cancel_email. Example: { from: "Ada ada@example.com", to: ["new@user.io"], subject: "Welcome", html: "Hi" }

send_batch_emailsA

Send multiple emails in a single batch request (up to 100 per call). When to use: agent needs to send the same or different content to many recipients in one round-trip. For broadcasts to a saved segment use create_broadcast/send_broadcast instead. Returns: { data: [{ id }, ...] } — one id per email in the order submitted. Example: { emails: [{ from, to: ["a@x"], subject: "hi", html }] }

list_emailsA

List previously-sent emails with optional filters and pagination. When to use: triage delivery, look up a specific recipient's history, or filter by status/tag/date. Returns: { items[], meta } — paginated emails with status, recipient, subject, timestamps. Example: { status: "bounced", date_from: "2026-04-10" }

get_emailA

Get full details and event timeline for a specific email by id. When to use: investigate why one email failed/bounced, or confirm delivery for a single send. Returns: shaped email record + events (queued, sent, delivered, opened, clicked, bounced). Example: { id: "em_7kf2x9" }

cancel_emailA

Cancel a scheduled email that has not yet entered the sending pipeline. When to use: agent wants to recall a scheduled send before it goes out. Cannot cancel emails already delivered. Returns: { success: boolean }. Example: { id: "em_7kf2x9" }

reschedule_emailA

Reschedule a scheduled email to a new send time. When to use: a queued email needs its delivery time adjusted (e.g. send earlier/later in business hours). Returns: { success: boolean }. Example: { id: "em_7kf2x9", scheduled_at: "2026-04-18T09:00:00Z" }

lint_emailA

Run a Rspamd-backed spam pre-flight on a draft email and return the score, action, and per-rule symbols. When to use: BEFORE sending agent-generated content. The score (0–15+) and action (no_action / greylist / add_header / soft_reject / reject) tell you whether the message is likely to be filtered. Symbols list the specific rules that fired. Returns: { score, action, symbols[], skipped, suggestions[] } — suggestions[] is derived from symbols whose score > 1. Example: { from: "Acme hi@acme.io", to: ["a@b.io"], subject: "Welcome", html: "hi" }

preview_emailA

Render + lint + measure an email in one shot WITHOUT sending it. When to use: BEFORE send_email when the body was generated by the agent. Combines render_template (if template_id given), spam check, deliverability warnings, and size measurement so you only need one round-trip to know if it's safe to send. Returns: { rendered_subject, rendered_html, rendered_text, size: { html_bytes, text_bytes }, spam: { score, action, symbols[], skipped }, warnings: [{ severity, code, message }] }. Example: { from: "Acme hi@acme.io", to: ["a@b.io"], template_id: "tpl_welcome", variables: { first_name: "Ada" } }

list_inbound_emailsA

List inbound emails received by mailboxes on this account. When to use: triage support inbox, find a recent message to inspect, or filter for messages needing reply. Returns: { data: [...], meta } shaped — id, from, subject, receivedAt per message. Example: { per_page: 20 }

get_inbound_emailA

Get a received inbound email's full headers and body. When to use: read a specific message before drafting a reply (use draft_from_thread or reply_to_inbound_email next). Returns: shaped inbound email with html/text body and headers. Example: { id: 7 }

list_inbound_email_attachmentsA

List attachments on an inbound email (filename, size, contentType). When to use: decide whether to download attachments before forwarding or processing. Returns: { items: [{ filename, contentType, size }] }. Example: { id: 7 }

reply_to_inbound_emailA

Send a reply to an inbound email (subject and threading headers are set automatically). When to use: the agent has drafted a reply body and wants to dispatch it. Quote the original message in the body if needed. Returns: { id } of the new outbound email. Example: { id: 7, from: "support@acme.io", html: "Thanks for reaching out…" }

forward_inbound_emailA

Forward an inbound email to other recipients with an optional cover note. When to use: route a message to a teammate or another address. Returns: { id } of the forwarded outbound email. Example: { id: 7, from: "support@acme.io", to: ["dev@acme.io"], message: "FYI" }

draft_from_threadA

Build a reply-draft skeleton for an inbound email — proper threading, quoted original, salutation/sign-off, suggested from + subject. Heuristic only; the agent fills in the body text. When to use: agent received an inbound email and wants to reply. Call this to get the draft scaffold, fill in body_placeholder with the actual reply, then call reply_to_inbound_email. Returns: { inbound, suggested_from, suggested_subject, salutation, body_placeholder, quoted_html, quoted_text, threading: { in_reply_to, references }, suggested_html, suggested_text }. Example: { inbound_id: 7, tone: "friendly" }

create_mailboxA

Provision a mailbox (IMAP/SMTP inbox) on a verified domain. When to use: agent is setting up a real human-readable inbox (e.g. support@acme.io). The password is required for IMAP/SMTP login. The domain must already be verified. Returns: shaped mailbox with emailAddress and quotaBytes. Example: { domainId: 42, localPart: "support", password: "", displayName: "Acme Support" }

list_mailboxesA

List mailboxes across all domains. When to use: see which inboxes exist, find a mailbox id by email address. Returns: { items[], meta } — paginated shaped mailboxes. Example: { per_page: 50 }

get_mailboxA

Get a mailbox's metadata (status, quota, last login). When to use: inspect a specific mailbox before updating or deleting. Returns: shaped mailbox. Example: { id: 17 }

update_mailboxA

Update a mailbox's display name, quota, status, or webhook setting. When to use: change ownership label, suspend a mailbox, raise quota. Returns: shaped mailbox with new state. Example: { id: 17, status: "suspended" }

delete_mailboxA

Permanently delete a mailbox and all its stored mail. When to use: decommissioning a mailbox. IRREVERSIBLE — confirm with the user, mail is gone. Returns: { success: boolean }. Example: { id: 17 }

change_mailbox_passwordA

Reset a mailbox's IMAP/SMTP password. When to use: rotate after suspected exposure, or onboarding handoff. Returns: { success: boolean }. Example: { id: 17, password: "" }

suggest_from_addressA

Suggest sensible from-addresses for a given purpose, drawn from the team's verified domains + existing mailboxes. When to use: agent doesn't know which from-address to use. Pass the purpose ("transactional", "marketing", "support", "newsletter", etc.); the tool ranks options based on existing mailboxes (real inboxes) and conventional local-parts for the purpose. Returns: { recommended: string|null, alternatives: string[], reasoning: string }. Example: { purpose: "transactional" }

create_segmentA

Create a static contact segment (manually-managed list). When to use: agent needs a named bucket of contacts to send a broadcast to. Add members via add_contacts_to_segment. Returns: shaped segment with id and contactCount=0. Example: { name: "Spring 2026 launch" }

list_segmentsA

List contact segments. When to use: pick a segment id for create_broadcast or list_contacts(segment_id=…). Returns: { segments: [...] } — array of shaped segments with contactCount. Example: { per_page: 50 }

get_segmentA

Get a segment's details and member count. When to use: confirm a segment's contactCount before broadcasting (to estimate volume). Returns: shaped segment (name, contactCount, createdAt). Example: { id: "seg_abc" }

update_segmentA

Rename an existing segment. When to use: clean up segment names. Membership is unaffected. Returns: shaped segment with new name. Example: { id: "seg_abc", name: "Spring 2026 launch (final)" }

delete_segmentA

Delete a segment definition. Contacts in it are NOT deleted. When to use: remove an obsolete segment. Confirm with the user. Returns: { success: boolean }. Example: { id: "seg_abc" }

add_contacts_to_segmentA

Add one or more contacts to a segment. When to use: enroll specific contacts in an existing segment (e.g. agent built a list and wants to materialise it). Returns: { added: number } or similar success indicator. Example: { id: "seg_abc", contact_ids: ["con_1", "con_2"] }

remove_contact_from_segmentA

Remove a single contact from a segment. When to use: targeted removal (e.g. opt-out, manual exclusion). Does not delete the contact. Returns: { success: boolean }. Example: { id: "seg_abc", contact_id: "con_1" }

create_subscription_topicA

Create a subscription topic (named opt-in/opt-out preference like "Product Updates"). When to use: agent is setting up granular preferences so contacts can subscribe per topic instead of all-or-nothing. Returns: shaped topic. Example: { name: "Product Updates", description: "Monthly product news" }

list_subscription_topicsA

List all subscription topics defined for this account. When to use: pick a topic_id for a broadcast, or audit which preferences exist. Returns: { items: [topic, ...] } shaped. Example: {}

delete_subscription_topicA

Permanently delete a subscription topic. Subscriptions are removed. When to use: a topic is being retired. Confirm with the user. Returns: { success: boolean }. Example: { id: 3 }

get_contact_subscriptionsA

List the subscription topics a contact is currently opted in to. When to use: check whether a contact is subscribed to a specific topic before sending. Returns: { items: [{ topicId, subscribedAt }] }. Example: { contact_id: "con_abc" }

subscribe_contact_to_topicA

Opt a contact in to a subscription topic. When to use: explicit user consent ("subscribe me to product updates"). Returns: shaped subscription record. Example: { contact_id: "con_abc", topic_id: 3 }

unsubscribe_contact_from_topicA

Opt a contact out of a subscription topic. When to use: explicit user opt-out for a single preference (the contact remains in other topics and the global list). Returns: { success: boolean }. Example: { contact_id: "con_abc", topic_id: 3 }

list_suppressionsA

List suppressed email addresses (will not receive any emails). When to use: audit which addresses are blocked, or paginate to find a specific entry. Returns: { items[], meta } — paginated suppressions with reason and createdAt. Example: { per_page: 100 }

add_suppressionA

Block an email address from receiving any future sends. When to use: a recipient asked to be removed (manual), or you're importing prior bounces/complaints. Returns: shaped suppression record. Example: { email: "bouncy@aol.com", reason: "hard_bounce" }

remove_suppressionA

Remove an address from the suppression list (sends will resume). When to use: a previously-suppressed user has explicitly opted back in, or a bounce was a misconfiguration. Returns: { success: boolean }. Example: { email: "fixed@aol.com" }

create_templateA

Create a new email template with {{variable}} placeholders. When to use: store a re-usable email body the agent (or app) will send repeatedly. Newly created templates are unpublished — call publish_template before sending. Returns: shaped template with id, version, published=false. Example: { name: "welcome-v3", subject: "Welcome {{first_name}}", html: "Hi {{first_name}}" }

list_templatesA

List email templates. When to use: pick a template id for send_email or render_template, or audit which templates exist. Returns: { items[], meta } — paginated shaped templates with name, version, published flag. Example: { per_page: 50 }

get_templateA

Get a template's full body, subject and variables. When to use: read the source HTML/text before editing, or extract the variable list to know what to pass in. Returns: shaped template with htmlBody, textBody, variables[], version. Example: { id: "tpl_abc" }

update_templateA

Update an existing template's name, subject, body or variable list. When to use: edit a template in place. The template version is bumped on update. Returns: shaped template with new version. Example: { id: "tpl_abc", subject: "Updated subject" }

delete_templateA

Permanently delete a template (irreversible). When to use: an unused template should be removed. Confirm with the user — emails referencing this template_id will fail. Returns: { success: boolean }. Example: { id: "tpl_abc" }

publish_templateA

Mark a template as published so it can be referenced by send_email. When to use: after creating or editing a template you have validated and want available for sending. Returns: shaped template with published=true. Example: { id: "tpl_abc" }

unpublish_templateA

Mark a template as unpublished so it cannot be sent. When to use: hide a template from sending without deleting it (e.g. retiring a campaign while keeping history). Returns: shaped template with published=false. Example: { id: "tpl_abc" }

duplicate_templateA

Create a copy of an existing template (new id, same body, name suffixed " (copy)"). When to use: agent wants to fork a template before editing so the original remains intact. Returns: shaped new template (unpublished draft). Example: { id: 17 }

render_templateA

Server-side render a template with the provided variables. When to use: agent wants to preview the final subject/html/text before sending, or needs to inspect what variables a template requires. Returns missing_variables[] so the agent can prompt the user / fill in defaults. Returns: { subject, html, text, missing_variables[], template_variables[] }. Example: { template_id: "tpl_welcome", variables: { first_name: "Ada" } }

create_webhookA

Subscribe a URL to receive event notifications via signed POST requests. When to use: agent is configuring an integration that needs to react to email/contact/domain events in real time. Returns: shaped webhook with id, url, events[], active=true. Example: { url: "https://hooks.acme.io/poststack", events: ["email.bounced", "email.complained"] }

list_webhooksA

List configured webhook endpoints. When to use: audit which integrations are receiving events. Returns: { webhooks: [...] } — array of shaped webhooks. Example: { per_page: 50 }

get_webhookA

Get a webhook's details. When to use: inspect the URL, event list, or active state for a specific webhook. Returns: shaped webhook. Example: { id: 17 }

update_webhookA

Edit a webhook's URL, event list, or enabled state. When to use: rotate to a new endpoint, expand/narrow events, or temporarily disable. Returns: shaped webhook with new state. Example: { id: 17, enabled: false }

delete_webhookA

Permanently delete a webhook endpoint. When to use: the integration is being removed. Confirm with the user — events will no longer be delivered. Returns: { success: boolean }. Example: { id: 17 }

Prompts

Interactive templates invoked by user choice

NameDescription
draft_welcome_emailGuide the agent through drafting and sending a personalised welcome email to a new contact. Looks the contact up, picks a published welcome template, renders it, lints, and sends.
reengage_dormantFind dormant contacts and draft a re-engagement campaign. Pulls the dormant segment, picks an opt-out-friendly template, and stages a broadcast for review.
followup_non_clickersDemo B path — find the best-performing recent broadcast, identify recipients who did NOT click, and draft a follow-up to them.
summarize_campaignProduce a short performance report for a broadcast: headline metrics, A/B winner if applicable, and a one-line recommendation.
triage_inboundRead an inbound email, classify it (support / sales / billing / spam / other), and propose the next action. Drafts a reply skeleton if appropriate.

Resources

Contextual data attached and managed by the client

NameDescription
templatesList of all email templates for the authenticated team. Includes id, name, subject, version, published flag.
domainsList of sending domains for the authenticated team — name, status, DNS records, tracking flags.
segmentsList of contact segments for the authenticated team — id, name, contact count.
brandAuthenticated team identity + a default sending suggestion. Includes team name, verified domain count, and the recommended from-address derived from existing mailboxes.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/getpoststack/mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server