Skip to main content
Glama
FirstReply

FirstReply MCP Server

Official
by FirstReply

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoHTTP port (HTTP mode).8080
MCP_ENDPOINT_PATHNoHTTP endpoint path./
FIRSTREPLY_API_URLNoAPI base URL.https://api.firstreply.ai
FIRSTREPLY_API_TOKENYesOrganization API key (fr_...) used to authenticate against the FirstReply REST API. Sent as Authorization: Bearer. Created in FirstReply under Organization → Development → API Keys.

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": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
organization_listA

List the organizations the authenticated account can access, including ids, names and plans. Use the organizationId in all other tools.

organization_getB

Get an organization: name, default language, description, plan, auto-close setting and the custom AI prompts (persona, reply instructions, classification instructions).

organization_updateA

Update the settings of an organization. Only provide fields to change. Requires organization admin permission.

organization_usageB

Plan and usage of an organization: plan name, trial / active / cancelled state, inbox and member counts against the plan limits.

member_listB

List the members of an organization with their profile and permission level. Use member ids to assign conversations.

member_getB

Get one organization member by id.

member_createA

Add a member to an organization by email address. Requires organization admin permission.

member_updateA

Change the permission level of an organization member. Requires organization admin permission.

member_deleteA

Remove a member from an organization. Their assigned conversations stay in the organization. Requires organization admin permission.

api_key_listA

List the named API keys of an organization (name, masked prefix, created, last used, expiry). Never returns the key values. Requires organization admin permission.

api_key_createA

Create a new named API key for an organization. The response contains the plaintext key exactly once: relay it to the user immediately and treat it as a secret; it cannot be retrieved later. Requires organization admin permission.

api_key_deleteA

Delete (revoke) an API key of an organization. Integrations using the key stop working immediately, including this MCP server if the key it authenticates with is deleted. Requires organization admin permission.

inbox_listA

List the support inboxes of an organization: email, WhatsApp, Messenger, Instagram, LinkedIn, Google Play, App Store and website chat, with their type, name and health.

inbox_getB

Get one inbox by id: type, name, connected account or mail server, signature, health and activation state.

inbox_statisticsB

Statistics per inbox of an organization (conversation volumes).

inbox_refreshA

Fetch new messages from an inbox now instead of waiting for the next scheduled retrieval.

inbox_testA

Test the connection of an inbox to its platform (mail server, Meta, Google, Apple, ...) and report the result.

conversation_listA

List customer conversations of an organization, highest priority and most recent activity first (by relevance when searching). All filters are optional and combine. Each result carries the subject, status, priority, classification, assignee, contact, language and the last message.

conversation_getA

Get a customer conversation by id: subject, status, priority, classification (with the AI's reason and confidence), assignment, contact, language and last message.

conversation_threadA

Get a conversation together with all of its messages in one call. Prefer this over conversation_get + conversation_messages when the full history is needed.

conversation_messagesA

List the messages of a conversation, newest first. Each message carries sender, recipients, plain text, detected language, a translation into the team's language when they differ, and draft / internal note flags.

conversation_replyA

Send a reply to the customer in a conversation, delivered through the conversation's inbox (email, WhatsApp, ...). Sending is irreversible: only call it with a text the user has approved. Set internal=true to add an internal note visible to the team only, or draft=true to store a draft the team can review and send with message_send.

conversation_closeC

Close a customer conversation.

conversation_readB

Mark an unread conversation as read.

conversation_spamA

Mark a conversation as spam, or undo that with spam=false.

conversation_updateB

Update a customer conversation: assign it to a member, change priority, status, classification, subject, language, contact or spam flag. Only provide fields to change.

conversation_deleteB

Delete a conversation and all of its messages permanently.

conversation_statsB

Daily counts of opened and closed conversations of an organization for a date range.

conversation_stats_by_memberB

Conversation statistics per organization member for a date range: who handled how many conversations.

conversation_metricsB

Support metrics of an organization for a date range: totals and closing rate, first reply times (median, p90, average), AI reply share, sentiment share, closing rate over time, close reasons and closes per member.

conversation_totalsC

Current conversation totals of an organization (e.g. open and unread counts).

message_getA

Get one message by id: sender, recipients, subject, plain text, detected language, translation, attachments and the draft / internal note flags.

message_updateA

Edit a draft or an internal note before it is sent: replace its text, subject, language or translation. Only provide fields to change. Sent messages cannot be edited.

message_sendA

Send a draft message to the customer through the conversation's inbox. Irreversible: only call it after the user approved the draft (read it with message_get first).

message_deleteB

Delete a message permanently, e.g. a draft or an internal note.

contact_listA

List or search the contacts (customers) of an organization: name, email, phone, messaging ids, custom fields and conversation count.

contact_getA

Get one contact by id, including custom field values and the number of conversations.

contact_createA

Create a contact. Provide at least a name or an email address.

contact_updateB

Update a contact. Only provide fields to change.

contact_deleteB

Delete a contact permanently.

contact_field_listA

List the custom contact fields defined in an organization (key, name, type: 0 = text, 1 = link, 2 = button). Use the keys with contact_create and contact_update.

classification_listB

List the classifications of an organization with their automation settings (AI reply, draft, auto close, default assignee, prompt, template).

classification_getB

Get one classification by id.

classification_createC

Create a classification.

classification_updateB

Update a classification. Only provide fields to change.

classification_deleteA

Delete a classification. Conversations that use it are moved to reassignTo or left unclassified. Use classification_impact first to see how many conversations and knowledge entries are affected.

classification_impactA

Preview what deleting a classification would affect (conversations, knowledge entries).

classification_statisticsB

How many conversations fall into each classification of an organization.

knowledge_searchA

Search the knowledge base of an organization (full text: words are AND-ed and prefix matched, "quoted phrases", -word to exclude). Omit search to browse all entries. Entries are question / answer pairs (prompt / completion); synced articles are split into chunks that share a source.

knowledge_getC

Get one knowledge entry by id.

knowledge_createB

Add a knowledge entry the AI can use for replies: a question or topic and its answer.

knowledge_updateA

Update a knowledge entry. Only provide fields to change.

knowledge_deleteB

Delete a knowledge entry permanently.

knowledge_source_listA

List the knowledge sources of an organization (websites, GitHub, Notion, GitBook, ...) with their sync state, last sync time, last error and number of synced entries.

knowledge_source_getC

Get one knowledge source by id.

knowledge_source_syncA

Start a sync of a knowledge source now. Runs in the background; check knowledge_source_status for the result.

knowledge_source_statusB

Sync status of a knowledge source: state (PENDING, SYNCING, SUCCESS, ERROR), last sync time, last error, entry count.

ai_draft_replyA

Generate an AI reply draft for a conversation using the organization's configured prompts and knowledge base. Returns the draft without sending it.

ai_promptA

Run a free-form prompt through the organization's AI: it answers with the organization's persona and response rules and, unless disabled, the knowledge base entries matching the prompt. Use it to draft texts or answer questions from the knowledge base. Include any conversation context in the prompt itself.

ai_translateA

Translate a text into a language, e.g. a reply into the customer's language before conversation_reply. The language of the text is detected first: when it already is the target language the text comes back untouched with translated=false. An empty translation means the translation failed.

ai_testA

Simulate an incoming customer message: returns the classification the AI would assign, whether it would be spam, and the reply it would give, without creating a conversation. Useful to check classifications, prompts and knowledge.

searchA

Search conversations, contacts, knowledge entries and messages of an organization in one call. Returns the top matches per type with the total count per type. Words are AND-ed and prefix matched. Use "quoted phrases", -word to exclude, and the operators from:, subject:, is:<open|closed|unread|read|assigned|unassigned|ai>, has:<attachment|draft>, before:, after:.

template_listB

List or search the reply templates of an organization. A template can have language variants that reference it as parent.

template_getA

Get one reply template by id, with its plain text and HTML.

template_createC

Create a reply template.

template_updateA

Update a reply template. Only provide fields to change.

template_deleteB

Delete a reply template permanently.

prompt_listA

List or search the saved AI prompts of an organization. Classifications reference a prompt for their AI replies, and ai_prompt can apply one.

prompt_getB

Get one saved prompt by id.

prompt_createC

Create a saved AI prompt.

prompt_updateB

Update a saved prompt. Only provide fields to change.

prompt_deleteC

Delete a saved prompt permanently.

webhook_listB

List the webhooks of an organization: target URL and subscribed events.

webhook_getC

Get one webhook by id.

webhook_createA

Create a webhook that POSTs the given events to a URL. Deliveries are signed with a secret: call webhook_rotate_secret to obtain one.

webhook_updateA

Update the target URL or events of a webhook. Only provide fields to change.

webhook_deleteB

Delete a webhook. The target stops receiving events immediately.

webhook_testA

Send a test event to a webhook and report the delivery result (status code, response).

webhook_rotate_secretA

Generate a new signing secret for a webhook. The response contains the secret exactly once; the previous secret stops validating immediately.

filter_listA

List the saved conversation filters of the authenticated user in an organization, with their criteria and conversation counts.

filter_getB

Get one saved conversation filter by id.

filter_createB

Save a conversation filter (a named view in the inbox). All criteria are optional and combine.

filter_updateA

Update a saved conversation filter. Only provide fields to change; criteria not given keep their value.

filter_deleteB

Delete a saved conversation filter.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.1/5.0

Scored across 84 tools

Disambiguation4/5

Tools generally target distinct resource-action pairs, and descriptions clarify overlaps like conversation_reply vs message_send. However, some pairs (conversation_thread vs conversation_get + conversation_messages, search vs knowledge_search) could cause hesitation. Overall mostly distinct.

Naming Consistency5/5

All tool names follow a consistent snake_case resource_action pattern (e.g., conversation_list, webhook_create, knowledge_source_sync). There are no mixed conventions, making the set predictable and easy to navigate.

Tool Count1/5

84 tools is an extreme mismatch for an MCP server, as the sheer volume will overwhelm an agent's context and decision-making. According to the calibration, 50+ tools merits the lowest score despite the platform's breadth.

Completeness3/5

Core workflows for conversations, contacts, classifications, templates, prompts, and webhooks have full CRUD. However, key lifecycle operations are missing for inboxes (no create/update/delete) and knowledge sources (no create/update/delete), creating notable dead ends for administrative tasks.

Maintenance

ActivityMaintained
ResponsivenessNo issues