MCP server reference

Ethora MCP Server tools: all 90, by group

Generated from the server’s own tools/list (v26.9.1). 35 tools are read-only, 12 are destructive and flagged so your client asks before running them. Every tool needs a signed-in user unless the row says otherwise; see how to connect.

Remote endpoint, no install OAuth 2.1 and API keys Same tools when self-hosted
Ethora MCP server tools grouped by job

In one paragraph

What the tools cover

The Ethora MCP server exposes the whole platform as tool calls: create an app, add chat rooms and users, post or broadcast messages, build a knowledge base from websites and documents, create AI agents and put them in rooms, and generate the snippet that embeds the resulting chat widget on a website. An assistant connected over MCP can do all of it by being asked, and an autonomous agent can register its own account first.

Read this page if

  • you want to know exactly what a connected assistant can and cannot do before you grant it access
  • you are writing an agent and need the tool names, auth mode and which calls are destructive
  • you are comparing the hosted server with a self-hosted deploy (the tool set is identical)

Best for: engineers and operators scoping what to let an AI assistant do inside a chat platform.

read-only safe to auto-approve; needs the read OAuth scope write changes data; needs write destructive deletes or revokes; needs admin, clients should confirm first

Session and help (8)

Orientation and diagnostics. Start every session with Session Status; ask Help and Next Steps whenever you are lost.

ToolNameWhat it doesAccessAuth
Session Statusethora-statusReport the current Ethora MCP session state: configured API URL, active auth mode, which credentials are present (booleans like hasAppJwt - values never echoed), the selected...read-onlynone
Connection Doctorethora-doctorDiagnose the session: validate the config is internally consistent for the active auth mode and ping the Ethora API (GET /v1/ping).read-onlynone
Help and Next Stepsethora-helpTask-oriented orientation for this MCP server: explains the three Ethora auth modes (user / app-token / B2B) and recommends next tool calls + recipes based on current session state.read-onlynone
Run Recipeethora-run-recipeExecute a built-in recipe - an ordered sequence of this server’s own tool calls - by id.writeuser
Configure Connectionethora-configureSet the Ethora API URL and credentials for this MCP session.writenone
Use User Authethora-auth-use-userSwitch this session’s active auth mode to user-session, so subsequent calls authenticate as a logged-in Ethora user.writeuser
Use App Token Authethora-auth-use-appSwitch this session’s active auth mode to app-token, so subsequent app-scoped calls authenticate with the configured appToken.writeapp token
Use B2B Authethora-auth-use-b2bSwitch this session’s active auth mode to B2B, so subsequent calls authenticate as a tenant actor via the x-custom-token header.writeB2B token

Accounts and API keys (5)

Sign in, or let an agent create its own account and receive a revocable API key with no human step.

ToolNameWhat it doesAccessAuth
Register Accountethora-user-registerCreate a new Ethora user account by email + first/last name, then log in and bind the session.writeuser
Log Inethora-user-loginAuthenticate as an existing Ethora user with email + password.writeuser
Create API Keyethora-api-key-createMint a long-lived, revocable API key for the currently logged-in user.writeuser
List API Keysethora-api-key-listList the current user’s API keys (id, name, createdAt, expiresAt).read-onlyuser
Revoke API Keyethora-api-key-revokeRevoke one of the current user’s API keys by id.destructiveuser

Apps (tenants) (11)

Each app is an isolated chat workspace with its own users, rooms, agents and knowledge base.

ToolNameWhat it doesAccessAuth
Create Appethora-app-createCreate a new Ethora app (tenant) owned by the currently logged-in user.writeuser
List Appsethora-app-listList all Ethora apps (tenants) owned by the currently logged-in user.read-onlyuser
Select Appethora-app-selectSet the current app context for this session so app-scoped tools can omit their appId argument.writenone
Update Appethora-app-updateUpdate mutable fields on an app the caller owns (displayName, domainName, appDescription, primaryColor, botStatus).writeuser
Delete Appethora-app-deletePermanently delete an Ethora app the caller owns - removes its chat rooms, files, indexed RAG sources, and bot config; end users are immediately signed out.destructiveuser
Export Appethora-app-export-v2Export an App as a portable bundle (GET /v2/apps/:appId/export).read-onlyuser
Import Appethora-app-import-v2Import an App from a bundle produced by ethora-app-export-v2 (POST /v2/apps/import, application/json body IS the bundle).writeuser
Create App Tokenethora-app-tokens-create-v2Mint a new app token for an app.writeB2B token
List App Tokensethora-app-tokens-list-v2List the app tokens issued for an app - metadata only (tokenId, label, created/rotated timestamps, status); the secret token values are never returned (only shown once at create/rotate...read-onlyB2B token
Rotate App Tokenethora-app-tokens-rotate-v2Rotate an app token: revoke an existing token and issue a replacement in one step.destructiveB2B token
Revoke App Tokenethora-app-tokens-revoke-v2Permanently revoke an app token by tokenId - it stops working immediately; any client, SDK, or MCP session still using it gets auth failures.destructiveB2B token

Rooms and messages (12)

Create rooms, post and broadcast messages, read history, search, and count unread messages per user.

ToolNameWhat it doesAccessAuth
Create Chat Roomethora-app-create-chatCreate a new chat room (MUC room) inside an app the caller owns.writeuser
Delete Chat Roomethora-app-delete-chatPermanently delete a chat room from an app the caller owns - removes the MUC room, its message archive, and all member affiliations.destructiveuser
Get Default Roomsethora-app-get-default-roomsList the default chat rooms (MUC rooms) of the currently selected Ethora app - every new user auto-joins these.read-onlyuser
Get Default Rooms for Appethora-app-get-default-rooms-with-app-idList the default chat rooms of a specific Ethora app, passed via appId (or the currently selected app).read-onlyuser
Send Chat Messageethora-chats-message-v2Post a message into a chat room of an app (POST /v2/apps/:appId/chats/broadcast targeting one room).writeuser
Get Chat Historyethora-chats-history-v2Read the archived messages of a chat room (GET /v2/apps/:appId/chats/:chatId/messages, newest last).read-onlyuser
Broadcast Messageethora-chats-broadcast-v2Enqueue an asynchronous broadcast job posting a message to one or more chat rooms of an app - returns a jobId; messages are not sent synchronously.writeapp token or B2B
Get Broadcast Jobethora-chats-broadcast-job-v2Fetch the current status and per-room results of a broadcast job by jobId (one-shot, no polling).read-onlyapp token or B2B
Wait for Broadcast Jobethora-wait-broadcast-job-v2Block until a broadcast job reaches a terminal state (completed or failed) or until timeoutMs - read-only polling wrapper around ethora-chats-broadcast-job-v2.read-onlyapp token or B2B
Search Messagesethora-messages-search-v2Search an App’s chat messages (GET /v2/apps/:appId/messages/search).read-onlyuser
Get Message Contextethora-messages-context-v2Fetch the messages surrounding a target message (GET /v2/apps/:appId/chats/:chatId/messages/context).read-onlyuser
Get Unread Countsethora-unread-counts-v2Batch per-room unread message counts for a set of users (POST /v2/apps/:appId/users/unread-counts).read-onlyuser

AI agents (18)

Create reusable agent personas, put them in rooms, make one the default responder, and inspect the live bot instances.

ToolNameWhat it doesAccessAuth
Create Agentethora-agents-create-v2Create a reusable AI agent (POST /v2/apps/:appId/agents).writeuser
List Agentsethora-agents-list-v2List the reusable saved agents of an app (GET /v2/apps/:appId/agents, or GET /v2/agents for the token’s own app) - a saved agent is a reusable bot definition.read-onlyapp token
Get Agentethora-agents-get-v2Fetch one reusable saved agent’s full config by id (GET /v2/agents/:agentId) - prompt, LLM, RAG settings, visibility.read-onlyapp token
Update Agentethora-agents-update-v2Update a saved AI agent (PUT /v2/agents/:agentId).writeuser
Clone Agentethora-agents-clone-v2Duplicate an existing saved agent into a new agent, optionally overriding its name/slug/summary (POST /v2/agents/:agentId/clone).writeapp token
Delete Agentethora-agents-delete-v2Delete an Agent (DELETE /v2/agents/:idOrAddress).destructiveuser
Export Agentethora-agents-export-v2Export an Agent as a portable bundle (GET /v2/agents/:idOrAddress/export).read-onlyuser
Import Agentethora-agents-import-v2Import an Agent from a bundle produced by ethora-agents-export-v2 (POST /v2/agents/import, application/json body IS the bundle).writeuser
Activate Agent for Widgetethora-agents-activate-v2Make an agent the app’s ACTIVE widget bot: sets App.defaultBotInstanceId (and botStatus: on), which is what POST /v2/widget/sessions uses to decide who answers website visitors.writeuser
Invite Agent to Chatethora-agent-invite-to-chatInvite an Agent into a chat room.writeuser
Set Agent Visibilityethora-agent-set-visibilitySet an Agent’s visibility (private | unlisted | public).writeuser
Set Agent Promptethora-agent-soul-setReplace an Agent’s SOUL.MD with the provided markdown.writeuser
Append to Agent Promptethora-agent-soul-appendAppend a fragment to an Agent’s SOUL.MD (its evolving identity / private notes).writeuser
List Bot Instancesethora-bot-instances-listList BotInstances.read-onlyuser
Bot Instance Statusethora-bot-instance-statusTurn a specific BotInstance on or off.read-onlyuser
Diagnose Bot Instanceethora-bot-instance-diagDiagnose a specific BotInstance for an Agent (GET /v2/agents/:idOrAddress/bot-instances/:botInstanceId/diag).read-onlyuser
Send Test Message to Botethora-bot-instance-test-messageSend a test message from a BotInstance (POST /v2/agents/:idOrAddress/bot-instances/:botInstanceId/test-message).writeuser
Remove Bot from Chatethora-bot-instance-leave-chatRemove a BotInstance from a chat room (POST /v2/agents/:idOrAddress/bot-instances/:botInstanceId/leave-chat).destructiveuser

Website chat widget (2)

Generate the embed snippet and a React starter so the agent you just built answers on a website.

ToolNameWhat it doesAccessAuth
Widget Embed Snippetethora-widget-embed-snippetGenerate the <script> tag that embeds the Ethora AI chat widget (the floating launcher + chat panel that website visitors use) for an app, plus the prerequisites that must hold before it...read-onlynone
Generate Chat Component App.tsxethora-generate-chat-component-app-tsxGenerate a ready-to-paste React App.tsx snippet that mounts @ethora/chat-component.read-onlynone

RAG sources (knowledge base) (14)

Crawl websites and upload documents into an app’s retrieval index, tag them, reindex and prune.

ToolNameWhat it doesAccessAuth
Crawl Website Sourceethora-sources-site-crawl-v2Crawl a website URL and ingest its content into an app’s RAG sources (app-token / B2B variant of ethora-sources-site-crawl).writeapp token or B2B
Crawl Website Source and Waitethora-sources-site-crawl-v2-waitCrawl a website URL and block until the server finishes - a single-call, long-timeout variant of ethora-sources-site-crawl-v2 (same crawl + embed effect).writeapp token or B2B
Reindex Website Sourceethora-sources-site-reindex-v2Re-crawl and re-embed a previously crawled URL by its urlId, refreshing its RAG content (app-token / B2B variant of ethora-sources-site-reindex).writeapp token or B2B
Reindex Website Source and Waitethora-sources-site-reindex-v2-waitRe-crawl and re-embed a previously crawled URL and block until the server finishes - a single-call, long-timeout variant of ethora-sources-site-reindex-v2 (same refresh effect).writeapp token or B2B
List Website Sourcesethora-sources-site-list-v2List an app’s crawled website sources, including each source’s id, URL, and current RAG tags.read-onlyapp token or B2B
Update Website Source Tagsethora-sources-site-tags-update-v2Set the RAG retrieval tags on a crawled website source - replaces the source’s tag set with the provided tags array (not additive; pass [] to clear all).writeapp token or B2B
Delete Website Source URLethora-sources-site-delete-url-v2Remove a single crawled URL from an app’s RAG sources, matched by its exact url string (app-token / B2B variant of ethora-sources-site-delete-url).destructiveapp token or B2B
Delete Website Source URLsethora-sources-site-delete-url-v2-batchBulk-remove crawled website sources (1-100) from an app in one call, matched by their source record ids.destructiveapp token or B2B
Upload Knowledge Documentethora-sources-docs-upload-v2Upload documents (1-5; PDF, text, etc.) into an app’s RAG sources (app-token / B2B variant of ethora-sources-docs-upload).writeapp token or B2B
List Knowledge Documentsethora-sources-docs-list-v2List an app’s ingested documents, including each document’s id, name, and current RAG tags.read-onlyapp token or B2B
Update Knowledge Document Tagsethora-sources-docs-tags-update-v2Set the RAG retrieval tags on an ingested document - replaces the document’s tag set with the provided tags array (not additive; pass [] to clear all).writeapp token or B2B
Delete Knowledge Documentethora-sources-docs-delete-v2Remove a previously ingested document from an app’s RAG sources by docId (app-token / B2B variant of ethora-sources-docs-delete).destructiveapp token or B2B
Upload Knowledge Document (Legacy)ethora-sources-docs-uploadUpload documents (1-5; PDF, text, etc.) into an app’s RAG sources (legacy user-auth route).writeuser
Delete Knowledge Document (Legacy)ethora-sources-docs-deleteRemove a previously ingested document from an app’s RAG sources by docId (legacy user-auth route).destructiveuser

Users and files (6)

Provision end users in bulk and manage the signed-in user’s file storage.

ToolNameWhat it doesAccessAuth
Batch Create Usersethora-users-batch-create-v2Provision many Ethora users (1-100) in one asynchronous batch job - the bulk equivalent of ethora-user-register.writeB2B token
Get Users Batch Jobethora-users-batch-job-v2Fetch the current status and per-user results of a users batch job by jobId (one-shot, no polling).read-onlyB2B token
Wait for Users Batch Jobethora-wait-users-batch-job-v2Block until a users batch job reaches a terminal state (completed or failed) or timeoutMs - read-only polling wrapper around ethora-users-batch-job-v2.read-onlyB2B token
Upload Fileethora-files-upload-v2Upload 1-5 files to the authenticated user’s Ethora file storage (POST /v2/files).writeuser
Get Fileethora-files-get-v2List the authenticated user’s files, or fetch one file’s metadata by id (GET /v2/files).read-onlyuser
Delete Fileethora-files-delete-v2Permanently delete one of the authenticated user’s files by id (DELETE /v2/files/:id).destructiveuser

B2B provisioning (5)

One-call orchestrators for integrators: create an app, mint tokens, index sources and switch the agent on, with a runbook to match.

ToolNameWhat it doesAccessAuth
Create App (B2B)ethora-b2b-app-createCreate a new Ethora app (tenant) server-side using B2B auth - the partner/integrator equivalent of ethora-app-create.writeB2B token
Provision App (B2B)ethora-b2b-app-provisionOne-call B2B orchestrator: create an app, mint one or more app tokens, provision default chat rooms, then configure and enable its AI bot.writeB2B token
Bootstrap AI App (B2B)ethora-b2b-app-bootstrap-aiOne-call B2B orchestrator: create an app, set it as the current context, index RAG sources, then configure and enable its AI bot.writeB2B token
Generate B2B Bootstrap Runbookethora-generate-b2b-bootstrap-runbookGenerate a human-readable runbook listing this server’s tool calls in the right order for a B2B bootstrap, with example payloads.read-onlynone
Generate Env Examplesethora-generate-env-examplesGenerate .env.example templates for the three common Ethora integration targets: the frontend chat component, the backend SDK, and this MCP server.read-onlynone

Legacy per-app bot (6)

For apps created in the dashboard before the agents framework. New apps use the AI agents group instead.

ToolNameWhat it doesAccessAuth
Get Legacy Botethora-bot-get-v2Read the current AI bot configuration for an app: status, trigger, prompt, greeting, LLM provider/model, RAG settings, widget config.read-onlyapp token or B2B
Update Legacy Botethora-bot-update-v2Configure the AI bot for an app - prompt, LLM, trigger, greeting, RAG behavior, identity, and public widget settings.writeapp token or B2B
Enable Legacy Botethora-bot-enable-v2Enable the LEGACY per-app aiBot using app-token or B2B auth.writeuser
Disable Legacy Botethora-bot-disable-v2Turn the AI bot off for an app (sets bot status: "off") - it stops responding.writeapp token or B2B
Get Legacy Bot Widgetethora-bot-widget-v2LEGACY: read the per-app bot widget config (GET /v2/bot/widget); only apps that already have a legacy aiBot have one, API-created apps get 422.read-onlyapp token
Enable Legacy Bot (B2B)ethora-b2b-bot-enableEnable the LEGACY per-app aiBot (B2B auth).writeuser

Documentation search (2)

The ChatGPT connector convention: search the server’s own reference and fetch a section by id. Works without signing in.

ToolNameWhat it doesAccessAuth
Search DocssearchSearch the Ethora documentation and tool reference: auth model (app JWT vs app token vs B2B token vs API keys), hosted-server getting started, chat-component and backend SDK quickstarts,...read-onlynone
Fetch DocfetchFetch the full text of a documentation section or tool reference entry by the id returned from search (e.g.read-onlynone

Wallet (1)

Read-only balance lookup. No tool on the hosted server moves money or tokens.

ToolNameWhat it doesAccessAuth
Get Wallet Balanceethora-wallet-get-balanceRead the authenticated user’s on-chain ERC-20 wallet balance(s).read-onlyuser

Resources and prompts

Besides tools, the server ships loadable documentation resources and reusable prompts so an assistant can read the integration guides into its context instead of guessing.

  • ethora://docs/auth-mapappJwt vs appToken vs b2bToken
  • ethora://docs/chat-component/quickstartVite/Next quickstart + replacing demo tokens
  • ethora://docs/sdk-backend/quickstart@ethora/sdk-backend quickstart
  • ethora://docs/recipesCommon MCP recipes
  • ethora-vite-quickstartExplains how to add chat component to a Vite app, and how to avoid demo tokens in production.
  • ethora-nextjs-quickstartExplains how to add chat component to a Next.js app and handle auth safely.
  • ethora-backend-sdk-quickstartShows how to integrate Ethora backend SDK in a Node.js backend.
  • ethora-auth-mapExplains appJwt vs appToken vs b2bToken and when to use each.
  • ethora-recipesCommon MCP tool sequences for local user-auth and server-side B2B/app-token flows.
  • ethora-agents-quickstartEnd-to-end recipe for creating Agents, indexing their RAG, marking them public, inviting them into rooms, and running the two-agents-in-one-room demo.

Questions about the tool set

Do I get the same tools on a self-hosted Ethora server?

Yes. The hosted server and the self-hosted one are the same code started in HTTP mode. The two app-deletion tools are registered only when the deploy enables dangerous tools, which the standard monoserver deploy does.

Can a connected assistant delete things without asking?

Destructive tools carry a destructive annotation, and well-behaved clients (Claude, ChatGPT, Cursor, Claude Code) confirm those calls with you. On the OAuth endpoint they additionally require the admin scope, which you grant or refuse at connection time.

Which tools work without signing in?

The documentation search tools, Session Status, Connection Doctor and Help. Everything else needs a user session, an API key or an OAuth token. An agent can create the account itself with Register User.

Are there tools that move money or crypto?

No. The hosted server offers a read-only wallet balance lookup only. Transfers are not exposed remotely.

How current is this page?

It is generated from the server’s own tool list (v26.9.1) after each release, so the names and flags match what your client sees when it connects.

Get started

Connect your assistant to Ethora

Create a free account, open Account then AI Assistants, and paste your personal connector URL into Claude, ChatGPT, Cursor or Claude Code.

Free tier available Revocable API keys Self-host with the monoserver