Windsurf

Connect Rekall to Windsurf (Codeium's agentic IDE) via MCP. The Cascade agent gains persistent memory across sessions — it remembers your codebase patterns, decisions, and preferences instead of starting from scratch each time.

Overview

Windsurf supports MCP servers natively through Cascade's settings. Once Rekall is registered, its 40+ memory tools become available to Cascade — creating memories, semantic search, entities, workflows, execution state, and more.

Rekall must be running locally

The MCP server connects to your running Rekall backend. Make sure the databases and API are up (docker-compose ps and curl http://localhost:9876/health returns healthy) before launching Windsurf.

Prerequisites

  • check_circleWindsurf installed (the Cascade agent supports MCP)
  • check_circleA local Rekall checkout with the start-mcp.sh launch script
  • check_circleNode.js 18+ (the script runs the MCP server with npx tsx)

Step 1: Locate the Config File

Windsurf reads MCP servers from mcp_config.json. Open it from the Cascade panel (the hammer / MCP icon → Configure → View raw config), or edit it directly:

mcp_config.json location
~/.codeium/windsurf/mcp_config.json

File may not exist yet

If you have never added an MCP server, create the file with { "mcpServers": {} } and add the Rekall entry in the next step.

Step 2: Add the Rekall Server

Add a rekall entry under mcpServers. The launch command runs Rekall's start-mcp.sh script via bash — use the absolute path to the script in your checkout:

mcp_config.json
{
"mcpServers": {
"rekall": {
"command": "/bin/bash",
"args": [
"/absolute/path/to/rekall/start-mcp.sh"
],
"env": {
"REKALL_USER_ID": "your_user_id",
"WORKSPACE": "work"
}
}
}
}

Use an absolute path

Windsurf launches the server from its own working directory, so a relative path like ~/rekall/start-mcp.sh will fail. Point args at the fully-qualified path to start-mcp.sh in your Rekall checkout. After saving, click Refresh in Cascade's MCP panel so it reloads the config.

Step 3: Verify the Connection

Open the Cascade MCP panel and confirm rekall shows a connected indicator with its tools listed. You can also ask Cascade directly:

Verification
You: "Do you have access to Rekall memory tools?"
Cascade: "Yes — the rekall MCP server is connected. I can create and search
memories, manage entities and workflows, and read agent context."

Using Memory in Windsurf

Ask Cascade to remember decisions as it works, and it will recall them on future sessions in the same workspace:

Memory in a Cascade session
You: "Remember that this repo uses pnpm, not npm, and all tests run with vitest."
Cascade: [stores a semantic memory] "Noted — I'll use pnpm and vitest going forward."
--- later, new session ---
You: "Add a test for the new parser."
Cascade: [recalls memory] "I'll add a vitest test and run it with pnpm, matching
this repo's conventions."

Troubleshooting

Server fails to start

Run /bin/bash /absolute/path/to/rekall/start-mcp.sh in a terminal. It should print "Rekall MCP server running on stdio". Fix any errors there before retrying, then click Refresh in Cascade's MCP panel.

Connection refused

Ensure the Rekall backend is running and reachable at http://localhost:9876/health. Start the databases with docker-compose up -d.

Tools not appearing

Confirm the JSON is valid and the config lives at ~/.codeium/windsurf/mcp_config.json. Click Refresh in the MCP panel; Windsurf reloads servers without a full restart.

Rekall
rekall