MCP Server Integration
ChatReact implements the Model Context Protocol (MCP), allowing you to connect your ChatReact account to AI assistants like Claude Desktop, Cursor, and other MCP-compatible tools.
What is MCP?
The Model Context Protocol is an open standard that enables AI assistants to interact with external services and data sources. With ChatReact's MCP integration, you can:
- Manage chatbots — create, configure (persona, languages, widget, behavior, restrictions), embed and delete chatbots
- Build the knowledge base — add documents, crawl websites, manage crawled pages and core instructions
- Manage FAQs — FAQs, categories, suggestions, translations and the FAQ widget
- Review chats — rate conversations, assign confidence categories, run the Improvement Agent
- Work with leads and forms — leads, lead categories, capture settings, contact forms and submissions
- Act as a live chat agent — set your availability, take over waiting chats, reply and close sessions
- Administer your company — profile, brand colors, team members and invitations
- Use the Email Assistant — mailbox connections, categories, contacts and activity
- Read analytics and notifications
Everything you can do in the dashboard is available through MCP (and the REST API); only browser-bound actions such as payments, mailbox OAuth, passkeys, account deletion and API key management stay in the dashboard.
Getting Started
1. Generate an API Key
- Navigate to your Dashboard → Company → API tab
- Click Create API Key
- Give your key a descriptive name (e.g., "Claude Desktop") and select at least one permission
- Copy the generated key (starts with
cr_)
API keys are available on paid plans — see our Pricing page.
Store your API key securely. It cannot be retrieved after creation.
2. Configure Your MCP Client
The ChatReact MCP server is hosted at https://www.chatreact.ai/api/mcp and communicates over HTTP (JSON-RPC). Authenticate with an Authorization: Bearer header — an X-API-Key header with the same key is also accepted.
Cursor IDE
Cursor supports remote MCP servers directly. Add to your Cursor MCP settings:
{
"mcpServers": {
"chatreact": {
"url": "https://www.chatreact.ai/api/mcp",
"headers": {
"Authorization": "Bearer cr_your_api_key_here"
}
}
}
}
Claude Desktop
Claude Desktop's configuration file supports command-based servers, so use the standard mcp-remote bridge to connect to the hosted endpoint:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"chatreact": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://www.chatreact.ai/api/mcp",
"--header",
"X-API-Key:cr_your_api_key_here"
]
}
}
}
This setup requires Node.js to be installed. The example uses the X-API-Key header because some clients don't handle spaces in arguments reliably.
3. Restart Your AI Assistant
After saving the configuration, restart Claude Desktop or Cursor to establish the connection.
Available Tools
ChatReact MCP exposes the tools below, grouped by area. The Scope column shows the API key permission a tool requires (any = every valid key). Everything the dashboard can do is available here as well; tools run with the same permissions, plan limits and side effects as the dashboard.
Destructive tools (delete, reset, close, merge) ask for confirmation when used through the Dashboard Assistant. Via API key they execute immediately.
Account
| Tool | Description | Scope |
|---|---|---|
account_usage_get | Get the current plan (tier, status), the current billing period's usage counters (companies, chatbots, team members, chats, tokens) and the plan limits, plus the effective limits and feature flags of the company the call is scoped to. | any |
user_companies | List all companies the current user has access to, with the user's role in each. | any |
user_notification_mark_read | Mark one of the current user's notifications as read. | any |
user_notification_preferences_get | Get the current user's notification preferences: global email/push toggles, digest frequency/time/weekday/timezone, quiet hours and per-type channel settings. | any |
user_notification_preferences_update | Update the current user's global notification preferences (email/push toggles, digest schedule, quiet hours). | any |
user_notification_type_setting_update | Enable or disable email / in-app delivery for a single notification type of the current user (e.g. | any |
user_notification_types_list | List all notification types grouped by category (chatbot, leads, live chat, knowledge, team, billing). | any |
user_notification_unread_count | Get the number of unread notifications of the current user. | any |
user_notifications | List the current user's notifications, newest first, with cursor pagination. | any |
user_notifications_delete_old | Housekeeping: permanently delete the current user's notifications that are already read and older than 30 days. | any |
user_notifications_mark_all_read | Mark all of the current user's notifications as read. | any |
user_profile | Get the current user's profile (id, name, email, role, subscription tier). | any |
Company & Team
| Tool | Description | Scope |
|---|---|---|
company_chatbots_list | List all chatbots for a specific company with summary stats. | chatbots:read |
company_get | Get detailed information about a company: profile, owner, brand settings (colors, notification email) and counts. | any |
company_invite_cancel | Cancel (delete) a team invitation so the link stops working. | company:write |
company_invite_resend | Resend a pending team invitation: issues a new token, extends the expiry by 7 days and sends the invitation email again. | company:write |
company_invites_list | List team invitations of a company (pending by default; set includeExpired to also return expired ones). | company:read |
company_list | List all companies the user has access to (API keys and the Dashboard Assistant only see their own company). | any |
company_logo_remove | Remove the company logo (deletes the stored image and clears the logo URL). | company:write |
company_member_invite | Invite a team member by email with a role (ADMIN, MANAGER, AGENT or VIEWER). | company:write |
company_member_remove | Remove a team member from the company. | company:write |
company_member_update_role | Change a team member's role (ADMIN, MANAGER, AGENT or VIEWER). | company:write |
company_members_list | List the members of a company with their roles (OWNER, ADMIN, MANAGER, AGENT, VIEWER). | any |
company_settings_update | Update company brand settings: primaryColor / secondaryColor (#RRGGBB) and the notificationEmail for chat reviews. | company:write |
company_update | Update the company profile: name (2-100 chars), description (max 1000 chars) or website (https:// is added automatically; pass an empty string to clear website/description). | company:write |
Chatbot Management
| Tool | Description | Scope |
|---|---|---|
chatbot_add_instruction | Add a new core instruction to a chatbot (1-5000 chars). | chatbots:write |
chatbot_confirm_embed | Mark a chatbot as embedded on the website (hides the setup reminder in the dashboard). | chatbots:write |
chatbot_create | Create a new chatbot (same as the dashboard wizard). | chatbots:write |
chatbot_delete | Permanently delete a chatbot with all its FAQs, documents, chats, leads and forms (cannot be undone). | chatbots:write |
chatbot_delete_instruction | Delete a core instruction from a chatbot. | chatbots:write |
chatbot_get | Get detailed information about a chatbot: general settings, personality (persona, tonality, languages, restrictions), widget settings, live chat, learning phase, embed status and counts. | chatbots:read |
chatbot_get_embed_code | Get the HTML snippet to install a chatbot on a website (script URL + <script> tag) and whether the embed has been confirmed. | chatbots:read |
chatbot_get_instructions | Get all core instructions for a chatbot. | chatbots:read |
chatbot_improve_instructions | Rewrite core-instruction text with the platform's AI improver (same as the dashboard's 'Improve with AI'). | chatbots:write |
chatbot_learning_phase_get | Get the learning-phase settings of a chatbot: behaviour preset (CAUTIOUS, BALANCED, CONFIDENT), custom prompt and whether the bot is still in the learning phase. | chatbots:read |
chatbot_learning_phase_update | Set the learning-phase behaviour preset (CAUTIOUS = refer to human when unsure, BALANCED, CONFIDENT) and/or a custom learning-phase prompt. | chatbots:write |
chatbot_list | List all chatbots the user has access to, with summary statistics. | chatbots:read |
chatbot_reorder_instructions | Set the order of a chatbot's core instructions. | chatbots:write |
chatbot_templates_list | List the chatbot templates (presets for persona, tonality, messages and widget behaviour) that can be passed as templateId to chatbot_create, and whether the company's plan may use them. | chatbots:read |
chatbot_toggle_active | Activate or deactivate a chatbot. | chatbots:write |
chatbot_toggle_learning | End (false) or re-enable (true) the learning phase of a chatbot. | chatbots:write |
chatbot_update | Update a chatbot's general settings: name, description, isActive, live chat (liveChatEnabled/liveChatMode, plan feature), showBranding (white-label plans), chat-review emails, FAQ auto-generation, legacy coreInstructions text, learning phase (isInLearningPhase, learningPhaseBehavior, learningPhaseCustomPrompt). | chatbots:write |
chatbot_update_instruction | Update an existing core instruction (content, isActive, channel, sortOrder). | chatbots:write |
chatbot_update_personality | Update the personality of a chatbot: persona (usePersonaName, personaName, personaRole, personaBackground, communicationStyle), tonality sliders 1-5, languages (primaryLanguage, supportedLanguages, technicalLevel, timezone, formalAddress, speakAsCompany), messages (welcomeMessage, fallbackMessage, proactive greeting) and restrictions (blacklistTopics, complianceRules, maxResponseLength, human handoff). | chatbots:write |
widget_settings_get | Get the current widget settings for a chatbot (all appearance, branding, behaviour and pre-chat form fields). | chatbots:read |
widget_settings_update | Update the chat widget of a chatbot: position (incl. | chatbots:write |
widget_translations_get | Get the per-language widget translations of a chatbot: { '<lang>': { welcomeMessage, fallbackMessage, headerTitle, headerSubtitle, bubbleText } }. | chatbots:read |
widget_translations_update | Set per-language widget translations. | chatbots:write |
Knowledge Base
| Tool | Description | Scope |
|---|---|---|
crawler_job_cancel | Cancel a PENDING or RUNNING crawl job; remaining pages are skipped. | knowledge:write |
crawler_job_get | Get a crawl job's status, progress (pagesCrawled/pagesFound, tokensUsed) and the status of each page. | knowledge:read |
crawler_jobs_list | List a chatbot's crawl jobs (newest first) with status and progress. | knowledge:read |
crawler_limits | Get the plan's crawl limits for a chatbot (max pages per crawl, tokens per page, crawls per month) and whether a new crawl can be started this month. | knowledge:read |
crawler_preview_scan | Scan a website and list its crawlable pages (url, title, isRecommended) without importing anything. | knowledge:write |
crawler_start | Start a crawl job that imports the selected URLs into the chatbot's knowledge base (processed in the background; poll crawler_job_get). | knowledge:write |
knowledge_document_add_from_url | Download a document (PDF, TXT, MD, CSV, JSON, DOCX; max 10 MB) from a public http(s) URL and add it to a chatbot's knowledge base. | knowledge:write |
knowledge_document_add_text | Add a text or markdown document to a chatbot's knowledge base from inline content (max 10 MB). | knowledge:write |
knowledge_document_delete | Delete an uploaded document from the knowledge base. | knowledge:write |
knowledge_document_get | Get details of an uploaded document including processing status, error message and a short-lived download URL. | knowledge:read |
knowledge_documents_list | List the uploaded documents (PDF, TXT, MD, CSV, JSON, DOCX) in a chatbot's knowledge base with status and size. | knowledge:read |
knowledge_page_add | Crawl a single URL and add it to the chatbot's knowledge base (fails with CONFLICT when the URL is already indexed, FORBIDDEN when the token limit is reached). | knowledge:write |
knowledge_page_delete | Delete a crawled page from the knowledge base (removes its vector-store file). | knowledge:write |
knowledge_page_get | Get a crawled page including the markdown content that was indexed for the chatbot (useful to verify what the bot knows about a page). | knowledge:read |
knowledge_page_recrawl | Fetch a crawled page again and replace its indexed content (e.g. | knowledge:write |
knowledge_pages_delete | Delete several crawled pages of a chatbot at once. | knowledge:write |
knowledge_pages_list | List crawled pages in a chatbot's knowledge base, optionally filtered by domain, status or a search term (URL/title). | knowledge:read |
knowledge_stats | Overview of a chatbot's knowledge base: documents (by status, size), crawled pages and websites (by status), crawl jobs, core instructions split by source (manual vs improvement agent), FAQs, vector store status/size and storage usage vs. | knowledge:read |
knowledge_website_delete | Delete every crawled page of a website (domain) from the chatbot's knowledge base. | knowledge:write |
knowledge_website_recrawl | Re-crawl every page of a website (domain) in the chatbot's knowledge base to refresh its content. | knowledge:write |
knowledge_website_recrawl_cancel | Cancel an in-progress website re-crawl: queued (PENDING) pages of the domain are reverted to their previous indexed state. | knowledge:write |
knowledge_websites_list | List the websites (domains) whose pages are in a chatbot's knowledge base, with page counts by status and token totals. | knowledge:read |
FAQ Management
| Tool | Description | Scope |
|---|---|---|
faq_cache_purge | Clear the cached FAQ widget data on all connected CMS sites (WordPress plugin). | faqs:write |
faq_categories_list | List the FAQ categories of a chatbot with their FAQ counts, slugs, sort mode and translations. | faqs:read |
faq_categories_reorder | Set the order of FAQ categories in the widget: position in categoryIds becomes the sortOrder. | faqs:write |
faq_category_create | Create a FAQ category for a chatbot (slug is generated from the name). | faqs:write |
faq_category_delete | Delete a FAQ category. | faqs:write |
faq_category_translations_update | Replace the translations of a FAQ category, e.g. | faqs:write |
faq_category_update | Rename a FAQ category or change its description, icon or sort mode. | faqs:write |
faq_create | Create a FAQ for a chatbot. | faqs:write |
faq_delete | Permanently delete a FAQ (also removes it from the chatbot's knowledge base and purges CMS widget caches). | faqs:write |
faq_embed_code_get | Get the embed snippets for the FAQ widget: script tag, WordPress shortcode and Shopify Liquid snippet, plus per-category variants (use categorySlug from faq_categories_list to embed one category only). | chatbots:read |
faq_get | Get the full details of a FAQ: question, answer, category, publish state, sort order, translations, SEO fields and feedback stats. | faqs:read |
faq_list | List FAQs of a chatbot (use chatbot_list to find the chatbotId). | faqs:read |
faq_reorder | Set the display order of FAQs in the widget. | faqs:write |
faq_suggestion_approve | Approve a PENDING FAQ suggestion: creates a published FAQ (optionally with edited question/answer/category) and marks the suggestion APPROVED. | faqs:write |
faq_suggestion_get | Get the full details of a FAQ suggestion (complete answer, AI reasoning, suggested category, review state). | faqs:read |
faq_suggestion_reject | Reject a PENDING FAQ suggestion with an optional reason. | faqs:write |
faq_suggestions_generate | Let the AI propose new FAQs from the chatbot's knowledge base (crawled pages / uploaded documents), optionally for one category. | faqs:write |
faq_suggestions_list | List AI-generated FAQ suggestions of a chatbot (from chat conversations or faq_suggestions_generate). | faqs:read |
faq_translate | Translate a FAQ's question and answer with AI into the chatbot's other supported languages (or the given targetLanguages) and save the result. | faqs:write |
faq_translations_update | Save translations of a FAQ per language, e.g. | faqs:write |
faq_update | Update a FAQ's question, answer, category, publish state or manual sort order. | faqs:write |
faq_widget_settings_get | Get the appearance and behaviour settings of the embeddable FAQ widget (colors, border radius, title, spacing, max width, allowMultipleOpen, autoOpenFirst, sort mode, title translations). | chatbots:read |
faq_widget_settings_update | Update the FAQ widget settings: colors (hex), borderRadius 0-32, title (max 100) + showTitle, spacing compact|normal|relaxed, maxWidth 0-2000 (0 = full width), allowMultipleOpen, autoOpenFirst, sortMode custom|date|name and title translations per language. | chatbots:write |
Chat History & Feedback
| Tool | Description | Scope |
|---|---|---|
chat_feedback_dismiss | Mark a chat as reviewed without rating it (clears it from the pending queue, does not change the confidence score). | chats:write |
chat_feedback_get | Get one chat review (feedback) with AI analysis, severity, confidence category, score change and the linked improvement session. | chats:read |
chat_feedback_list | List chat reviews (feedback rows) of a chatbot with status filter and counts. | chats:read |
chat_feedback_set_severity | Override the severity classification (MINOR|MODERATE|MAJOR|CRITICAL) of a reviewed negative chat; severity weights the confidence-score drop. | chats:write |
chat_feedback_stats | Session counts per review bucket for a chatbot (total, none, pending, positive, negative, reviewed, improved) — the stat cards of the dashboard chats page. | chats:read |
chat_feedback_submit | Rate a chat session as Good (isPositive=true) or Needs Work (isPositive=false). | chats:write |
chat_session_get | Get a chat session with the full transcript (per-message token/model/latency/pageUrl), visitor details, started page URL, confidence category, feedback (severity, AI analysis, linked improvement session) and tags. | chats:read |
chat_session_search | Search chat sessions of a chatbot by message content and/or visitor email. | chats:read |
chat_session_set_category | Assign or change the confidence category of a chat session (corrects the AI categorization; per-category confidence is recalculated when the chat was reviewed). | chats:write |
chat_sessions_list | List chat sessions of a chatbot, newest first, with the same review-queue filters as the dashboard chats page. | chats:read |
Improvement Agent
| Tool | Description | Scope |
|---|---|---|
confidence_categories_list | List the confidence categories of a chatbot with per-category confidence score, review count and review-email frequency. | chats:read |
confidence_category_create | Create a confidence category for a chatbot. | chatbots:write |
confidence_category_delete | Delete a confidence category. | chatbots:write |
confidence_category_merge | Merge one confidence category into another of the same chatbot: all chats/reviews move to the target, the source is deleted and scores are recalculated. | chatbots:write |
confidence_category_update | Rename a confidence category and/or set its review-email frequency (EVERY|HOURLY|DAILY|WEEKLY|NEVER; emailFrequencyHours 1-24 only for HOURLY). | chatbots:write |
confidence_status_get | Confidence status of a chatbot: score, graduation threshold, learning phase flag, learning-phase behaviour (CAUTIOUS|BALANCED|CONFIDENT) and custom prompt, review counts and per-category confidence scores. | analytics:read |
improvement_proposal_approve | Approve a PENDING improvement proposal and apply the change to the chatbot (core instruction add/update, FAQ create/update or persona update) — same logic and plan limits as the dashboard. | chatbots:write |
improvement_proposal_reject | Reject a PENDING improvement proposal. | chatbots:write |
improvement_proposal_simulate | Simulate how the chatbot would answer the problematic message with a proposal applied (original vs. | chatbots:write |
improvement_proposals_pending | List improvement proposals awaiting review (status PENDING) across the company or for one chatbot. | chatbots:read |
improvement_session_complete | Mark an improvement session as COMPLETED (the chat then counts as Improved in the review queue). | chatbots:write |
improvement_session_create | Open the Improvement Agent for a chat rated Needs Work. | chatbots:write |
improvement_session_get | Get an improvement session with the original chat (messages have a 1-based index usable as targetMessageIndex), the agent conversation, all proposals (with their latest simulation) and simulations. | chatbots:read |
improvement_session_reset | Restart an improvement session: deletes all agent messages, simulations and PENDING/REJECTED proposals (applied ones are kept) and starts a fresh conversation. | chatbots:write |
improvement_session_send_message | Send a message to the Improvement Agent (describe what was wrong with the bot's answer; optionally targetMessageIndex = the 1-based index of the bot message in originalChat.messages). | chatbots:write |
improvement_sessions_list | List improvement sessions (Improvement Agent conversations started from negative chat reviews) for a chatbot or the whole company, newest first, with proposal counts. | chatbots:read |
improvement_simulation_assess | Rate a simulation result: isApproved=true when the simulated answer is good (the proposal can then be applied), false when it needs more work (comment 'almost' = nearly right). | chatbots:write |
Live Chat
| Tool | Description | Scope |
|---|---|---|
live_chat_agents_available | Get the current user's own live chat availability, the agents currently available for live chat (fresh heartbeat, the same signal the widget uses) and whether the company's plan includes live chat. | chats:read |
live_chat_heartbeat | Refresh the current user's live chat presence heartbeat (only while marked available via live_chat_set_availability). | chats:write |
live_chat_message_send | Send a message to the visitor as the assigned agent. | chats:write |
live_chat_queue | Get the live chat queue: sessions waiting for an agent, oldest first (FIFO). | chats:read |
live_chat_session_assign | Take a WAITING live chat session from the queue: assigns it to the current user (company owner for API keys) and notifies the visitor that the agent joined. | chats:write |
live_chat_session_close | End a live chat session as an agent (any non-VIEWER member of the company). | chats:write |
live_chat_session_get | Get a live chat session with visitor info, assigned agent, all messages and the prior bot conversation (handoff context). | chats:read |
live_chat_sessions_list | List live chat sessions (newest first; WAITING sessions oldest first) with optional filters by chatbot, status and assigned agent. | chats:read |
live_chat_set_availability | Toggle the current user's 'Available for Live Chat' switch for a company. | chats:write |
Leads
| Tool | Description | Scope |
|---|---|---|
lead_assign | Assign a lead to a company member or unassign it (assignedToId: null). | leads:write |
lead_bulk_update_status | Set the status of several leads (max 100) at once. | leads:write |
lead_categories_list | List the lead categories of a chatbot with lead counts and the team members notified per category. | leads:read |
lead_category_assign_user | Add a company member to a lead category's notification list (or update their notification flags). | leads:write |
lead_category_create | Create a lead category for a chatbot. | leads:write |
lead_category_delete | Delete a lead category. | leads:write |
lead_category_remove_user | Remove a company member from a lead category's notification list. | leads:write |
lead_category_update | Update a lead category's name, description and/or colour. | leads:write |
lead_create | Create a lead manually (e.g. | leads:write |
lead_delete | Delete a lead permanently. | leads:write |
lead_field_config_get | Get the lead capture configuration of a chatbot: fields (ids map to keys in lead.data), confirmation message, field/UI translations and AI recognition settings. | leads:read |
lead_field_config_update | Update the lead capture configuration of a chatbot. | leads:write |
lead_get | Get full details of a lead including assignee, category and the source chat transcript (paged with messageOffset/messageLimit, default first 20 messages). | leads:read |
lead_list | List leads of a chatbot (newest first) with optional filters by status, category, assignee and free-text search (name/email/company). | leads:read |
lead_stats | Get lead statistics for a chatbot: counts by status, leads of the last 7 days and the conversion rate (percent). | leads:read |
lead_update | Update a lead's status, category, notes, captured data and/or assignee. | leads:write |
Forms
| Tool | Description | Scope |
|---|---|---|
form_create | Create a contact form for a chatbot (basics, fields, design and spam settings in one call). | forms:write |
form_delete | Permanently delete a contact form and ALL of its submissions (cascade). | forms:write |
form_get | Get a contact form in full: fields, translations, styling, spam settings, active state, submission count and the embed script tag (embedCode). | forms:read |
form_list | List the contact forms of a chatbot with field counts, submission counts and embed codes. | forms:read |
form_stats | Submission counts of a contact form: total, pending, approved, spam and rejected. | forms:read |
form_submission_delete | Permanently delete a contact form submission (e.g. | forms:write |
form_submission_get | Get a contact form submission in full: submitted field data, spam score and AI spam analysis, IP/user agent/referrer metadata and review information. | forms:read |
form_submission_update_status | Review a contact form submission: set its status to APPROVED, SPAM or REJECTED with an optional review note. | forms:write |
form_submissions_list | List submissions of a contact form, newest first, optionally filtered by status (PENDING, APPROVED, SPAM, REJECTED) and creation date. | forms:read |
form_update | Update a contact form: name, description, active state (isActive controls whether the embed renders), fields (full replace), design (colors, button text, success message) and spam settings (spamThreshold, autoRejectSpam, notificationEmail). | forms:write |
form_update_translations | Replace the field and/or UI translations of a contact form. | forms:write |
Email Assistant
| Tool | Description | Scope |
|---|---|---|
email_activity_list | List the processed-email activity log of a mailbox connection (newest first): sender, subject, assigned category, outcome (CATEGORIZED, DRAFT_CREATED, SKIPPED_NO_RULE, SKIPPED_NO_KNOWLEDGE, SKIPPED_BY_TRIAGE, SKIPPED_QUOTA, ERROR) and outcomeDetail. | email:read |
email_categories_list | List the email categories of a mailbox connection (ordered by sortOrder). | email:read |
email_category_create | Create an email category for a mailbox connection (max 20 per connection). | email:write |
email_category_delete | Delete an email category. | email:write |
email_category_update | Update an email category (partial: only the given fields change). | email:write |
email_connection_disconnect | Disconnect a mailbox permanently. | email:write |
email_connection_get | Get a mailbox connection incl. | email:read |
email_connection_update | Update a mailbox connection: pause/resume the sync (paused true/false; only toggles ACTIVE<->DISABLED, never overrides TOKEN_EXPIRED/ERROR), toggle reply drafting (draftingEnabled) and categorizing/organizing (organizingEnabled), re-point the powering chatbot (chatbotId of the same company) or set the HTML reply signature (signatureHtml, max 20000 chars; empty string clears it). | email:write |
email_connections_list | List the company's Email Assistant mailbox connections (address, status ACTIVE/DISABLED/TOKEN_EXPIRED/ERROR, last sync, last error, drafting/organizing toggles, powering chatbot, draftReadyCategoryCount = categories that can yield drafts, baseRuleCount = chatbot-wide 'Chat + Email' rules applied to every draft) together with the plan limits (emailAssistantEnabled, maxMailboxConnections, emailDraftsPerMonth). | email:read |
email_contact_delete | Delete a learned email contact (forget the sender's profile, e.g. | email:write |
email_contact_get | Get a learned email contact with all learned facts, internal notes, relationship, formal/informal address setting and email statistics. | email:read |
email_contact_update | Update a learned email contact. | email:write |
email_contacts_list | List the company's learned email contacts (most recent email first) with relationship, formal/informal address (formalAddress: true = formal 'Sie', false = informal 'Du', null = automatic), fact count and a notes preview. | email:read |
email_folder_create | Create a mail folder under the inbox (returns the existing one if the name is taken) to use as a category move target. | email:write |
email_folders_list | List the folders an email category can move mail into, live from the mailbox: inbox subfolders, custom top-level folders, archive, junk and trash (id 'deleteditems'). | email:read |
email_general_rules_list | List the chatbot-wide rules that apply to every reply draft of a mailbox: active core instructions with channel BOTH ("Chat + Email"), plus legacy email-only ones not yet migrated into a category. | email:read |
Analytics
| Tool | Description | Scope |
|---|---|---|
analytics_chat_volume | Chat volume (sessions started) over time for charts and trends: period week/month/quarter/year, granularity hour/day/week/month, optionally for one chatbot. | analytics:read |
analytics_chatbot_stats | Per-chatbot performance of a company in one call (the dashboard's chatbot performance table): id, name, slug, isActive, sessions, messages, FAQs and leads per chatbot, sorted by sessions. | analytics:read |
analytics_forms | Contact form submission stats for a company or one chatbot (dashboard analytics widget): submissions by status (pending/approved/rejected/spam), number of forms, total, spam rate in percent and the submissions-per-day series of the last 7 days. | analytics:read |
analytics_leads | Lead funnel for a company or one chatbot (dashboard analytics widget): leads by status (new/contacted/qualified/converted/lost), total, conversion rate in percent and the leads-per-day series of the last 7 days. | analytics:read |
analytics_overview | Analytics overview for a company or one chatbot: chats, messages, satisfaction rate and top questions for a rolling period (day/week/month/year), plus the dashboard's overview widget (total chatbots/published FAQs/leads, sessions today/this week/this month, leads today/this week, form submissions total/today/pending). | analytics:read |
dashboard_activity | What currently needs attention (the dashboard home view): per company, the chatbots with new leads today, pending FAQ suggestions, pending form submissions, waiting/active live chats or an ongoing learning phase. | any |
Example Workflows
Adding a Core Instruction
Ask your AI assistant:
"Add a core instruction to my 'Support Bot' chatbot: we offer free shipping on orders over €50"
The assistant will use chatbot_add_instruction with appropriate parameters.
Reviewing Improvement Suggestions
"Show me all pending improvement proposals for my chatbot and explain what changes they suggest"
The assistant will:
- Use
improvement_proposals_pendingto fetch proposals - Analyze and summarize each suggestion
- Approve or reject them on your behalf with
improvement_proposal_approveorimprovement_proposal_reject
Analyzing Chat Performance
"Give me a weekly report of chat volume and customer satisfaction for my chatbot"
The assistant will use analytics_overview and analytics_chat_volume to compile a comprehensive report.
Importing a Website
"Scan https://example.com, import the product and pricing pages into my 'Support Bot' and tell me when the crawl is done"
The assistant will call crawler_preview_scan, pick the relevant pages, start the import with crawler_start and poll crawler_job_get until the job has finished.
Reviewing Leads and Form Submissions
"Show me the new leads from this week, assign the qualified ones to Anna and approve the pending contact form submissions"
The assistant combines lead_list, lead_assign, form_submissions_list and form_submission_update_status.
Taking Over a Live Chat
"Set me available for live chat and take the oldest waiting conversation"
The assistant uses live_chat_set_availability, live_chat_queue and live_chat_session_assign; replies go through live_chat_message_send.
Security
- API keys are scoped to your company and to the permission scopes you select when creating them (see the Scope column above)
- Keys execute with the permissions of the company owner; plan limits and feature gates apply exactly as in the dashboard
- Keys can be revoked at any time from the dashboard
- API access is available on paid plans — see our Pricing page
Troubleshooting
Connection Failed
- Verify your API key is correct
- Check that the key hasn't been revoked
- Make sure your plan includes API access
- Restart your MCP client
Tool Not Found
Restart your MCP client after changing the configuration so it reloads the available tools. Tool names are lowercase with underscores (e.g., faq_list).
Need help? Contact our support team →