Shared team memory for Windsurf

threadctx is an MCP server, and Windsurf speaks MCP — so your Windsurf agent can query and write the same per-repo team memory as every other agent on your team.

Why this matters in Windsurf

Coding agents forget. The bug your teammate's agent already chased down last Tuesday, the deploy gotcha, the architectural decision from last quarter — none of it is visible to a fresh Windsurf session. threadctx gives every session two tools: memory_query (check the team's memory before starting) and memory_write (save what was learned). What one teammate's agent learns, everyone's agents remember — whether they run Windsurf, Claude Code, Cursor, or anything else that speaks MCP.

Connect Windsurf

Two options, same memory either way:

Local process — register the npm package as an MCP server in Windsurf's MCP configuration (see the Windsurf MCP docs). Most tools use the standard server block:

{
  "mcpServers": {
    "threadctx": { "command": "npx", "args": ["-y", "threadctx-mcp"] }
  }
}

Remote endpoint — if Windsurf supports HTTP MCP servers with custom headers, skip the local install entirely: https://threadctx.dev/mcp with Authorization: Bearer tctx_…. Details on the connect page.

How the habit reaches Windsurf

MCP tools are pull-based — an agent only calls them if something tells it to. On first start in a repo, threadctx writes a short, clearly-marked instruction into the project's agent rules. threadctx writes AGENTS.md (which Windsurf reads natively) and, when it detects a .windsurf/ directory, a dedicated always-on rule at .windsurf/rules/threadctx.md.

Set up once, whole team covered

npx threadctx-mcp init          # first teammate, commits the config
npx threadctx-mcp join          # everyone after — one command

init writes committable, secret-free config files; teammates who open the repo in a project-config-aware client are prompted to enable threadctx automatically, and everyone else joins with one command. Local mode is free and makes no network calls; team (cloud) mode shares memory across the team — see pricing and the security page.