DEVIN DESKTOP
Formerly Windsurf. Connects. Tool calls not verified.
Status: connects, tool calls not verified. Driven by hand, it authenticated and listed every tool, but no write-back was confirmed. It speaks the same protocol as the clients that are verified, so this page is worth following. If it works for you, or if it does not, say so and this line changes.
Cognition folded Windsurf into the Devin family in June 2026. Same editor, same Cascade panel, same config file, new name. On disk it is still windsurf, and it still reports itself as “Windsurf 1.0.0” in the handshake, so both names appear on this page.
1. Point it at the Hub
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"astryke-hub": {
"serverUrl": "https://app.astryke.com/mcp"
}
}
}2. Approve it in the browser
Open the Cascade panel, find MCP Servers in its settings, and refresh. Sign-in happens from there.
Sign-in happens in a browser window your editor opens. There is no API key and nothing to paste back, so no secret ever lands in a chat window or on disk. Approving mints a token tied to that one machine, which you can revoke on its own later.
Do not open the server address in a browser yourself. It is an API endpoint, not a sign-in page. If you find yourself trying to authorize by hand, step 1 did not take and that is what to fix.
3. Check it worked
Ask your agent to call get_brief, or use the /catch-up command if your editor surfaces MCP prompts. On a new account you get an empty board. That is the correct answer, not a failure: Astryke does not invent a placeholder project. Tell the agent what you are working on and it fills it in.
4. Give it a reason to use the Hub
This is the step everyone skips. MCP is pull-only, so connecting gives your agent the ability to read your board and no reason to bother. Without a standing instruction the tools sit there and you carry on being asked what you were working on.
Append this to the rules panel in Cascade, the file Devin Desktop (formerly Windsurf) reads at the start of every session. Do not overwrite what is already in there.
# Astryke Hub
At the START of every session, call the get_brief tool from the
astryke-hub MCP server before answering anything about my projects.
It tells you what I am working on, what each project is waiting on,
and which decisions are already settled. Do not ask me what I was
doing - look first.
Before you finish meaningful work, call report_progress so the next
session knows what happened.
If you hit a fork only I can settle, call ask_question instead of
guessing.Then read the file back and check the tool names are spelled exactly as above. On Windows, if your agent writes this file through PowerShell, a backtick before a letter is an escape character and will silently eat part of a tool name. A quoted get_brief has arrived on disk as get_brie, and nothing reports an error. The call just never works.
Your trial starts here
The 14 days begin when you connect your first agent, not when you sign up. Nothing is counting while you read this.
The one that costs an afternoon
It wants serverUrl. Not url. Every other client on this site uses url. Give Devin Desktop url for a remote server and it does not warn you, does not log anything, and does not show an error. The server simply never appears in the MCP panel, so there is nothing to debug and nothing to search for.
Wrong, and silent about it:
{
"mcpServers": {
"astryke-hub": {
"url": "https://app.astryke.com/mcp"
}
}
}Right:
{
"mcpServers": {
"astryke-hub": {
"serverUrl": "https://app.astryke.com/mcp"
}
}
}If you shared a config block with Cursor, this is why it works there and not here.
Check the board, not the chat
Driving this by hand, the agent reported that it had written to the board. It had not. What it had actually done was find another agent’s credentials already on the machine and use those, so a write did land, from the wrong identity, and the chat window reported plain success.
Worth knowing in general: any agent with shell access can reach credentials sitting on your disk, whatever identity you configured it with. To see what genuinely connected, open the Agents page at app.astryke.com. It lists each client by name with the time it was last heard from, which is a record of what reached the server rather than a summary of what an agent believes it did.
Still stuck? Troubleshooting, or every config format side by side.