# Devin Desktop (formerly Windsurf)

Configure the direct Devin Desktop (formerly Windsurf) MCP client with XMEMO_KEY and stable instance attribution.

- Canonical: https://docs.xmemo.dev/docs/mcp/windsurf
- Locale: en-US
- Content-Locale: en-US
- Canonical-Content-Digest: e4bbde0891b92bfbe9483c0a0f137b95cebc86e2392ac27a20e3b9e570e0fd09
- Edition-Digest: 24276aeb0b3f31247d1f0483a3012b8d9bd1ef6523ca8f68d44813f595fd4e6d
- Source-Revision: sha256:f96ce714d11b45f54e6b6a08ef9c442131df1d064c0bbba2ec7e07a492730ad7

## Prerequisite

Use Devin Desktop (formerly Windsurf) with its direct MCP configuration support. Devin Desktop connects directly using an environment-backed bearer token with XMEMO_KEY.

- Endpoint: https://xmemo.dev/mcp.
- Transport: Streamable HTTP.
- Auth mode: direct bearer token from XMEMO_KEY.
- Config file: ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json on Windows; installs prior to the rename used ~/.codeium/windsurf/mcp_config.json).
- Client ID: windsurf (remains windsurf for compatibility).
- Readiness status: Evidence required (planned marketplace, not certified).

## Install / setup

Configure manually: add the XMemo server block to ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json on Windows) under mcpServers. Note: npx @xmemo/client mcp add windsurf currently writes the pre-rename location ~/.codeium/windsurf/mcp_config.json (useful only for pre-rename installs), so Devin Desktop users should configure manually or move the file. Client ID remains windsurf for compatibility.

- Direct client: configure manually in ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json on Windows) with XMEMO_KEY in the environment.
- Note: npx @xmemo/client mcp add windsurf currently writes the pre-rename location ~/.codeium/windsurf/mcp_config.json (useful only for pre-rename installs), so Devin Desktop users should configure manually or move the file.

```json
{
  "mcpServers": {
    "XMemo": {
      "serverUrl": "https://xmemo.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${env:XMEMO_KEY}",
        "X-Memory-OS-Agent-ID": "windsurf",
        "X-Memory-OS-Agent-Instance-ID": "${env:XMEMO_AGENT_INSTANCE_ID}"
      }
    }
  }
}
```

## Set the credential

Set XMEMO_KEY in the environment before launching Devin Desktop. Keep the token in the environment rather than hardcoding it into the configuration file.

```bash
export XMEMO_KEY='<your-xmemo-token>'
```

## Generate / confirm XMEMO_AGENT_INSTANCE_ID

Generate a stable non-secret instance identifier per local Devin Desktop installation so attribution remains consistent across restarts.

```bash
export XMEMO_AGENT_INSTANCE_ID='<stable-local-devin-desktop-instance-id>'
# Persist and reuse this value for the same local install
```

## Preserve the existing config block

Use the configuration block rendered on this page. Configure manually at ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json on Windows). Client ID remains windsurf for compatibility.

## Restart the client

Restart Devin Desktop after updating ~/.config/devin/mcp_config.json or the environment so the MCP server connection is established.

## Test with a real recall call

Make the first MCP call read-only. This is an actual recall invocation, not a health-check placeholder, and it does not write memory.

```text
recall({ query: "connection check", limit: 1 })
```

## Expected response (literal shape)

A successful call returns the public ranked text shape below; the reference and content are real values from the authorized memory space.

```text
### XMemo Memory Results:
1. Reference: <opaque-memory-id> | Location: <location>
   > <memory content>
```

## Common Errors

Devin Desktop is a direct bearer client; verify environment variables if connection issues occur.

- 401 invalid_token — XMEMO_KEY is missing, expired, revoked, or otherwise invalid: verify XMEMO_KEY in the environment and restart Devin Desktop.
- 403 insufficient_scope — the token does not grant memory:read: issue a token with the required scope.
- Invalid XMEMO_AGENT_INSTANCE_ID values are normalized to no instance attribution rather than raising an auth error.

## Certification and readiness

Certification status: Evidence required. Marketplace status: Planned. Integration evidence is required before full certification is granted.

- Certification status: Evidence required.
- Marketplace status: Planned.
- Readiness note: See /product/docs#client-capability-matrix; configure manually at ~/.config/devin/mcp_config.json.

## Devin Desktop (formerly Windsurf)

Direct client: configure manually in ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json on Windows) with XMEMO_KEY in the environment. Note: npx @xmemo/client mcp add windsurf currently writes the pre-rename location ~/.codeium/windsurf/mcp_config.json (useful only for pre-rename installs), so Devin Desktop users should configure manually or move the file.

```
{
  "mcpServers": {
    "XMemo": {
      "serverUrl": "https://xmemo.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${env:XMEMO_KEY}",
        "X-Memory-OS-Agent-ID": "windsurf",
        "X-Memory-OS-Agent-Instance-ID": "${env:XMEMO_AGENT_INSTANCE_ID}"
      }
    }
  }
}
```
