# ethora-mcp-server

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.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 6
- Author: dappros
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/dappros/ethora-mcp-server
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/mcp/ethora-mcp-server

## What it 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.

## Requirements
- Needs: Node.js (commands run via npx)
- Remote server: `https://mcp.chat.ethora.com/mcp/oauth`
- Environment variables: `ETHORA_API_URL`, `ETHORA_BASE_URL`, `ETHORA_APP_JWT`, `ETHORA_B2B_TOKEN`, `ETHORA_MCP_ENABLE_DANGEROUS_TOOLS` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

1. **Platform CLI: remote server**
```bash
claude mcp add --transport http ethora-mcp-server https://mcp.chat.ethora.com/mcp/oauth
```

2. **Platform CLI**
```bash
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
```
Replace <…> with your own values

### Codex

1. **Platform CLI: remote server**
```bash
codex mcp add ethora-mcp-server --url https://mcp.chat.ethora.com/mcp/oauth
```

2. **Platform CLI**
```bash
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-server
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "ethora-mcp-server": {
            "url": "https://mcp.chat.ethora.com/mcp/oauth"
        }
    }
}
```
File `.cursor/mcp.json`:
```json
{
    "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

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "ethora-mcp-server": {
            "type": "http",
            "url": "https://mcp.chat.ethora.com/mcp/oauth"
        }
    }
}
```
File `.vscode/mcp.json`:
```json
{
    "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

### Gemini CLI

1. **Platform CLI: remote server**
```bash
gemini mcp add -t http ethora-mcp-server https://mcp.chat.ethora.com/mcp/oauth
```

2. **Platform CLI**
```bash
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-server
```
Replace <…> with your own values

## When to use it
- 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
- Call `ethora-status`, then `ethora-user-login` and `ethora-app-list`
- Create an Ethora app and add a chat room to it
- Generate a chat widget embed for our site

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
