MCP server FirstReply
Коммит 13 нояб. 2026 г.Позволяет ИИ-ассистенту управлять операциями клиентской поддержки, просматривать переписки, искать по базам знаний и планировать публикации в социальных сетях.
Также известен как FirstReply/firstreply-mcp
- Звёзды
- 1
- Инструменты
- 84
- Загрузки, 30 дней
- —
- Последняя версия
- —
- Последний коммит
- 13 нояб. 2026 г.
- Лицензия
- MIT
Что такое FirstReply MCP?
FirstReply — это MCP server. Позволяет ИИ-ассистенту управлять операциями клиентской поддержки, просматривать переписки, искать по базам знаний и планировать публикации в социальных сетях. Он предоставляет 84 инструмента, например organization_list, organization_get, organization_update.
Сводка сгенерирована из README проекта
О FirstReply MCP server
firstreply-mcp позволяет управлять клиентской поддержкой и присутствием в социальных сетях прямо из ИИ-ассистента. Этот MCP server подключает ИИ-клиенты к платформе FirstReply, позволяя пользователям обрабатывать многоканальные коммуникации, включая WhatsApp, Instagram, X и электронную почту. Он предоставляет инструменты для просмотра переписок, поиска по базам знаний, управления контактами и планирования постов в социальных сетях.
Разработчики могут использовать этот сервер через stdio или HTTP, чтобы наделить ассистента полномочиями по управлению операциями поддержки. Ассистент может составлять черновики и переводить ответы, обновлять записи в базе знаний и планировать публикации в различных социальных сетях. Он также позволяет выполнять административные задачи, такие как управление участниками организации, API ключами и просмотр статистики каналов. Все действия ограничены правами доступа и проверяются через FirstReply REST API, что гарантирует безопасную обработку критических операций, таких как удаление переписок или участников.
Что вы можете с ним делать
- 1Управление контентом в социальных сетяхВы можете поручить ИИ писать, подготавливать и планировать посты для конкретных платформ.
- 2Поддержка базы знаний службы поддержкиАссистент может искать информацию в существующей документации или добавлять новые пары вопрос-ответ в базу знаний.
- 3Мониторинг эффективности поддержкиРазработчик может запрашивать статистику по работе каналов или метрики переписок.
Взято из README проекта. Каждый вариант использования проверен на соответствие цитате из него.
Инструменты FirstReply MCP 84
Определено из READMEorganization_listorganization_getorganization_updateorganization_usagemember_listmember_getmember_createmember_updatemember_deleteapi_key_listapi_key_createapi_key_delete
| organization_list | — | |
| organization_get | — | |
| organization_update | — | |
| organization_usage | — | |
| member_list | — | |
| member_get | — | |
| member_create | — | |
| member_update | — | |
| member_delete | — | |
| api_key_list | — | |
| api_key_create | — | |
| api_key_delete | — |
Показать все 84 инструментовПоказать меньше инструментов
channel_listchannel_getchannel_statisticschannel_refreshchannel_testchannel_createchannel_connectchannel_updatechannel_playstore_service_accountchannel_tiktok_creator_infoconversation_listconversation_getconversation_threadconversation_messagesconversation_replyconversation_closeconversation_readconversation_spamconversation_updateconversation_deleteconversation_statsconversation_stats_by_memberconversation_metricsconversation_totalsmessage_getmessage_updatemessage_sendmessage_deleteattachment_uploadcontact_listcontact_getcontact_createcontact_updatecontact_deletecontact_field_listpost_listpost_getpost_statisticspost_metricspost_commentspost_writepost_media_uploadpost_createpost_schedulepost_reschedulepost_analyticsclassification_listclassification_getclassification_createclassification_updateclassification_deleteclassification_impactclassification_statisticsknowledge_searchknowledge_getknowledge_createknowledge_updateknowledge_deleteknowledge_source_listknowledge_source_getknowledge_source_createknowledge_source_updateknowledge_source_deleteknowledge_source_syncknowledge_source_statusai_draft_replyai_promptai_translateai_testsearchwebhook_testwebhook_rotate_secret
| channel_list | — | |
| channel_get | — | |
| channel_statistics | — | |
| channel_refresh | — | |
| channel_test | — | |
| channel_create | — | |
| channel_connect | — | |
| channel_update | — | |
| channel_playstore_service_account | — | |
| channel_tiktok_creator_info | — | |
| conversation_list | — | |
| conversation_get | — | |
| conversation_thread | — | |
| conversation_messages | — | |
| conversation_reply | — | |
| conversation_close | — | |
| conversation_read | — | |
| conversation_spam | — | |
| conversation_update | — | |
| conversation_delete | — | |
| conversation_stats | — | |
| conversation_stats_by_member | — | |
| conversation_metrics | — | |
| conversation_totals | — | |
| message_get | — | |
| message_update | — | |
| message_send | — | |
| message_delete | — | |
| attachment_upload | — | |
| contact_list | — | |
| contact_get | — | |
| contact_create | — | |
| contact_update | — | |
| contact_delete | — | |
| contact_field_list | — | |
| post_list | — | |
| post_get | — | |
| post_statistics | — | |
| post_metrics | — | |
| post_comments | — | |
| post_write | — | |
| post_media_upload | — | |
| post_create | — | |
| post_schedule | — | |
| post_reschedule | — | |
| post_analytics | — | |
| classification_list | — | |
| classification_get | — | |
| classification_create | — | |
| classification_update | — | |
| classification_delete | — | |
| classification_impact | — | |
| classification_statistics | — | |
| knowledge_search | — | |
| knowledge_get | — | |
| knowledge_create | — | |
| knowledge_update | — | |
| knowledge_delete | — | |
| knowledge_source_list | — | |
| knowledge_source_get | — | |
| knowledge_source_create | — | |
| knowledge_source_update | — | |
| knowledge_source_delete | — | |
| knowledge_source_sync | — | |
| knowledge_source_status | — | |
| ai_draft_reply | — | |
| ai_prompt | — | |
| ai_translate | — | |
| ai_test | — | |
| search | — | |
| webhook_test | — | |
| webhook_rotate_secret | — |
Конфигурация
FIRSTREPLY_API_TOKEN
| Название | Описание | Тип |
|---|---|---|
| FIRSTREPLY_API_TOKEN | — |
Автоматические проверки
Запущено 14 нояб. 2026 г.Полный отчёт →Еще не проверено. Для сервера требуется оценка 80, отсутствие серьезных проблем и достаточно данных для нашей проверки. Как работают проверки · Что исправить, чтобы получить больше баллов
- Связанный и доступный исходный репозиторийfirstreply/firstreply-mcp is public and reachablegithub.com/firstreply/firstreply-mcp ↗Пройдено
- Пакет указывает этот репозиторий как источникНе проверялось
- Происхождение сборки (аттестация Sigstore)Не проверялось
- Open source лицензия (OSI)MITspdx.org/licenses/MIT.html ↗Пройдено
- Коммит или релиз за последний годLast commit or release 2026-11-13github.com/firstreply/firstreply-mcp ↗Пройдено
- OpenSSF ScorecardНе проверялось
- Имя пакета не похоже на популярный пакетНе проверялось
- Нет критических предупреждений в пакете или его зависимостяхНе проверялось
- Нет скрытых инструкций для модели84 tool descriptions and the README read; no override phrases, credential paths or hidden charactersПройдено
- Деструктивные инструменты помеченыNo tool named like delete, drop or execПройдено
- Удалённая конечная точка отвечает на рукопожатие MCPНе проверялось
README
Открыть на GitHubFirstReply MCP Server
MCP (Model Context Protocol) server that exposes FirstReply customer support operations as tools for AI assistants like Claude. It lets an assistant browse and answer customer conversations, look up contacts, search and maintain the knowledge base, draft and translate replies, draft and schedule social media posts, manage classifications, templates, prompts, webhooks and saved filters, pull support and publishing statistics and manage organization API keys, all scoped and permission-checked by the FirstReply REST API.
The server speaks MCP protocol 2026-07-28 and the earlier 2025-* revisions
over stdio and HTTP, built on the v2 MCP TypeScript SDK.
Tools
Tools are named resource_action. Every organization-scoped tool takes an
organizationId (see organization_list). Tools that send something to a
customer or delete data are annotated as destructive.
Organization, members & API keys
| Tool | Description |
|---|---|
organization_list |
List accessible organizations |
organization_get |
Get an organization with its settings and AI prompts |
organization_update |
Update name, language, auto-close and the custom AI prompts |
organization_usage |
Plan, trial state and channel / member counts against the limits |
member_list |
List organization members |
member_get |
Get one member |
member_create |
Add a member by email with a permission level |
member_update |
Change a member's permission level |
member_delete |
Remove a member (destructive) |
api_key_list |
List the organization's named API keys (metadata only) |
api_key_create |
Create a named API key; plaintext returned once |
api_key_delete |
Delete (revoke) an API key (destructive) |
Channels
| Tool | Description |
|---|---|
channel_list |
List the channels (email, website chat, WhatsApp, Facebook Page, Instagram, LinkedIn, Threads, X, TikTok, YouTube, Google Business Profile, Bluesky, Mastodon, Telegram, Google Play, App Store) and whether Publishing is on |
channel_get |
Get one channel |
channel_statistics |
Statistics per channel |
channel_refresh |
Fetch new messages from a channel now |
channel_test |
Test the connection of a channel to its platform |
channel_create |
Create a channel from settings or credentials: email, website chat, Bluesky, Telegram, App Store, Google Play |
channel_connect |
Start connecting (or reconnecting) an account that signs in on the platform; returns the login link |
channel_update |
Rename, pause, turn Publishing and comment handling on or off, change settings or credentials |
channel_playstore_service_account |
The organization's Google service account to invite in the Play Console |
channel_tiktok_creator_info |
What a TikTok channel may post right now (privacy levels, interactions, video length) |
Facebook Pages, Instagram, LinkedIn, WhatsApp, Threads, X, TikTok, YouTube,
Google Business Profile and Mastodon are connected by signing in on the
platform. channel_connect returns the login link; the user opens it in a
browser where they are signed in to FirstReply (as the organization's owner,
which an API key acts as) and finishes there. The link is valid for 10
minutes. There is no tool to delete a channel.
Conversations & messages
| Tool | Description |
|---|---|
conversation_list |
List / filter / search conversations (status, channel, member, contact, classification, language, spam, priority, date ranges, search operators) |
conversation_get |
Get one conversation |
conversation_thread |
Get a conversation with all of its messages |
conversation_messages |
List the messages of a conversation |
conversation_reply |
Send a reply to the customer, or store an internal note or a draft, with attachments (destructive) |
conversation_close |
Close a conversation |
conversation_read |
Mark a conversation as read |
conversation_spam |
Mark a conversation as spam or not spam |
conversation_update |
Assign, reprioritize, reclassify, rename, change language, contact or spam flag |
conversation_delete |
Delete a conversation (destructive) |
conversation_stats |
Conversation statistics for a date range |
conversation_stats_by_member |
Statistics per member for a date range |
conversation_metrics |
Response and resolution metrics for a date range |
conversation_totals |
Current open / unread totals |
message_get |
Get one message |
message_update |
Edit a draft or internal note |
message_send |
Send a draft (destructive) |
message_delete |
Delete a message (destructive) |
attachment_upload |
Upload a file from a public https address; returns the attachment for conversation_reply |
The search argument of conversation_list, search and the saved filters
understands the FirstReply search syntax: words are AND-ed and prefix matched,
"quoted phrases", -word, and the operators from:, subject:, is:
(open, closed, unread, read, assigned, unassigned, ai), has:
(attachment, draft), before: and after: (YYYY-MM-DD).
attachment_upload takes images (JPEG, PNG, GIF, WebP), PDF, plain text, CSV,
Word and Excel files of up to 50 MB. Like post_media_upload it only fetches
public https addresses, and the file is streamed to the API, not kept.
Contacts
| Tool | Description |
|---|---|
contact_list |
List / search contacts |
contact_get |
Get one contact with custom fields |
contact_create |
Create a contact |
contact_update |
Update a contact |
contact_delete |
Delete a contact (destructive) |
contact_field_list |
List the custom contact fields |
Social posts
| Tool | Description |
|---|---|
post_list |
List / filter posts (status, channel, period, text); order: asc for upcoming posts |
post_get |
Get a post with its channels, publish state and latest metrics |
post_statistics |
How many posts are drafts, waiting for approval, scheduled, published and failed, and when the next one goes out |
post_metrics |
Metric snapshots of every channel of a published post |
post_comments |
The comment threads on a post, as conversations |
post_write |
Write, shorten or rewrite a post text with AI, for a platform and a character limit; saves nothing |
post_media_upload |
Upload an image or video from a public https address; returns the media id for a post |
post_create |
Save a post as a draft, with media and per-channel text and settings |
post_schedule |
Schedule a new post or an existing draft for a time on the given channels |
post_reschedule |
Move a post to another time; text, channels and media stay |
post_analytics |
Totals, daily series, top posts and channels for a period |
Posts target channels with Publishing on (publishingEnabled in channel_list),
given as channelIds or as targets with a text of their own and the
platform's settings (YouTube title and made-for-kids choice, TikTok privacy
level, Instagram post type, X thread parts, ...).
There is no tool to publish right away, approve, retry or delete a post: a
public post cannot be taken back, so the assistant drafts or schedules and a
person can still change it. Scheduled times have to be at least 10 minutes
ahead. When the organization requires approval, a member's scheduled post
waits for a manager (status PENDING_APPROVAL); such a post is not
rescheduled with manager rights (an API key acts as the owner), since saving
it would approve it. Comments are only read: hiding, deleting or liking a
comment and answering it privately act publicly on the platform and stay in
FirstReply.
Classifications
| Tool | Description |
|---|---|
classification_list |
List classifications with their automation settings |
classification_get |
Get one classification |
classification_create |
Create a classification |
classification_update |
Update a classification (unchanged settings are kept) |
classification_delete |
Delete a classification, optionally moving its conversations (destructive) |
classification_impact |
Preview what deleting a classification affects |
classification_statistics |
Conversation counts per classification |
Knowledge base
| Tool | Description |
|---|---|
knowledge_search |
Search or browse knowledge entries |
knowledge_get |
Get one knowledge entry |
knowledge_create |
Add a question / answer entry |
knowledge_update |
Update a knowledge entry |
knowledge_delete |
Delete a knowledge entry (destructive) |
knowledge_source_list |
List synced knowledge sources with their sync state |
knowledge_source_get |
Get one knowledge source |
knowledge_source_create |
Add a website or helpdesk (Freshdesk) source |
knowledge_source_update |
Rename a source, change its settings or its sync |
knowledge_source_delete |
Delete a knowledge source (destructive) |
knowledge_source_sync |
Start a sync now |
knowledge_source_status |
Sync status of a source |
Knowledge source configurations hold credentials and are never returned.
knowledge_source_update puts the settings it is given on top of the stored
ones. GitHub, Notion, GitBook, ClickUp and monday.com sources are connected
by signing in and are added in FirstReply; their settings can be changed here.
AI & search
| Tool | Description |
|---|---|
ai_draft_reply |
Generate an AI reply draft for a conversation without sending it |
ai_prompt |
Run a free-form prompt with the organization's persona and knowledge |
ai_translate |
Translate a text, e.g. a reply into the customer's language |
ai_test |
Simulate an incoming message: classification, spam verdict and reply |
search |
Global search across conversations, contacts, knowledge and messages |
Templates, prompts, webhooks & filters
| Tool | Description |
|---|---|
template_list / template_get / template_create / template_update / template_delete |
Reply templates and their language variants |
prompt_list / prompt_get / prompt_create / prompt_update / prompt_delete |
Saved AI prompts |
webhook_list / webhook_get / webhook_create / webhook_update / webhook_delete |
Webhooks and their events (including post.create, post.update, post.delete) |
webhook_test |
Send a test event to a webhook |
webhook_rotate_secret |
Generate a new signing secret (returned once) |
filter_list / filter_get / filter_create / filter_update / filter_delete |
Saved conversation filters |
Not covered, by design: authentication and profile endpoints, channel creation and OAuth connections, knowledge source creation, billing, attachments and CSV import / export, publishing posts right away, approving posts, media uploads, comment moderation and private replies to comments. Those stay in the FirstReply web app.
Widgets
Hosts that support MCP Apps (Claude, ChatGPT) show some results as a small view next to the answer:
| Widget | Tools | What it shows |
|---|---|---|
ConversationList |
conversation_list |
Contact, subject, last message, status and classification per conversation |
ReplyDraft |
ai_draft_reply |
The draft in a text field, with Send reply, Save as draft and Copy |
PostCard |
post_get, post_create, post_schedule, post_reschedule |
The post, its time and the status per channel |
PostAnalytics |
post_analytics |
Totals, views per day and numbers per channel |
ResultCard |
conversation_reply, conversation_close, channel_connect, channel_create, channel_update |
A confirmation, or the sign-in link of a channel |
Send reply in ReplyDraft calls conversation_reply with the text on screen;
a host that does not let widgets call tools only offers Copy. Widgets are in
English and German, following the host's language. Other hosts ignore them and
get the same JSON text as before.
Requirements
- Node.js >= 20
- A FirstReply account, or an organization API key
Authentication
The hosted server accepts two kinds of bearer token:
- Sign-in (OAuth 2.1): hosts such as Claude and ChatGPT only need the
address
https://mcp.firstreply.ai/. They register themselves, send the user to FirstReply to allow the connection, and act with that user's permissions in all of their organizations. - Organization API key: as described below; the only option for the local (stdio) server.
With an API key, the server authenticates against the FirstReply REST API with an
organization API key (fr_...), created in FirstReply under
Organization → Development → API Keys. Organizations support multiple named
keys with optional expiry, so it is best to create a dedicated key for this
MCP server. The key is sent as Authorization: Bearer.
API key requests run with the permissions of the organization owner: treat the key as a secret and rotate it by creating a new key and deleting the old one.
A key only reaches its own organization: organization_list returns just
that organization, and requests for any other organization are refused with
403. To work across several organizations, configure one server per key.
Usage (stdio, e.g. Claude Desktop)
{
"mcpServers": {
"firstreply": {
"command": "npx",
"args": ["-y", "@firstreply/mcp"],
"env": {
"FIRSTREPLY_API_TOKEN": "fr_..."
}
}
}
}
Claude Code
claude mcp add firstreply --env FIRSTREPLY_API_TOKEN=fr_... -- npx -y @firstreply/mcp
Usage (hosted)
The server runs at https://mcp.firstreply.ai/ (streamable HTTP). Send the
organization API key as bearer token:
claude mcp add --transport http firstreply https://mcp.firstreply.ai/ \
--header "Authorization: Bearer fr_..."
Usage (HTTP)
npm run build && npm run start:http # listens on :8080
Stateless: every request gets its own server instance, 2026-07-28 requests
are answered directly and 2025-era clients over a stateless streamable-HTTP
transport. Every request must carry Authorization: Bearer with an API key or access token. A
/health endpoint is provided for probes.
Without a token the answer is 401 with a WWW-Authenticate header naming
/.well-known/oauth-protected-resource, where the sign-in of an MCP host
starts; MCP_SERVER_URL is the address the server names itself with there.
A browser that opens the endpoint (GET / with Accept: text/html) gets the
landing page from public/.
Environment variables
| Variable | Description |
|---|---|
FIRSTREPLY_API_TOKEN |
Organization API key (stdio mode) |
FIRSTREPLY_API_URL |
API base URL (default https://api.firstreply.ai) |
MCP_SERVER_URL |
Public address of the HTTP server, its OAuth resource identifier (default https://mcp.firstreply.ai) |
PORT |
HTTP port (HTTP mode, default 8080) |
MCP_ENDPOINT_PATH |
HTTP endpoint path (default /) |
Development
npm install
npm run typecheck
npm test # builds and runs node:test suites
npm run build # compiles TypeScript to dist/
Project structure
src/
├── index.ts # stdio entry point
├── http-server.ts # HTTP entry point (Express + createMcpHandler)
├── server.ts # MCP server factory (McpServer + registerTool)
├── tools.ts # loads the tool modules, exposes the registry
├── tools/registry.ts # add() builder, schema helpers, dispatch
├── tools/<resource>.ts # one module per resource (conversations, contacts, ...)
├── media.ts # fetches a public file and streams it to a signed upload URL
└── client.ts # minimal FirstReply REST client
test/
├── tools.test.ts # tool definition checks and handler tests against a fake client
└── protocol.test.ts # stdio and HTTP end to end, both protocol eras, against an API stub
Adding a tool: call add(name, description, zodShape, annotations, handler)
in the matching src/tools/<resource>.ts. The zod shape is validated by the
SDK and published to clients as JSON Schema; every argument needs a
description (the tests check).
Вопросы о FirstReply MCP
Какие инструменты предоставляет FirstReply MCP?
Он предоставляет 84 инструмента, включая organization_list, organization_get, organization_update, organization_usage, member_list.
Что может делать ИИ-ассистент с помощью FirstReply?
Ассистент может просматривать и отвечать на сообщения клиентов, искать контакты, искать информацию и поддерживать базу знаний, составлять черновики и переводить ответы, а также управлять публикациями в социальных сетях.
Как подключаются каналы социальных сетей, такие как Facebook и Instagram?
Эти каналы подключаются путем входа на платформу через ссылку авторизации, которую возвращает инструмент channel_connect.
Может ли ИИ-ассистент публиковать посты в социальных сетях мгновенно?
Нет, ассистент может только создавать черновики или планировать публикации; человек должен изменить или утвердить их, так как инструмента для немедленной публикации нет.
Какие типы файлов можно загружать в качестве вложений?
Вы можете загружать изображения (JPEG, PNG, GIF, WebP), PDF, обычный текст, CSV, Word и Excel файлы размером до 50 MB.