ethora-mcp-server — Claude Code MCP server: Ethora chats and AI agents
An MCP server for the Ethora chat platform: spin up apps, rooms, users and AI agents, send messages and build website chat-widget embeds from your agent.
claude mcp add --transport http ethora-mcp-server https://mcp.chat.ethora.com/mcp/oauthWhat ethora-mcp-server does
Ethora is an open-source chat and messaging platform with its own AI agent framework. This server exposes that API as tools, so an agent calls ethora-app-create, ethora-user-register, ethora-app-list and friends instead of hitting the API by hand. RAG source indexing and chat-widget embed generation go through it too.
There are three ways to run it. Ethora Cloud hosts it at https://mcp.chat.ethora.com/mcp — you sign in through the browser and install nothing locally. Self-hosting comes with the Ethora monoserver deploy: flip services.mcp.enabled in deploy.yml and it answers at mcp.<your domain>/mcp. The third option is stdio, npx -y @ethora/mcp-server with environment variables. Hosted and self-hosted are the same server started with ETHORA_MCP_TRANSPORT=http.
Sessions stay private: one client's login, chosen app and tokens are invisible to another. Some clients, ChatGPT among them, open a fresh session per tool call, so the server keeps a per-account snapshot keyed by the bearer token's user id — current app, agent, appToken and enabled tool groups. That snapshot sits in the process memory and expires after 24 hours idle. For stdio you need ETHORA_API_URL and ETHORA_APP_JWT; the server will not reach the API without them.
What it helps with
- create an Ethora app and its chat rooms without hand-written API calls
- register a user and get an API key back
- set up an AI agent inside a chat
- index sources for RAG
- generate embed code for a website chat widget
Example prompts for the agent
- Call
ethora-status, thenethora-user-loginandethora-app-list - Create an Ethora app and add a chat room to it
- Generate a chat widget embed for our site
How to install ethora-mcp-server
1Platform CLI: remote server
claude mcp add --transport http ethora-mcp-server https://mcp.chat.ethora.com/mcp/oauth2Platform CLI
claude mcp add --env ETHORA_API_URL=<ETHORA_API_URL> --env ETHORA_BASE_URL=<ETHORA_BASE_URL> --env ETHORA_APP_JWT=<ETHORA_APP_JWT> --env ETHORA_B2B_TOKEN=<ETHORA_B2B_TOKEN> --env ETHORA_MCP_ENABLE_DANGEROUS_TOOLS=<ETHORA_MCP_ENABLE_DANGEROUS_TOOLS> --transport stdio ethora-mcp-server -- npx -y @ethora/mcp-serverReplace <…> with your own values
1Platform CLI: remote server
codex mcp add ethora-mcp-server --url https://mcp.chat.ethora.com/mcp/oauth2Platform CLI
codex mcp add ethora-mcp-server --env ETHORA_API_URL=<ETHORA_API_URL> --env ETHORA_BASE_URL=<ETHORA_BASE_URL> --env ETHORA_APP_JWT=<ETHORA_APP_JWT> --env ETHORA_B2B_TOKEN=<ETHORA_B2B_TOKEN> --env ETHORA_MCP_ENABLE_DANGEROUS_TOOLS=<ETHORA_MCP_ENABLE_DANGEROUS_TOOLS> -- npx -y @ethora/mcp-serverReplace <…> with your own values
Config file
{
"mcpServers": {
"ethora-mcp-server": {
"url": "https://mcp.chat.ethora.com/mcp/oauth"
}
}
}{
"mcpServers": {
"ethora-mcp-server": {
"command": "npx",
"args": [
"-y",
"@ethora/mcp-server"
],
"env": {
"ETHORA_API_URL": "<ETHORA_API_URL>",
"ETHORA_BASE_URL": "<ETHORA_BASE_URL>",
"ETHORA_APP_JWT": "<ETHORA_APP_JWT>",
"ETHORA_B2B_TOKEN": "<ETHORA_B2B_TOKEN>",
"ETHORA_MCP_ENABLE_DANGEROUS_TOOLS": "<ETHORA_MCP_ENABLE_DANGEROUS_TOOLS>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"ethora-mcp-server": {
"type": "http",
"url": "https://mcp.chat.ethora.com/mcp/oauth"
}
}
}{
"servers": {
"ethora-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@ethora/mcp-server"
],
"env": {
"ETHORA_API_URL": "<ETHORA_API_URL>",
"ETHORA_BASE_URL": "<ETHORA_BASE_URL>",
"ETHORA_APP_JWT": "<ETHORA_APP_JWT>",
"ETHORA_B2B_TOKEN": "<ETHORA_B2B_TOKEN>",
"ETHORA_MCP_ENABLE_DANGEROUS_TOOLS": "<ETHORA_MCP_ENABLE_DANGEROUS_TOOLS>"
}
}
}
}Replace <…> with your own values
1Platform CLI: remote server
gemini mcp add -t http ethora-mcp-server https://mcp.chat.ethora.com/mcp/oauth2Platform CLI
gemini mcp add -e ETHORA_API_URL=<ETHORA_API_URL> -e ETHORA_BASE_URL=<ETHORA_BASE_URL> -e ETHORA_APP_JWT=<ETHORA_APP_JWT> -e ETHORA_B2B_TOKEN=<ETHORA_B2B_TOKEN> -e ETHORA_MCP_ENABLE_DANGEROUS_TOOLS=<ETHORA_MCP_ENABLE_DANGEROUS_TOOLS> ethora-mcp-server npx -y @ethora/mcp-serverReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about ethora-mcp-server
How do I install ethora-mcp-server in Claude Code?
For the hosted server: claude mcp add --transport http ethora-mcp-server https://mcp.chat.ethora.com/mcp/oauth. For a local stdio run: `claude mcp add --env ETHORA_API_URL=<ETHORA_API_URL> --env ETHORA_BASE_URL=<ETHORA_BASE_URL> --env ETHORA_APP_JWT=<ETHORA_APP_JWT> --env ETHORA_B2B_TOKEN=<ETHORA_B2B_TOKEN> --env ETHORA_MCP_ENABLE_DANGEROUS_TOOLS=<ETHORA_MCP_ENABLE_DANGEROUS_TOOLS> --transport stdio ethora-mcp-server -- npx -y @ethora/mcp-server`.
What does ethora-mcp-server do?
It hands your agent Ethora platform tools: creating apps, chat rooms, users and AI agents, posting messages, indexing RAG sources and producing chat-widget embeds.
Do I need an Ethora account to use it?
No. Connect to https://mcp.chat.ethora.com/mcp with no credentials and call ethora-user-register with an email, first and last name — the account is created and a password, API key and connectorUrl come back once.