Server data from the Official MCP Registry
MCP server for the Ethora chat & messaging platform: chat ops, AI bots, RAG, ERC-20 wallet.
MCP server for the Ethora chat & messaging platform: chat ops, AI bots, RAG, ERC-20 wallet.
This MCP server is well-architected for the Ethora platform with proper authentication modes (user/B2B/app-token), reasonable credential handling via environment variables, and appropriate input validation using zod schemas. However, several moderate security concerns exist: credential values are logged in error messages, destructive operations require an environment variable flag rather than explicit confirmation, and there is broad network access to the configured Ethora API. The server's permissions align with its B2B/developer-tool purpose, but the logging of sensitive error contexts and reliance on runtime flags for dangerous tools warrant attention. Supply chain analysis found 8 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.
3 files analyzed · 16 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: ETHORA_API_URL
Environment variable: ETHORA_BASE_URL
Environment variable: ETHORA_APP_JWT
Environment variable: ETHORA_B2B_TOKEN
Environment variable: ETHORA_MCP_ENABLE_DANGEROUS_TOOLS
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-dappros-ethora-mcp-cli": {
"env": {
"ETHORA_API_URL": "your-ethora-api-url-here",
"ETHORA_APP_JWT": "your-ethora-app-jwt-here",
"ETHORA_BASE_URL": "your-ethora-base-url-here",
"ETHORA_B2B_TOKEN": "your-ethora-b2b-token-here",
"ETHORA_MCP_ENABLE_DANGEROUS_TOOLS": "your-ethora-mcp-enable-dangerous-tools-here"
},
"args": [
"-y",
"@ethora/mcp-server"
],
"command": "npx"
}
}
}From the project's GitHub README.
An MCP (Model Context Protocol) CLI/server that connects popular MCP clients to the Ethora platform — an open-source chat & messaging platform with a built-in AI agent / chatbot framework. This runs locally on a developer machine via stdio rather than as a hosted Ethora service.
Use it from Cursor, VS Code MCP, Claude Desktop, or Windsurf/Cline to manage apps and chat rooms, broadcast messages, deploy AI agents / chatbots with RAG sources, and automate B2B provisioning workflows. (ERC-20 wallet tools are also included — see the tool list below.)
Part of the Ethora SDK ecosystem — see all SDKs, tools, and sample apps. Follow cross-SDK updates in the Release Notes.
https://api.chat.ethora.com/v1 (Swagger: https://api.chat.ethora.com/api-docs/#/){ ok, ts, meta, data | error }) so agent code can reason about success/failure consistently.Best for:
ethora-user-loginHow it works:
ETHORA_APP_JWT once for login/register bootstrapethora-auth-use-userethora-user-loginBest for:
How it works:
ETHORA_B2B_TOKENethora-auth-use-b2b for explicit tenant-actor /v2/apps/:appId/... routesethora-auth-use-app after ethora-app-select when you want app-scoped convenience routes powered by appTokenRule of thumb:
ethora://docs/auth-map — appJwt vs appToken vs b2bTokenethora://docs/chat-component/quickstart — Vite/Next quickstart + replacing demo tokensethora://docs/sdk-backend/quickstart — backend integration quickstartethora://docs/recipes — common tool sequences (broadcast/sources/files/bot)ethora-auth-mapethora-vite-quickstartethora-nextjs-quickstartethora-backend-sdk-quickstartethora-recipesethora-generate-chat-component-app-tsx — ready-to-paste App.tsx snippet for @ethora/chat-componentethora-generate-env-examples — .env.example templates for:
ETHORA_API_URL, ETHORA_APP_JWT, ETHORA_B2B_TOKEN)ethora-generate-b2b-bootstrap-runbook — minimal “call these MCP tools in order” runbook for B2B bootstrapTip: to list runnable recipes without calling ethora-help, call ethora-run-recipe with goal: "auto" and omit recipeId.
Session / Config
ethora-configure — set API URL plus App JWT / B2B token / appToken for this MCP sessionethora-status — show configured API URL, active auth mode, and which credentials are presentethora-help — task-oriented help (recommended next calls + “one-click recipes” based on current state)ethora-run-recipe — execute a built-in recipe by id (sequential steps; no shell, no file writes)ethora-doctor — validate config + ping the configured Ethora API for both user and B2B usageethora-app-select — select current appId and optionally set appTokenethora-auth-use-app — switch to app-token auth mode for app-scoped operationsethora-auth-use-user — switch to user-session auth modeethora-auth-use-b2b — switch to tenant-actor B2B x-custom-token auth modeChats (v2)
ethora-chats-broadcast-v2 — enqueue broadcast job using app-token auth or B2B + explicit appIdethora-chats-broadcast-job-v2 — get broadcast job status/results using app-token auth or B2B + explicit appIdethora-wait-broadcast-job-v2 — poll broadcast job until completed/failed using app-token auth or B2B + explicit appIdethora-chats-message-v2 — send a test/automation message through the app chat surface (requires app-token auth)ethora-chats-history-v2 — read persisted automation/test history for private or group sessions (requires app-token auth)Users (v2 async batch)
ethora-users-batch-create-v2 — create async users batch job (requires B2B auth)ethora-users-batch-job-v2 — get users batch job status/results (requires B2B auth)ethora-wait-users-batch-job-v2 — poll users batch job until completed/failed (requires B2B auth)Files (v2)
Bot / Agent (v2)
ethora-bot-get-v2 — get bot status/settings using app-token auth or B2B + explicit appId
ethora-bot-update-v2 — update bot settings using app-token auth or B2B + explicit appId
ethora-bot-enable-v2 — enable bot using app-token auth or B2B + explicit appId
ethora-bot-disable-v2 — disable bot using app-token auth or B2B + explicit appId
ethora-bot-widget-v2 — get widget/embed config and public widget URL metadata (app-token auth)
ethora-agents-list-v2 — list reusable saved agents for the current app owner (app-token auth)
ethora-agents-get-v2 — get one reusable saved agent (app-token auth)
ethora-agents-create-v2 — create a reusable saved agent (app-token auth)
ethora-agents-update-v2 — update a reusable saved agent (app-token auth)
ethora-agents-clone-v2 — clone a reusable saved agent (app-token auth)
ethora-agents-activate-v2 — bind a saved agent as the active bot for the selected app (app-token auth)
ethora-bot-message-v2 — compatibility alias for ethora-chats-message-v2
ethora-bot-history-v2 — compatibility alias for ethora-chats-history-v2
ethora-files-upload-v2 — upload files (requires user auth)
ethora-files-get-v2 — list/get files (requires user auth)
ethora-files-delete-v2 — delete file by id (requires user auth)
Sources
ethora-sources-site-crawl — crawl a URL (requires user auth)ethora-sources-site-reindex — reindex URL by urlId (requires user auth)ethora-sources-site-delete-url — delete by URL (requires user auth)ethora-sources-site-delete-url-v2 — batch delete URLs (requires user auth)ethora-sources-docs-upload — upload docs for ingestion (requires user auth)ethora-sources-docs-delete — delete ingested doc by id (requires user auth)ethora-sources-site-crawl-v2 — crawl a URL using app-token auth or B2B + explicit appIdethora-sources-site-reindex-v2 — reindex URL by urlId using app-token auth or B2B + explicit appIdethora-sources-site-crawl-v2-wait — single-call long-timeout helper for crawl (app-token auth)ethora-sources-site-reindex-v2-wait — single-call long-timeout helper for reindex (app-token auth)ethora-sources-site-list-v2 — list crawled site sources and current tags using app-token auth or B2B + explicit appIdethora-sources-site-tags-update-v2 — set/update tags for a crawled site source using app-token auth or B2B + explicit appIdethora-sources-site-delete-url-v2 — delete one crawled URL by URL using app-token auth or B2B + explicit appIdethora-sources-site-delete-url-v2-batch — batch delete crawled source records by id using app-token auth or B2B + explicit appIdethora-sources-docs-upload-v2 — upload docs for ingestion using app-token auth or B2B + explicit appIdethora-sources-docs-list-v2 — list indexed documents and current tags using app-token auth or B2B + explicit appIdethora-sources-docs-tags-update-v2 — set/update tags for an indexed document using app-token auth or B2B + explicit appIdethora-sources-docs-delete-v2 — delete doc by id using app-token auth or B2B + explicit appIdAuth & Accounts
ethora-user-login — login user (email + password)ethora-user-register — register user (email + first/last name)Applications
ethora-app-create — create appethora-app-update — update appethora-app-delete — delete appethora-app-list — list appsethora-b2b-app-create — create app using B2B auth (x-custom-token)ethora-b2b-app-bootstrap-ai — create app → index sources → configure/enable bot, including runtime LLM selection (B2B automation)ethora-app-tokens-list-v2 — list app token metadata (B2B auth)ethora-app-tokens-create-v2 — create new app token (returned once) (B2B auth)ethora-app-tokens-rotate-v2 — rotate token (revoke old, return new once) (B2B auth)ethora-app-tokens-revoke-v2 — revoke token by tokenId (idempotent) (B2B auth)ethora-b2b-app-provision — create app + create tokens + provision rooms + configure bot, including runtime LLM selection (B2B orchestrator)Chat & Rooms
ethora-app-get-default-rooms — list default roomsethora-app-get-default-rooms-with-app-id — rooms for a given appethora-app-create-chat — create chat for appethora-app-delete-chat — delete chatWallet
ethora-wallet-get-balance — get balanceethora-wallet-erc20-transfer — send ERC-20 tokensTool names above reflect the functional areas exposed by the server. Your exact tool names may vary slightly by version; run the client’s “list tools” to confirm.
Before you begin, ensure you have the following:
The server is distributed as an npm package and is typically launched by MCP clients via npx:
npx -y @ethora/mcp-server
No global install is required.
This MCP server supports both the local user-auth flow and the server-side B2B flow.
Core values:
You can provide these either:
ethora-configure tool (in-memory; resets when MCP process restarts)ETHORA_API_URL: full API URL (example: https://api.chat.ethora.com/v1, http://localhost:8080/v1)ETHORA_BASE_URL: base host URL (example: https://api.chat.ethora.com, http://localhost:8080).../v1.ETHORA_APP_JWT: App JWT string, usually starting with JWT ...ETHORA_B2B_TOKEN: B2B server token for x-custom-token auth (JWT with type=server)ETHORA_MCP_ENABLE_DANGEROUS_TOOLS: enable destructive tools (default: disabled). Set to true to expose:
Security: never commit App JWTs, B2B tokens, or appTokens to git. Configure them via env vars, the MCP client secret store, or your own backend.
All tools return JSON in a consistent envelope:
{ ok: true, ts, meta, data }{ ok: false, ts, meta, error }, where error includes:
code: stable string (prefer API code, otherwise inferred)httpStatus: HTTP status when the failure came from an API callrequestId: request/correlation id if returned by APIhint: 1-line “what to do next”{
"mcpServers": {
"ethora-mcp-cli": {
"command": "npx",
"args": ["-y", "@ethora/mcp-server"]
}
}
}
"mcp": {
"servers": {
"ethora-mcp-cli": {
"command": "npx",
"args": [
"-y", "@ethora/mcp-server"
]
}
}
}
claude_desktop_config.json{
"mcpServers": {
"ethora-mcp-cli": {
"command": "npx",
"args": ["-y", "@ethora/mcp-server"]
}
}
}
npx -y @ethora/mcp-server
mcp_config.json similarly:
{
"mcpServers": {
"ethora-mcp-cli": {
"command": "npx",
"args": ["-y", "@ethora/mcp-server"]
}
}
}
After the server shows as connected in your client:
list tools (client command) to verify Ethora tools are available.ethora-doctor (or ethora-status)ethora-configure with apiUrl / appJwtethora-auth-use-userethora-user-loginethora-app-list or ethora-wallet-get-balanceethora-configure with apiUrl / b2bTokenethora-auth-use-b2bethora-b2b-app-create or ethora-app-tokens-list-v2Pre-reqs:
ETHORA_API_URL (or call ethora-configure)ETHORA_B2B_TOKEN (or call ethora-configure with b2bToken)Suggested flow:
ethora-auth-use-b2bethora-b2b-app-bootstrap-ai with:
displayNamesavedAgentIdcrawlUrldocs[] (base64)enableBot: truellmProviderllmModelIt will:
/v2/sources/* (app-token auth)Minimal (create app only):
{
"displayName": "Acme AI Demo",
"setAsCurrent": true
}
Create app + crawl a website + enable bot:
{
"displayName": "Acme AI Demo",
"savedAgentId": "6790abc1234567890def1111",
"crawlUrl": "https://example.com",
"followLink": true,
"enableBot": true,
"botTrigger": "/bot",
"llmProvider": "openai",
"llmModel": "gpt-4o-mini"
}
Create app + upload docs + enable bot:
{
"displayName": "Acme AI Demo",
"docs": [
{
"name": "faq.pdf",
"mimeType": "application/pdf",
"base64": "BASE64_PDF_CONTENT_HERE"
}
],
"enableBot": true,
"llmProvider": "openai",
"llmModel": "gpt-4o-mini"
}
Provision app + token + default rooms + bot settings:
{
"displayName": "Acme Support",
"savedAgentId": "6790abc1234567890def1111",
"tokenLabels": ["default", "staging"],
"rooms": [
{ "title": "General" },
{ "title": "Support", "pinned": true }
],
"enableBot": true,
"botTrigger": "/bot",
"botPrompt": "You are the Acme support assistant.",
"botGreetingMessage": "Hello. How can I help?",
"llmProvider": "openai",
"llmModel": "gpt-4o-mini"
}
Provider/model note:
openai and openai-compatible.Once you already have an app selected with appToken auth:
ethora-auth-use-appethora-bot-get-v2 to inspect current bot status and prompt settingsethora-sources-site-list-v2 and ethora-sources-docs-list-v2 to inspect indexed sourcesethora-sources-site-tags-update-v2 or ethora-sources-docs-tags-update-v2 to organize retrieval by tagsethora-chats-message-v2 / ethora-chats-history-v2 if your backend exposes the chat automation surface on the same API hostExample: apply retrieval tags to a crawled source
{
"sourceId": "6790abc1234567890def1234",
"tags": ["support", "faq", "billing"]
}
Example: apply retrieval tags to an indexed document
{
"docId": "6790abc1234567890def1235",
"tags": ["support", "faq"]
}
This repo runs report-only scans on pushes/PRs:
Clone and run locally:
git clone https://github.com/dappros/ethora-mcp-cli.git
cd ethora-mcp-cli
npm install
npm run build
npm start
Suggested scripts (if not present):
{
"scripts": {
"build": "tsc -p .",
"start": "node dist/index.js",
"dev": "tsx src/index.ts"
}
}
npx @ethora/mcp-server runs locally without errors. Check Node ≥ 18.ETHORA_BASE_URL and any required secrets are set in the client’s environment.See LICENSE.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.