Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KALAGH_WS_URLNoSocket.IO URL, e.g. https://kalagh-ws.smg.tr. Required for ws. When set, provider events are buffered for events_recent.
KALAGH_API_KEYYesThe provider's API_KEY. Sent as x-api-key (REST), in the handshake (Socket.IO), or as x-api-key metadata (gRPC).
KALAGH_API_URLYesREST base, e.g. https://kalagh.smg.tr (no /api/kalagh). Always needed: the tool list, uploads and /storage downloads use it.
KALAGH_GRPC_TLSNoTLS on the gRPC channel. Default is TLS, except for loopback. grpcs:// in the URL forces it on, and grpc:// or false turns it off. Plaintext is the default only for localhost/127.0.0.1/::1, because the key travels in the call metadata.
KALAGH_GRPC_URLNohost:port, e.g. kalagh-grpc.smg.tr:443. Required for grpc. A local provider is grpc://localhost:4002. When set (and no socket URL is), provider events come from StreamEvents.
KALAGH_READ_ONLYNoWhen true, only the tools that read are listed.false
KALAGH_TRANSPORTNoTransport to use: http, ws or grpc.http
KALAGH_TIMEOUT_MSNoPer-call timeout in milliseconds.60000
KALAGH_DOWNLOAD_DIRNoWhere avatars, media and storage downloads are written. Defaults to $TMPDIR/kalagh-mcp.
KALAGH_STORAGE_ORIGINSNoComma-separated origins storage_get may download from besides the provider's own, e.g. the object store behind presigned attachment links. Nothing else is ever fetched.

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
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
channels_aliasesC

The identity pairings this channel observed (e.g. WhatsApp LID ↔ phone JID) (POST /api/kalagh/channels/aliases · gRPC GetPlatformAliases · socket "channels/aliases")

channels_createC

Create a channel and return its first QR code / state (POST /api/kalagh/channels/create · gRPC CreateChannel · socket "channels/create")

channels_credentials_patchA

Deep-merge fields into a channel’s stored credentials Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/channels/credentials/patch · gRPC PatchChannelCredentials · socket "channels/credentials/patch")

channels_deleteB

Delete a channel and everything that hangs off it Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/channels/delete · gRPC DeleteChannel · socket "channels/delete")

channels_getC

One channel by row id or by the connected account id (POST /api/kalagh/channels/get · gRPC GetChannel · socket "channels/get")

channels_listD

A page of channels (POST /api/kalagh/channels/list · gRPC GetChannels · socket "channels/list")

channels_request_qrB

A fresh login QR code for a channel awaiting pairing (POST /api/kalagh/channels/request-qr · gRPC RequestQRCode · socket "channels/request-qr")

channels_restartB

Reconnect the channel’s session, keeping its pairing (POST /api/kalagh/channels/restart · gRPC RestartChannel · socket "channels/restart")

channels_terminateB

Log the channel out of the platform (pairing is dropped) Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/channels/terminate · gRPC TerminateChannel · socket "channels/terminate")

channels_unloadB

Drop the channel’s session from memory without logging out (POST /api/kalagh/channels/unload · gRPC UnloadChannel · socket "channels/unload")

channels_updateB

Change a channel’s title, webhook, event and logging settings Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/channels/update · gRPC UpdateChannel · socket "channels/update")

chats_add_participantB

Add a participant to a chat Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/chats/add-participant · gRPC AddChatParticipant · socket "chats/add-participant")

chats_archiveC

Archive a chat (POST /api/kalagh/chats/archive · gRPC ArchiveChat · socket "chats/archive")

chats_createC

Create a chat (a group, where the platform has them) Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/chats/create · gRPC CreateChat · socket "chats/create")

chats_deleteB

Soft-delete a chat Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/chats/delete · gRPC DeleteChat · socket "chats/delete")

chats_getB

One chat by row id, or by platform id within a channel (POST /api/kalagh/chats/get · gRPC GetChat · socket "chats/get")

chats_get_avatarB

A chat’s avatar, described; the bytes are served from GET /storage/* The file is saved locally and its path returned (images are also shown). gRPC answers the bytes in-band; on REST/socket they are fetched from the provider’s storage. (POST /api/kalagh/chats/get-avatar · gRPC GetChatAvatar)

chats_get_participantsC

The stored participants of a chat (POST /api/kalagh/chats/get-participants · gRPC GetChatParticipants · socket "chats/get-participants")

chats_listC

A page of a channel’s chats (POST /api/kalagh/chats/list · gRPC GetChats · socket "chats/list")

chats_mark_as_readB

Mark a whole chat as read Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/chats/mark-as-read · gRPC MarkChatAsRead · socket "chats/mark-as-read")

chats_muteC

Mute a chat (POST /api/kalagh/chats/mute · gRPC MuteChat · socket "chats/mute")

chats_pinC

Pin a chat (POST /api/kalagh/chats/pin · gRPC PinChat · socket "chats/pin")

chats_remove_participantB

Remove a participant from a chat Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/chats/remove-participant · gRPC RemoveChatParticipant · socket "chats/remove-participant")

chats_searchC

Search a channel’s chats by name (POST /api/kalagh/chats/search · gRPC SearchChats · socket "chats/search")

chats_syncC

Import the platform’s chat list for a channel (POST /api/kalagh/chats/sync · gRPC SyncChats · socket "chats/sync")

chats_unarchiveC

Unarchive a chat (POST /api/kalagh/chats/unarchive · gRPC UnarchiveChat · socket "chats/unarchive")

chats_unmuteC

Unmute a chat (POST /api/kalagh/chats/unmute · gRPC UnmuteChat · socket "chats/unmute")

chats_unpinC

Unpin a chat (POST /api/kalagh/chats/unpin · gRPC UnpinChat · socket "chats/unpin")

chats_updateC

Rename a chat Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/chats/update · gRPC UpdateChat · socket "chats/update")

contacts_blockB

Block a contact on the platform Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/contacts/block · gRPC BlockContact · socket "contacts/block")

contacts_createC

Create a contact from a name and phone number (POST /api/kalagh/contacts/create · gRPC CreateContact · socket "contacts/create")

contacts_deleteC

Soft-delete a contact Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/contacts/delete · gRPC DeleteContact · socket "contacts/delete")

contacts_getB

One contact by row id, or by platform id within a channel (POST /api/kalagh/contacts/get · gRPC GetContact · socket "contacts/get")

contacts_get_avatarC

A contact’s avatar, described; the bytes are served from GET /storage/* The file is saved locally and its path returned (images are also shown). gRPC answers the bytes in-band; on REST/socket they are fetched from the provider’s storage. (POST /api/kalagh/contacts/get-avatar · gRPC GetContactAvatar)

contacts_listC

A page of a channel’s contacts (POST /api/kalagh/contacts/list · gRPC GetContacts · socket "contacts/list")

contacts_searchB

Search a channel’s contacts by name or number (POST /api/kalagh/contacts/search · gRPC SearchContacts · socket "contacts/search")

contacts_syncC

Import the platform’s address book for a channel (POST /api/kalagh/contacts/sync · gRPC SyncContacts · socket "contacts/sync")

contacts_unblockC

Unblock a contact on the platform Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/contacts/unblock · gRPC UnblockContact · socket "contacts/unblock")

contacts_updateC

Rename a contact in the provider’s own records (POST /api/kalagh/contacts/update · gRPC UpdateContact · socket "contacts/update")

contacts_update_statusC

Store a contact’s status / about text (POST /api/kalagh/contacts/update-status · gRPC UpdateContactStatus · socket "contacts/update-status")

healthA

Liveness probe — no authentication required (GET /api/kalagh/health)

infoB

Which platform this provider instance serves (GET /api/kalagh/info)

logs_listC

A page of a channel’s activity log (POST /api/kalagh/logs/list · gRPC GetLogs · socket "logs/list")

logs_webhooksC

A page of a channel’s webhook delivery log (POST /api/kalagh/logs/webhooks · gRPC GetWebhookLogs · socket "logs/webhooks")

messages_attachmentsC

A cursor page of a chat’s file-bearing messages (POST /api/kalagh/messages/attachments · gRPC GetMessageAttachments · socket "messages/attachments")

messages_deleteB

Delete a message for everyone Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/delete · gRPC DeleteMessage · socket "messages/delete")

messages_forwardB

Forward a message to one or more chats Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/forward · gRPC ForwardMessage · socket "messages/forward")

messages_getB

One message by row id, or by platform id within a channel (POST /api/kalagh/messages/get · gRPC GetMessage · socket "messages/get")

messages_get_mediaB

Fetch a message’s media into provider storage and describe it The file is saved locally and its path returned (images are also shown). gRPC answers the bytes in-band; on REST/socket they are fetched from the provider’s storage. (POST /api/kalagh/messages/get-media · gRPC GetMessageMedia)

messages_historyB

A page of stored messages before a given one — never starts a fetch (POST /api/kalagh/messages/history · gRPC GetMessageHistory · socket "messages/history")

messages_listC

A cursor page of a chat’s messages (POST /api/kalagh/messages/list · gRPC GetMessages · socket "messages/list")

messages_mark_as_readC

Mark one message — and the chat up to it — as read Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/mark-as-read · gRPC MarkMessageAsRead · socket "messages/mark-as-read")

messages_reactC

React to a message with an emoji Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/react · gRPC ReactToMessage · socket "messages/react")

messages_remove_reactionA

Remove a reaction from a message Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/remove-reaction · gRPC RemoveReaction · socket "messages/remove-reaction")

messages_replyB

Reply to a message, quoting it Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/reply · gRPC ReplyMessage · socket "messages/reply")

messages_searchB

Search a channel’s messages, optionally within one chat (POST /api/kalagh/messages/search · gRPC SearchMessages · socket "messages/search")

messages_sendC

Send a message carrying a whole MessageContent Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/send · gRPC SendMessage · socket "messages/send")

messages_send_contactC

Send a contact card (vCard) Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/send-contact · gRPC SendContact · socket "messages/send-contact")

messages_send_eventC

Send a scheduled event Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/send-event · gRPC SendEvent · socket "messages/send-event")

messages_send_interactiveC

Send quick-reply buttons and/or a structured list Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/send-interactive · gRPC SendInteractive · socket "messages/send-interactive")

messages_send_locationC

Send a location (or a venue, when name/address are given) Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/send-location · gRPC SendLocation · socket "messages/send-location")

messages_send_mediaC

Send a message carrying one or more uploaded files Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/send-media · gRPC SendMedia)

messages_send_pollB

Send a poll — question plus 2..12 options Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/send-poll · gRPC SendPoll · socket "messages/send-poll")

messages_syncC

Pull a page of a chat’s history from the platform (POST /api/kalagh/messages/sync · gRPC SyncMessages · socket "messages/sync")

messages_updateB

Edit a sent message’s text Reaches other people on the platform, deletes, or redirects data — say exactly what will happen and get the user’s confirmation first. (POST /api/kalagh/messages/update · gRPC UpdateMessage · socket "messages/update")

storage_getA

Download a stored object (media, avatar) from the provider’s storage to a local file. Pass the path after /storage/, or a full /storage/... URL as found in a message attachment. The file is saved locally and its path returned (images are also shown). gRPC answers the bytes in-band; on REST/socket they are fetched from the provider’s storage. (GET /storage/{path})

statusB

How this MCP server is connected: transport, endpoints, where the tool schemas came from, the event subscription, and the provider’s own health and info.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3/5.0

Scored across 67 tools

Disambiguation4/5

Tools are cleanly namespaced by domain (chats_, contacts_, messages_, channels_, logs_) and most have a single distinct action. A few boundaries are soft — e.g. messages_send versus the specialized send_media/send_contact/send_event variants, and messages_list vs messages_history vs messages_sync — but descriptions clarify the fetch-vs-store distinction.

Naming Consistency5/5

Every tool follows a strict snake_case namespace_verb_noun pattern (chats_add_participant, messages_send_poll, channels_request_qr). Verb choices are consistent across domains, making the set highly predictable.

Tool Count2/5

67 tools is very heavy and exceeds the range where an agent can hold the surface in mind comfortably. Although the domain (channels, chats, contacts, messages, media, storage, logs) is genuinely broad and most tools earn their place, the sheer granularity is excessive.

Completeness5/5

The surface covers full lifecycle operations: create/get/list/update/delete for chats, contacts, and channels; a rich message action set (send, reply, forward, react, edit, delete, read); plus media storage, sync, search, and logs. No obvious dead ends for the stated messaging-platform purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues