Skip to content
Conduit

mcp server

mcp-sakana-chat

MCP server that drives chat.sakana.ai via headless Chrome — persistent sessions for AI assistant use

misternay/mcp-sakana-chatcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • Node.js 20 or newer
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "misternay-mcp-sakana-chat": {
      "command": "npx",
      "args": [
        "-y",
        "background-ai-chat"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 14, 2026

mcp-sakana-chat

MCP server that drives chat.sakana.ai via headless Chrome — persistent sessions for AI assistant use.

[!WARNING] Status: Currently Non-Functional / Waiting for Improvements chat.sakana.ai has updated its internal endpoints and introduced Cloudflare Turnstile bot protection, causing chat_send to fail with headless Chrome. This MCP is currently non-functional while awaiting updates/improvements.

Installation

Via npx (recommended — no install needed)

npx background-ai-chat

Via npm global install

npm install -g background-ai-chat
background-ai-chat

From source (for development)

git clone https://github.com/misternay/mcp-sakana-chat.git
cd mcp-sakana-chat
npm install && npm run build && npm start

Claude Desktop Config

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or equivalent:

{
  "mcpServers": {
    "sakana-chat": {
      "command": "npx",
      "args": ["-y", "background-ai-chat"]
    }
  }
}

Why -y flag: Skips npm's install confirmation prompt, required for non-interactive usage.

Alternative (if globally installed):

{
  "mcpServers": {
    "sakana-chat": {
      "command": "background-ai-chat"
    }
  }
}

Environment Variables

VariableDefaultDescription
BAC_TRANSPORTstdiostdio or http-sse
BAC_AUTH_KEY""Bearer token for HTTP/SSE
BAC_PORT3456HTTP/SSE port
BAC_BROWSER_HEADLESStrueRun Chrome headless
BAC_MAX_SESSIONS5Max concurrent sessions
BAC_DATA_DIR~/.background-ai-chatRoot data directory

MCP Tools

  • session_open — Open a persistent chat session. Input: { login?, headless?, tosAccepted? } → Output: { sessionId, conversationId, mode, rateLimit, tosSummary }
  • chat_send — Send a message with streaming token events. Input: { sessionId, message } → Output: { reply, tokens[] }
  • chat_interrupt — Abort an in-flight message. Input: { sessionId } → Output: { interrupted: true }
  • session_close — Close a session and release its browser. Input: { sessionId, keepHistory? } → Output: { closed, messagesExchanged }
  • session_list — List all known sessions. Input: {} → Output: { sessions[] }

First call requires tosAccepted: true. Subsequent calls reuse the machine-wide ack.

Guardrails

  • ToS gate — machine-wide acknowledgment of Sakana Terms 5.8/5.9
  • Cookie isolation — separate browser context per session
  • No message logging — only metadata (sessionId, event, ms) to stderr
  • Personal/internal use only — not a competing product

Development

npm run build       # compile TypeScript
npm test            # run tests
npm run test:watch  # watch mode
↑↓ navigate openesc close