customer-replies-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REPLIES_DATA_PATH | No | Path to the templates JSON file. Defaults to ~/.customer-replies/templates.json |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| replies_list_categoriesA | List all reply categories with template counts per category and language. Use this first to discover what kinds of customer replies exist (greeting, price_inquiry, repair_status, ready_for_pickup, warranty, complaint, etc.). Returns: JSON array of { category, count, languages }. |
| replies_search_templatesA | Search customer reply templates by keyword, category, language, or tone. Args:
Returns: JSON array of template summaries { id, category, title, language, tone, variables, tags }. Use the id with replies_get_template or replies_compose_reply. Examples:
|
| replies_get_templateA | Get one template by id, including the full body with {{variable}} placeholders. Args:
Returns: full template JSON { id, category, title, language, tone, body, variables, tags, createdAt, updatedAt }. |
| replies_compose_replyA | Render a ready-to-send customer reply by filling a template's {{variables}} with real values. Args:
Returns: { text, missingVariables }. If missingVariables is non-empty the reply still contains raw {{placeholders}} — fill them and call again, or ask the user for the values. Example: compose a status update in Arabic for customer أحمد about his iPhone 13. |
| replies_whatsapp_linkA | Compose a reply (from a template + variables, or from raw text) and wrap it in a clickable https://wa.me deep link that opens WhatsApp with the message pre-filled, ready for a human to press send. Arabic and English text both work — the text is URL-encoded as UTF-8. Args:
Provide either template_id or text (not both, not neither). Returns: { url, text, missingVariables }. This does NOT send anything — it only builds a link. Opening the link (or the human clicking it) still requires WhatsApp to be installed/logged in on that device; sending is a manual click, nothing is sent automatically. |
| replies_add_templateA | Create a new reply template. Placeholders in body use {{variable}} syntax; variables are auto-extracted from the body. Args:
Returns: the created template JSON. |
| replies_update_templateA | Update fields of an existing template. Only provided fields change. If body changes, variables are re-extracted automatically. Args:
Returns: the updated template JSON. |
| replies_delete_templateA | Permanently delete a template by id. This cannot be undone. Args:
Returns: { deleted: boolean, id }. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool has a distinct purpose: CRUD for templates, search, categories listing, composing a reply, and generating a WhatsApp link. There is no overlap or ambiguity.
All tools share the 'replies_' prefix and most follow a verb_noun pattern (e.g., replies_add_template, replies_delete_template). The exception is replies_whatsapp_link, which is a noun_noun and slightly deviates from the pattern.
Eight tools is a well-scoped number for a customer reply template management server. It covers creation, retrieval, updating, deletion, search, categories, composition, and WhatsApp integration without bloat.
The server covers the full CRUD lifecycle for templates, plus search, categories, composition, and WhatsApp linking. A direct 'list all templates' tool is missing, but the search tool with no filters likely serves that purpose.