Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KEILA_URLNoKeila instance URLhttps://mail.korroni.com
KEILA_API_KEYYesAPI key (create in Keila dashboard)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_contactsB

List all contacts in Keila with pagination.

Args: page: Page number for pagination (optional).

Returns: A dict with 'data' (list of contacts) and 'meta' (pagination info). Each contact has id, email, first_name, last_name, status, data, and timestamps.

get_contactA

Fetch a single contact by ID.

Args: contact_id: The contact ID (e.g. "c_12345").

Returns: A dict with contact details: id, email, first_name, last_name, status, data.

create_contactC

Create a new contact in Keila.

Args: email: Email address (required). first_name: First name (optional). last_name: Last name (optional).

Returns: The created contact record.

update_contactC

Update an existing contact.

Args: contact_id: The contact ID (e.g. "c_12345"). email: New email address (optional). first_name: New first name (optional). last_name: New last name (optional).

Returns: The updated contact record.

delete_contactB

Delete a contact.

Args: contact_id: The contact ID (e.g. "c_12345").

Returns: Confirmation message.

list_campaignsB

List all campaigns in Keila.

Returns: A dict with 'data' (list of campaigns). Each campaign has id, subject, text_body, sender_id, segment_id, settings, sent_at, scheduled_for, and timestamps.

get_campaignA

Fetch a single campaign by ID.

Args: campaign_id: The campaign ID (e.g. "mc_12345").

Returns: Campaign details including subject, body, sender, segment, and delivery status.

create_campaignA

Create a new email campaign. Does NOT send it — use send_campaign after.

The body supports Liquid templates: {{ contact.first_name }}, {{ contact.email }}.

Args: subject: Email subject line. text_body: Email body content (markdown by default). sender_id: Sender ID to send from (e.g. "ms_12345"). Use list_senders to find IDs. settings_type: Content type — "markdown", "text", "mjml", or "block" (default: "markdown"). segment_id: Optional segment ID to restrict recipients (e.g. "sgm_12345"). preview_text: Optional preview text shown in email clients.

Returns: The created campaign record.

update_campaignA

Update an existing campaign (only unsent campaigns can be updated).

Args: campaign_id: The campaign ID (e.g. "mc_12345"). subject: New subject line (optional). text_body: New body content (optional). sender_id: New sender ID (optional). segment_id: New segment ID (optional). preview_text: New preview text (optional).

Returns: The updated campaign record.

delete_campaignB

Delete a campaign.

Args: campaign_id: The campaign ID (e.g. "mc_12345").

Returns: Confirmation message.

send_campaignA

Send a campaign immediately to all contacts (or segment contacts).

WARNING: This sends real emails. Make sure the campaign content and recipient list are correct before calling this.

Args: campaign_id: The campaign ID (e.g. "mc_12345").

Returns: Delivery queued confirmation.

schedule_campaignA

Schedule a campaign for future delivery.

Args: campaign_id: The campaign ID (e.g. "mc_12345"). scheduled_for: ISO 8601 datetime (e.g. "2026-03-15T14:00:00Z").

Returns: The updated campaign record with scheduled_for set.

list_segmentsB

List all contact segments.

Returns: A dict with 'data' (list of segments). Each segment has id, name, and filter.

create_segmentA

Create a new contact segment with a filter.

Filter examples: {"email": {"$like": "%@example.com"}} — contacts with example.com emails {"inserted_at": {"$gt": "2026-01-01"}} — contacts added after Jan 1

Args: name: Segment name. filter: Filter JSON object for matching contacts.

Returns: The created segment record.

delete_segmentA

Delete a segment. Does not delete the contacts in it.

Args: segment_id: The segment ID (e.g. "sgm_12345").

Returns: Confirmation message.

list_sendersA

List all configured senders. Use sender IDs when creating campaigns.

Returns: A dict with 'data' (list of senders with id, name, from_email, reply_to).

list_formsB

List all signup forms.

Returns: A dict with 'data' (list of forms).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 17 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Tools are organized by resource type (campaign, contact, segment, sender, form) and action (create, get, list, update, delete, schedule, send), making it easy for an agent to select the correct one. Overlap is minimal, such as create_campaign and send_campaign being clearly separated in workflow.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, with verbs like create, get, list, update, delete, schedule, and send paired with nouns like campaign, contact, segment, sender, and form. There are no deviations in style or convention, making the set predictable and readable.

Tool Count5/5

With 17 tools, the count is well-scoped for an email marketing platform, covering core CRUD operations for campaigns, contacts, and segments, plus essential utilities like listing senders and forms, and campaign-specific actions like scheduling and sending. Each tool earns its place without bloat or redundancy.

Completeness5/5

The tool surface provides complete CRUD/lifecycle coverage for the domain of email marketing. It includes create, get, list, update, and delete for campaigns, contacts, and segments, plus specialized actions like schedule_campaign and send_campaign, and supporting tools like list_senders and list_forms. There are no obvious gaps that would hinder agent workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues