Skip to content

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 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).

S claude · streaks · ~/pebble

⏺ hamloy - Claim an item (MCP)(key: "B-k3f9")

⎿ B-k3f9@4 claimed by this session

⏺ I'm on the streak counter. Counting days in a row per habit, with tests for skipped and missed days.

C codex · ~/pebble-2

• Called hamloy.tick({"key":"B-r5nd@3"})

└ [x] B-r5nd@4 Dark mode for the habit list

• Dark mode is done and ticked.

› Take the streak counter on the home screen.

Right now

1 agent at work · 3 tasks ready

Being worked on

Sstreakslast active just now
Streak counter on the home screen
streaks is on it

Ready, nobody on it most important first

Haptic tap when a habit is checked off
Settings screen: reminder time, week start, units
Widget with today's habits
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 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.