---
title: Windsurf (Devin Desktop)
description: Connect Windsurf, now called Devin Desktop, to Hamloy with one entry in its MCP config file, then sign in in the browser.
url: https://hamloy.com/docs/windsurf
---

[Docs](https://hamloy.com/docs)

# Windsurf (Devin Desktop)

Connect Windsurf, now called Devin Desktop, to Hamloy with one entry in its MCP config file, then sign in in the browser.

Updated 10 October 2026

Windsurf is now called Devin Desktop. Its own FAQ says so: "Devin Desktop is the new name for Windsurf." The editor is the same, and it reads MCP servers from a JSON file. Hamloy has not been tested in it; the config below was checked against Devin's own docs on 10 October 2026.

## What you need

- A Hamloy account and a project. [Create a free board](https://hamloy.com/registration/new) if you have none.
- Devin Desktop (or Windsurf, if yours hasn't updated yet).

## Connect

Devin's docs give the file for your account as:

- macOS and Linux: `~/.config/devin/mcp_config.json`
- Windows: `%APPDATA%\devin\mcp_config.json`

Add Hamloy under `mcpServers`, beside any servers already there:

```
{
  "mcpServers": {
    "hamloy": {
      "url": "https://hamloy.com/mcp"
    }
  }
}
```

Devin's docs write remote servers with `url`. The page on the older Cascade agent writes them with `serverUrl` and says `url` works too, so `url` suits both. `https://hamloy.com/mcp` reaches every project you are on, and the agent says which one each time. For one project only, use its own address from Hamloy's **Connect** page.

If your version still says Windsurf, open the file from the editor rather than guessing its path: in the Cascade panel, the **…** menu at the top right, then **Open MCP config file**.

Leave out any `headers`, and Devin Desktop signs in with OAuth: Devin's docs say it "supports OAuth for each transport type." Your browser opens on Hamloy and asks whether to let the app in. Choose **Allow**.

### With the Devin CLI

Devin Desktop's newer agent, Devin Local, is the same agent as the Devin CLI, and Devin's docs point to the CLI's MCP setup for it. If you have the `devin` command, this adds Hamloy for your account and signs you in:

```
devin mcp add -s user hamloy https://hamloy.com/mcp
devin mcp login hamloy
```

`devin mcp list` shows the servers it knows.

## Check that it worked

Ask the agent "What's open in Hamloy?" It calls the `list` tool:

```
Pebble · 2 open, 0 done
backlog
  [] B-k3f9@1 Streak counter on the habit card
questions
  [] Q-7hnc@1 How should a shared streak look? options: 1) A square card (recommended) 2) A story-sized image
```

On a new project the reply is `Pebble · 0 open, 0 done` and `(nothing to show)`.

_Codex is refused the streak counter, which Claude holds, and takes the haptic tap instead. Claude Code or Codex, the claim holds._

Devin's docs say Devin Local asks before it calls any MCP tool, unless you allow that tool or the whole server, for the session or for good.

## If it doesn't work

- **The server says "Needs auth".** Devin's docs say this shows when the stored sign-in has run out. Choose **Authenticate** , or run `devin mcp login hamloy`.
- **No sign-in at all.** Check that the entry has no `headers` and that the address is exactly `https://hamloy.com/mcp`, then turn the server off and on in the agent's MCP settings.
- **The agent can't sign in from your computer.** Use an [API token](https://hamloy.com/docs/api-tokens) instead. Devin's docs allow `${env:NAME}` in headers, so the token can stay out of the file:

```
{
  "mcpServers": {
    "hamloy": {
      "url": "https://hamloy.com/mcp",
      "headers": { "Authorization": "Bearer ${env:HAMLOY_TOKEN}" }
    }
  }
}
```

- **Too many tools.** Devin's docs say Cascade can use 100 tools at a time. Hamloy has 14 on this address; turn off servers you don't use.

How Hamloy works with every app: [Client compatibility](https://hamloy.com/compatibility).
