API Tools
ethora.com
An MCP server for configuring and managing an Ethora API session, including authentication, diagnostics, recipes, and task-oriented help.
ENDPOINT 1
https://mcp.chat.ethora.com/mcp/oauth
Known tools 0
No tool metadata was available in the registry cache.
CONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.ethora-com]
url = "https://mcp.chat.ethora.com/mcp/oauth"
enabled = true
bearer_token_env_var = "MCP_BEARER_TOKEN"
Authentication is required. Replace the placeholder locally and never commit a secret.
Claude Code
.mcp.json
{
"mcpServers": {
"ethora-com": {
"type": "http",
"url": "https://mcp.chat.ethora.com/mcp/oauth",
"headers": {
"Authorization": "Bearer YOUR_BEARER_TOKEN"
}
}
}
}
Authentication is required. Replace the placeholder locally and never commit a secret.
Claude Desktop
Settings → Connectors → Add custom connector
Name: ethora-com
Remote MCP URL: https://mcp.chat.ethora.com/mcp/oauth
Add the URL as a custom connector, then complete its supported authorization flow. Claude Desktop remote connectors are configured in the UI.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"ethora-com": {
"url": "https://mcp.chat.ethora.com/mcp/oauth",
"headers": {
"Authorization": "Bearer YOUR_BEARER_TOKEN"
}
}
}
}
Authentication is required. Replace the placeholder locally and never commit a secret.
Visual Studio Code
.vscode/mcp.json
{
"servers": {
"ethora-com": {
"type": "http",
"url": "https://mcp.chat.ethora.com/mcp/oauth",
"headers": {
"Authorization": "Bearer ${input:mcp-token}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "mcp-token",
"description": "ethora-com bearer token",
"password": true
}
]
}
Authentication is required. Replace the placeholder locally and never commit a secret.
Generic MCP
Client-specific MCP configuration
{
"name": "ethora-com",
"transport": "streamable-http",
"url": "https://mcp.chat.ethora.com/mcp/oauth",
"headers": {
"Authorization": "Bearer YOUR_BEARER_TOKEN"
}
}
Authentication is required. Replace the placeholder locally and never commit a secret.
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
ENDPOINT 2
https://mcp.chat.ethora.com/mcp
MCP server metadata
- Name
- Ethora MCP Server
- Version
- 26.9.3
Ethora MCP Server: create and manage Ethora chat/messaging apps, users, chats, AI agents and bots through the Ethora API. Auth: call `ethora-status` first. If `hasUserToken` is true you are already authenticated (an API key or token was sent as a Bearer header on the connection) and can skip login. Otherwise call `ethora-user-login` (email + password for an existing account) or `ethora-user-register` (new account). Register returns a generated password and an API key exactly once; tell the user to store them. Headless clients and agents reconnect later by sending the API key as `Authorization: Bearer <key>` instead of logging in again. Typical flow after auth: `ethora-app-create` to create an app, then `ethora-app-select` to make it current, then chats/users/agents tools (`ethora-app-create-chat`, `ethora-agents-create-v2`, `ethora-agent-invite-to-chat`, `ethora-chats-message-v2` with waitForReplySec, ...). For a website chat widget: `ethora-agents-activate-v2 { agentId, chatJid }` then `ethora-widget-embed-snippet`. Stay in user auth mode on the hosted server (`ethora-status` shows authMode=user); app-token and B2B modes are for server integrations and the agents/rooms routes reject app tokens. Room ids: a room JID is `${appId}_${chatId}` and every room tool accepts the JID or the bare chatId. Use `search` and `fetch` to look up documentation (auth model, quickstarts, recipes, tool reference) before guessing; `ethora-help` returns recommended next calls for the current state. Never print API keys or passwords in your replies unless the user explicitly asks for them. App credentials are never included in tool results: appSecret, tenantSecret, appToken and passwords come back as [redacted]. When a snippet or config needs the appToken, call `ethora-app-credentials { appId, confirm: true }`; the App Secret is only available in the web dashboard API tab. Tools marked destructive delete data owned by the authenticated user (apps, agents, users, files); confirm with the user before calling them. Manage keys with `ethora-api-key-create`, `ethora-api-key-list` and `ethora-api-key-revoke`. Each MCP session is private: nothing from another client's session is visible here. If a tool fails in a way the user should know about, or something is missing or wrong, offer to report it with `ethora-feedback-submit`; it reaches the Ethora team and attaches this session's recent errors automatically. After registering or creating a key, give the user their `connectorUrl` (returned alongside the key): pasting it as a custom connector in Claude.ai or ChatGPT reconnects them authenticated in every future conversation with no login step.
Known tools 91
ethora-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 appId/agentId, and `hosted`/`sessionId` on the hosted (Streamable HTTP) server.
Inferred read-onlyethora-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.
Inferred read-onlyethora-run-recipeExecute a built-in recipe — an ordered sequence of this server's own tool calls — by id.
Potential side effectsethora-doctorDiagnose the session: validate the config is internally consistent for the active auth mode and ping the Ethora API (`GET /v1/ping`).
Inferred read-onlyethora-auth-use-appSwitch this session's active auth mode to app-token, so subsequent app-scoped calls authenticate with the configured `appToken`.
Inferred read-onlyethora-auth-use-userSwitch this session's active auth mode to user-session, so subsequent calls authenticate as a logged-in Ethora user.
Inferred read-onlyethora-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.
Inferred read-onlyethora-app-selectSet the current app context for this session so app-scoped tools can omit their `appId` argument.
Inferred read-onlyethora-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.
Potential side effectsethora-chats-broadcast-job-v2Fetch the current status and per-room results of a broadcast job by `jobId` (one-shot, no polling).
Inferred read-onlyethora-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`.
Potential side effectsethora-files-upload-v2Upload 1–5 files to the authenticated user's Ethora file storage (`POST /v2/files`).
Potential side effectsethora-files-get-v2List the authenticated user's files, or fetch one file's metadata by id (`GET /v2/files`).
Inferred read-onlyethora-files-delete-v2Permanently delete one of the authenticated user's files by id (`DELETE /v2/files/:id`).
Potential side effectsethora-sources-docs-deleteRemove a previously ingested document from an app's RAG sources by `docId` (legacy user-auth route).
Potential side effectsethora-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`).
Inferred read-onlyethora-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`).
Inferred read-onlyethora-sources-site-crawl-v2-waitCrawl a website URL and wait for the crawl to finish: enqueues the job, then polls it until it reports `completed` or `failed`.
Inferred read-onlyethora-sources-site-reindex-v2-waitRe-crawl and re-embed a previously crawled URL and wait for it to finish: enqueues the job, then polls it until it reports `completed` or `failed`.
Inferred read-onlyethora-sources-site-list-v2List an app's crawled website sources, including each source's id, URL, and current RAG tags.
Inferred read-onlyethora-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).
Potential side effectsethora-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`).
Potential side effectsethora-sources-docs-list-v2List an app's ingested documents, including each document's id, name, and current RAG tags.
Inferred read-onlyethora-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).
Potential side effectsethora-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`).
Potential side effectsethora-users-batch-create-v2Provision many Ethora users (1–100) in one asynchronous batch job — the bulk equivalent of `ethora-user-register`.
Potential side effectsethora-users-batch-job-v2Fetch the current status and per-user results of a users batch job by `jobId` (one-shot, no polling).
Inferred read-onlyethora-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`.
Potential side effectsethora-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 time).
Potential side effectsethora-app-tokens-rotate-v2Rotate an app token: revoke an existing token and issue a replacement in one step.
Inferred read-onlyethora-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.
Inferred read-onlyethora-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.
Potential side effectsethora-user-loginAuthenticate as an existing Ethora user with email + password.
Potential side effectsethora-user-registerCreate a new Ethora user account by email + first/last name, then log in and bind the session.
Potential side effectsethora-api-key-createMint a long-lived, revocable API key for the currently logged-in user.
Potential side effectsethora-api-key-listList the current user's API keys (id, name, createdAt, expiresAt).
Inferred read-onlyethora-app-credentialsReveal the appToken of an app the caller owns, for a chat-component snippet or a widget config.
Inferred read-onlyethora-feedback-submitSend feedback about Ethora to the Ethora team: something that does not work, behaves differently from what the tool description promised, is missing, or is badly documented.
Potential side effectsethora-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 answers.
Inferred read-onlyethora-app-listList all Ethora apps (tenants) owned by the currently logged-in user.
Inferred read-onlyethora-app-createCreate a new Ethora app (tenant) owned by the currently logged-in user.
Potential side effectsethora-app-updateUpdate mutable fields on an app the caller owns (displayName, domainName, appTagline, primaryColor, botStatus).
Potential side effectsethora-app-get-default-roomsList the default chat rooms (MUC rooms) of the currently selected Ethora app — every new user auto-joins these.
Inferred read-onlyethora-app-create-chatCreate a new chat room (MUC room) inside an app the caller owns.
Potential side effectsethora-app-delete-chatPermanently delete a chat room from an app the caller owns — removes the MUC room, its message archive, and all member affiliations.
Potential side effectsethora-app-get-default-rooms-with-app-idList the default chat rooms of a specific Ethora app, passed via `appId` (or the currently selected app).
Inferred read-onlyethora-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.
Potential side effectsethora-sources-site-delete-url-v2-batchBulk-remove crawled website sources (1–100) from an app in one call, matched by their source record ids.
Potential side effectsethora-b2b-app-createCreate a new Ethora app (tenant) server-side using B2B auth — the partner/integrator equivalent of `ethora-app-create`.
Potential side effectsethora-bot-get-v2Read the current AI bot configuration for an app: status, trigger, prompt, greeting, LLM provider/model, RAG settings, widget config.
Inferred read-onlyethora-bot-update-v2Configure the AI bot for an app — prompt, LLM, trigger, greeting, RAG behavior, identity, and public widget settings.
Potential side effectsethora-bot-disable-v2Turn the AI bot off for an app (sets bot `status: "off"`) — it stops responding.
Inferred read-onlyethora-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.
Inferred read-onlyethora-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.
Inferred read-onlyethora-agents-get-v2Fetch one reusable saved agent's full config by id (`GET /v2/agents/:agentId`) — prompt, LLM, RAG settings, visibility.
Inferred read-onlyethora-agents-create-v2Create a reusable AI agent (POST /v2/apps/:appId/agents).
Potential side effectsethora-agents-clone-v2Duplicate an existing saved agent into a new agent, optionally overriding its name/slug/summary (`POST /v2/agents/:agentId/clone`).
Potential side effectsethora-agent-set-visibilitySet an Agent's visibility (private | unlisted | public).
Inferred read-onlyethora-agents-export-v2Export an Agent as a portable bundle (GET /v2/agents/:idOrAddress/export).
Inferred read-onlyethora-agents-import-v2Import an Agent from a bundle produced by `ethora-agents-export-v2` (POST /v2/agents/import, application/json body IS the bundle).
Potential side effectsethora-bot-instance-diagDiagnose a specific BotInstance for an Agent (GET /v2/agents/:idOrAddress/bot-instances/:botInstanceId/diag).
Inferred read-onlyethora-bot-instance-test-messageSend a test message from a BotInstance (POST /v2/agents/:idOrAddress/bot-instances/:botInstanceId/test-message).
Potential side effectsethora-bot-instance-leave-chatRemove a BotInstance from a chat room (POST /v2/agents/:idOrAddress/bot-instances/:botInstanceId/leave-chat).
Potential side effectsethora-messages-search-v2Search an App's chat messages (GET /v2/apps/:appId/messages/search).
Inferred read-onlyethora-messages-context-v2Fetch the messages surrounding a target message (GET /v2/apps/:appId/chats/:chatId/messages/context).
Potential side effectsethora-unread-counts-v2Batch per-room unread message counts for a set of users (POST /v2/apps/:appId/users/unread-counts).
Potential side effectsethora-app-export-v2Export an App as a portable bundle (GET /v2/apps/:appId/export).
Inferred read-onlyethora-app-import-v2Import an App from a bundle produced by `ethora-app-export-v2` (POST /v2/apps/import, application/json body IS the bundle).
Potential side effectsethora-chats-message-v2Post a message into a chat room of an app (POST /v2/apps/:appId/chats/broadcast targeting one room).
Potential side effectsethora-chats-history-v2Read the archived messages of a chat room (GET /v2/apps/:appId/chats/:chatId/messages, newest last).
Inferred read-onlyethora-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.
Potential side effectsethora-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.
Inferred read-onlysearchSearch 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, recipes, and a reference entry for every tool with its inputs.
Inferred read-onlyfetchFetch the full text of a documentation section or tool reference entry by the id returned from `search` (e.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.ethora-mcp-server]
url = "https://mcp.chat.ethora.com/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"ethora-mcp-server": {
"type": "http",
"url": "https://mcp.chat.ethora.com/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: ethora-mcp-server
Remote MCP URL: https://mcp.chat.ethora.com/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"ethora-mcp-server": {
"url": "https://mcp.chat.ethora.com/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"ethora-mcp-server": {
"type": "http",
"url": "https://mcp.chat.ethora.com/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "ethora-mcp-server",
"transport": "streamable-http",
"url": "https://mcp.chat.ethora.com/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.