Repository navigation
Installation and Quickstart
Chat Export runs standalone: extension-only export needs no server. For MCP automation, add chat-export-server on 127.0.0.1 and optionally the dashboard. No Chrome DevTools MCP or bundled agent runtime is required.
- Clone chat-export-extension and run
npm run build. - Chrome →
chrome://extensions→ Developer mode → Load unpacked → select the repo folder. - Open a supported site and reload the tab after each extension update.
git clone https://github.com/svergio/chat-export-server.git
cd chat-export-server
npm install && npm run build
chat-export-server key new # print once; hash stored in ~/.chat-export
chat-export-server start # http://127.0.0.1:8765Data directory: ~/.chat-export (override with CHAT_EXPORT_HOME).
- Extension popup → Advanced: host
127.0.0.1, port8765. - Enroll with a browser gateway token (
ceb_…) from the server or dashboard. - Enable platforms you use; turn on automation gates (
allowCreate, etc.) only if you need MCP create/delete.
{
"mcpServers": {
"chat-export": {
"url": "http://127.0.0.1:8765/mcp",
"headers": { "Authorization": "Bearer cem_YOUR_KEY" }
}
}
}Create cem_ keys with chat-export-server key new. Never commit real tokens.
Build chat-export-dashboard (npm run build) and copy public/ into chat-export-server/dashboard/public/, or use the server submodule. Open http://127.0.0.1:8765/dashboard/ and sign in with the admin session configured on the server.
| Field | Default | Notes |
|---|---|---|
serverOn |
false |
WebSocket bridge |
host / port
|
127.0.0.1 / 8765
|
Must match server |
apiKey |
empty | Paste ceb_… from server or dashboard Browsers
|
allowDestructive |
false |
MCP delete gate |
rpcTimeoutS |
60 |
Extension RPC timeout |
See extension README Configuration.
~/.chat-export/
config.json # port, dashboard login, platform matrix
keys.json # MCP key hashes only
audit.log
exports/
server.log
Set dashboard.password in config.json before sharing the machine. Prefer .env (copy server .env.example): CHAT_EXPORT_ADMIN_PASS, CHAT_EXPORT_MCP_TOKEN, CHAT_EXPORT_BROWSER_TOKENS, CHAT_EXPORT_HOME, CHAT_EXPORT_PORT, and related keys override config.json at start.
Any Docker engine (Docker Desktop, Colima, …):
cp .env.example .env # set CHAT_EXPORT_ADMIN_PASS at minimum
docker compose build
docker compose up -d
curl -sS http://127.0.0.1:8765/healthData: Compose volume → /data. Split nginx front: server / dashboard README.
Project or user config (redact real keys):
{
"mcpServers": {
"chat-export": {
"url": "http://127.0.0.1:8765/mcp",
"headers": { "Authorization": "Bearer cem_YOUR_KEY_HERE" }
}
}
}Workflow: chat-export-server key new → paste into MCP config → browsers_bind → chats_list / chat_ask.
| URL | http://127.0.0.1:8765/dashboard/ |
| User / pass |
dashboard.username / dashboard.password in config.json (defaults admin / changeme) |
| Not used for | MCP Bearer (cem_) — separate secret |
Enroll browser tokens (ceb_) from Browsers; rotate MCP keys from Settings.
- Background / Docker / Kubernetes: Native, Docker, and Kubernetes Deployment
- Optional local LLM as MCP client: Local LLM guide
- Listings: mcpservers.org, Glama
Both the extension and server enforce a two-tier ToS documented in LEGAL.md:
- General Legal / Account Ban Risk ToS — covers extension installation and manual export. You acknowledge that web scraping/export may conflict with third-party Terms of Service and assume all account risk.
-
Advanced MCP Mode ToS — required before enabling the
ws://127.0.0.1:8765/wsbridge or MCP write/automation gates (allowCreate,allowDestructive,chat_ask). Automated browser interaction carries higher rate-limit and account suspension risk.