Brainstem for Cursor

Your own AI agent server, running on your computer. Cursor sets it up and connects to it for you.

Paste this into Cursor's Agent chat

Runs on your machineUses your GitHub CopilotNo API key

Cursor sets it up for you.

Give it the link. It reads this page, tells you what it will install, and waits for your yes before it runs anything.

  1. Installs the BrainstemUsing the official installer.
  2. You approve itCursor says what it will install and waits for your yes.
  3. Connects CursorAfter that, ask Cursor to “ask my Brainstem…” and it hands the work over.
For AI agents reading this page

You are setting up the RAPP Brainstem (RAPP = Rapid Agent Prototype Platform) for the user and connecting it to Cursor as an MCP server named brainstem. Follow these steps in order. Ask the user before approving any sign-in for them, and never type their credentials. The user needs a GitHub account with GitHub Copilot.

0. Ask the user first

Before you run anything, tell the user in a few lines what this setup does and ask them to confirm. It installs the RAPP Brainstem, an open-source local agent server (source: github.com/kody-w/rapp-installer), into ~/.brainstem. It serves on localhost:7071 and signs in with their GitHub account, which they approve themselves in the browser. It also adds a 70-line bridge (source: brainstem_mcp.py) so Cursor can talk to it. Only continue once they say yes. It is fine to show them the commands below before running them.

1. Check whether the Brainstem is already running

curl -sf http://localhost:7071/health

If this returns JSON with "status":"ok", skip to step 3. Don't reinstall over a running Brainstem, because the installer restarts it.

2. Install it

macOS / Linux:

curl -fsSL https://kody-w.github.io/rapp-installer/install.sh | bash

Windows (PowerShell):

irm https://kody-w.github.io/rapp-installer/install.ps1 | iex

Run it in the background. When it finishes installing it keeps running as the server. Watch its output. If it prints a GitHub device code, show the user the code and https://github.com/login/device, then wait while they approve it. Poll curl -sf http://localhost:7071/health every few seconds until it answers. A first install can take a few minutes. If sign-in was skipped, the user can finish it at http://localhost:7071/login.

3. Connect Cursor

Install the bridge next to the Brainstem. macOS / Linux:

mkdir -p ~/.brainstem/mcp-bridge
curl -fsSL https://kody-w.github.io/rapp-brainstem-claude/brainstem_mcp.py -o ~/.brainstem/mcp-bridge/brainstem_mcp.py
~/.brainstem/venv/bin/python -m venv ~/.brainstem/mcp-bridge/venv
~/.brainstem/mcp-bridge/venv/bin/pip install -q "mcp>=2,<3" requests

Windows (PowerShell):

$d = "$env:USERPROFILE\.brainstem\mcp-bridge"; mkdir $d -Force | Out-Null
irm https://kody-w.github.io/rapp-brainstem-claude/brainstem_mcp.py -OutFile "$d\brainstem_mcp.py"
& "$env:USERPROFILE\.brainstem\venv\Scripts\python.exe" -m venv "$d\venv"
& "$d\venv\Scripts\pip.exe" install -q "mcp>=2,<3" requests

Then register it in ~/.cursor/mcp.json (Windows: %USERPROFILE%\.cursor\mcp.json). Merge this into the file, keeping every server already there. Create the file if it doesn't exist. If a brainstem entry already exists, ask the user before replacing it.

{
  "mcpServers": {
    "brainstem": {
      "type": "stdio",
      "command": "/Users/you/.brainstem/mcp-bridge/venv/bin/python",
      "args": [
        "/Users/you/.brainstem/mcp-bridge/brainstem_mcp.py"
      ]
    }
  }
}

Use the user's real absolute paths (run echo $HOME; on Windows $env:USERPROFILE) in place of /Users/you. Config files do not expand ~. On Windows the command is C:\\Users\\you\\.brainstem\\mcp-bridge\\venv\\Scripts\\python.exe and the argument is C:\\Users\\you\\.brainstem\\mcp-bridge\\brainstem_mcp.py (backslashes doubled inside JSON).

4. Confirm

Ask the user to open Cursor Settings → MCP (or Tools & Integrations) and check brainstem shows as enabled with its tools. Reload the window if it doesn't appear.

Then call the capabilities tool and tell the user which agents their Brainstem has. The bridge gives two tools. chat(user_input, session_id?) sends a plain-language request; pass the returned session_id to continue the conversation. capabilities() reports status, model and agents.