WINDSURF · MCP

Windsurf Integration

Give Windsurf's Cascade AI persistent memory across every coding session. Dakera's MCP server connects directly to Windsurf — Cascade remembers project architecture, coding decisions, debugging context, and team patterns so you never have to re-explain your codebase.

Zero code changes. Windsurf supports MCP natively via ~/.codeium/windsurf/mcp_config.json. Add one config block and Dakera's 14 core memory tools (86+ available via profiles) are immediately available to Cascade.

Quick Start

Get persistent memory working in Windsurf in under 2 minutes:

1

Start Dakera

docker run -d --name dakera \
  -p 3300:3300 \
  -e DAKERA_API_KEY=dk-your-key-here \
  -v dakera-data:/data \
  ghcr.io/dakera-ai/dakera:latest
2

Configure Windsurf MCP

Create or edit ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "dakera": {
      "command": "docker",
      "args": ["run", "--rm", "-i",
        "--network", "host",
        "ghcr.io/dakera-ai/dakera-mcp:latest"],
      "env": {
        "DAKERA_URL": "http://localhost:3300",
        "DAKERA_API_KEY": "dk-your-key-here",
        "DAKERA_AGENT_ID": "windsurf-dev",
        "DAKERA_MCP_PROFILE": "core"
      }
    }
  }
}
3

Start Coding with Memory

Restart Windsurf. Cascade now has access to persistent memory tools. Try asking:

  • "Remember that we use the repository pattern for database access in this project"
  • "What architecture decisions have we made so far?"
  • "Store this debugging approach for the payment module"

What Windsurf Cascade Gets

With Dakera connected, Cascade has access to 14 core MCP tools (86+ available via profiles) organized into categories:

CategoryToolsExample Use
Memorystore, recall, search, forgetRemember project patterns and decisions
Sessionsstart, end, list, memoriesGroup context by coding session
Knowledge Graphentities, traverse, linkMap relationships between code concepts
Namespacescreate, list, configureIsolate memory per project or team
Searchhybrid, fulltext, vectorFind relevant past context by meaning
Decayconfig, statsAuto-forget outdated information

Windsurf MCP Config File Location

Unlike Cursor (which uses a per-project .cursor/mcp.json), Windsurf uses a single global MCP config file. This means memory is available across all your Windsurf projects without per-project setup:

PlatformConfig File Path
macOS / Linux~/.codeium/windsurf/mcp_config.json
Windows%USERPROFILE%\.codeium\windsurf\mcp_config.json
Tip: Because the config is global, set DAKERA_NAMESPACE to isolate memory per project — e.g., "DAKERA_NAMESPACE": "my-project" — while still sharing a single Dakera instance.

Use Cases for Windsurf + Cascade

Project Architecture Memory

Store architectural decisions, patterns, and conventions once. When Cascade starts a new session, it recalls the project's design philosophy without you re-explaining the entire codebase. Cascade's deep code understanding combined with Dakera's persistent memory means your AI never starts fresh.

// Cascade will automatically use these tools:
// dakera_store: "This project uses hexagonal architecture with ports and adapters"
// dakera_store: "Database migrations use sqlx with versioned SQL files"
// dakera_recall: "What's our authentication approach?"

Cross-Session Debugging Context

When debugging a complex issue over multiple sessions, Dakera preserves the entire investigation trail — what you tried, what failed, what clues you found, and which hypotheses are still open. Cascade can pick up exactly where it left off, even days later.

Multi-Project Knowledge Base

Since Windsurf's MCP config is global, you can use namespaces to maintain separate memory spaces for each project while sharing a single Dakera instance. Switch projects in Windsurf and Cascade automatically draws from the correct namespace.

{
  "mcpServers": {
    "dakera-project-a": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--network", "host",
        "ghcr.io/dakera-ai/dakera-mcp:latest"],
      "env": {
        "DAKERA_URL": "http://localhost:3300",
        "DAKERA_API_KEY": "dk-your-key-here",
        "DAKERA_AGENT_ID": "windsurf-dev",
        "DAKERA_NAMESPACE": "project-a",
        "DAKERA_MCP_PROFILE": "core"
      }
    }
  }
}

Team Knowledge Sharing

Multiple developers can connect to the same Dakera instance with different agent IDs. Cross-agent recall lets Cascade access shared team knowledge — architecture decisions made by a colleague are available in your session — while maintaining individual context separation.

Code Pattern Library

Store reusable patterns with importance scoring. Frequently accessed patterns score higher and surface more readily in future recalls. Cascade can suggest your team's preferred patterns automatically rather than generating generic boilerplate.

Configuration Options

VariableDescriptionDefault
DAKERA_URLDakera server addresshttp://localhost:3300
DAKERA_API_KEYAuthentication keyRequired
DAKERA_AGENT_IDUnique identifier for this agent"windsurf-dev"
DAKERA_NAMESPACEMemory namespace isolation"default"
DAKERA_MCP_PROFILETool profile: core, power, admin, or all"core"

Profile Selection (DAKERA_MCP_PROFILE)

The DAKERA_MCP_PROFILE environment variable controls which tools Cascade sees. Profiles balance capability vs. context window cost:

ProfileToolsTokensBest For
core14~2,964Most users — store, recall, search, sessions, knowledge graphs
admin32~5,975Operators — adds namespaces, API keys, policies, decay config
power68~13,014Advanced agents — adds entity extraction, graph traversal, agent stats, feedback
all86~16,026Full API surface — vectors, bulk ops, export/import, encryption
# Set in your ~/.codeium/windsurf/mcp_config.json env block:
"DAKERA_MCP_PROFILE": "power"    # Options: core, power, admin, all
Tip: Start with core (default). Use dakera_discover_tools and dakera_load_tools to pull in additional tools on demand without switching profiles.
Works with all Windsurf plans. Any Windsurf plan that supports MCP servers works with Dakera. The memory server runs on your own infrastructure — no additional costs beyond your Windsurf subscription.

Verifying the Connection

After restarting Windsurf, open Cascade and ask it to list available memory tools. You should see the Dakera MCP tools in the response:

// Ask Cascade:
"What memory tools do you have available?"

// Cascade should list:
// - dakera_store
// - dakera_recall
// - dakera_search
// - dakera_session_start
// - ...and 10 more core tools

If Cascade doesn't show the tools, check that the Dakera server is running (docker ps) and that the config file path is correct for your platform.

Next Steps

Frequently Asked Questions

How do I add persistent memory to Windsurf?

Run the Dakera server via Docker, then add the dakera-mcp server block to ~/.codeium/windsurf/mcp_config.json with your Dakera URL and API key. Restart Windsurf and Cascade will have access to 14 core memory tools (86+ available via profiles) automatically.

Does Dakera work with Windsurf Cascade?

Yes, via the official dakera-mcp MCP server. Windsurf supports MCP natively, so no extensions or code changes are needed — just one config block in ~/.codeium/windsurf/mcp_config.json and Cascade gains full persistent memory capabilities.

What does Dakera add to Windsurf?

Dakera gives Cascade persistent memory across coding sessions, hybrid BM25 + vector semantic search over past interactions, knowledge graph construction for project architecture and decisions, session tracking, and memory decay. All data stays self-hosted on your infrastructure. Cascade's deep codebase understanding combined with Dakera's persistent memory means your AI coding assistant accumulates knowledge over time rather than starting every session from scratch.

Further reading: MCP Protocol Explained · Dakera MCP: Real-World Use Cases · Cursor Integration

Ready to ship?

Deploy Dakera in minutes — self-hosted and free. Cloud managed hosting coming soon.

Self-Host Free → Join Cloud Waitlist →

Give your AI agents persistent memory

Self-host free today — or join the Dakera Cloud waitlist for managed hosting, SLA & founder pricing.

✓ You're on the list. We'll be in touch.