All clients

Connect Windsurf to Alphaday

also known as Devin Desktop

Windsurf's own examples use serverUrl where every other client uses url. Both are accepted, but a config copied from Cursor is reported to fail silently.

No API key No signup Remote HTTP, no local process

What you're connecting to

One endpoint exposing 22 data capabilities across 57 pre-described tools — news, governance, DeFi, security and market data. It is a remote server, so there is no package to install, no process to keep alive and no key to obtain. That matters for Windsurf setup specifically: almost every MCP example online is command + args spawning a local binary, and none of it applies here.

https://api.alphaday.com/mcp

Before you start

The config below assumes all of this is already true. Most failed setups are one of these rather than a wrong field.

  • Windsurf — now shipping as Devin Desktop. Cognition renamed it in June 2026 and the docs moved to docs.devin.ai, but the config directory did not move.
  • Cascade, Windsurf's agent panel. MCP tools belong to Cascade, not to the inline editor.

Set it up

Config

mcp_config.json
{ "mcpServers": { "alphaday": { "serverUrl": "https://api.alphaday.com/mcp" } } }

Where it goes

  • ~/.codeium/windsurf/mcp_config.json

Check it worked

Confirm the connection before you go looking for a bug in your prompt. A server that is listed but not connected looks identical to a model that chose not to call it.

In Windsurf

Cascade panel
  1. 1Open Cascade and click the plugins / MCP icon in the panel header
  2. 2Press Refresh after editing the config — Windsurf does not always reload it on save
  3. 3alphaday should appear with its tools listed

The server listed with its tools. If the panel is empty straight after a save, press Refresh before assuming the config is wrong — a stale read is the more common cause.

Or test the endpoint directly

This is the first message of the MCP protocol, sent by hand. If it answers, the server is reachable from your machine and every remaining problem is on the Windsurf side.

curl -s -X POST https://api.alphaday.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{
"protocolVersion":"2025-06-18","capabilities":{},
"clientInfo":{"name":"curl","version":"1"}}}'

Expected response

{"jsonrpc":"2.0","id":1,"result":{ "protocolVersion":"2025-06-18", "capabilities":{"tools":{"listChanged":false}, ...}, "serverInfo":{"name":"alphaday","version":"1.30.0"} }}

The version number moves; "name":"alphaday" is the part to look for. The response also carries an mcp-session-id header, which is what a client reuses for every later call.

Try it

Ask these in the Cascade panel. Each one needs data the model cannot have — a live feed, an incident record, a yield table — so a good answer is proof the tools fired, not just that the server is listed.

  • What's trending in crypto news right now, and what changed in the last 24 hours?
  • Which DeFi pools are paying over 20% APY, and which of them carry real impermanent-loss risk?
  • Summarise the three most recent on-chain exploits and what was taken.
  • Compare GitHub developer activity for Solana and Sui over the last month.

Things that catch people out

  • Use serverUrl. The docs say serverUrl or url both work, but every official example uses the former.
  • There is no type or transport field. Guides telling you to add type: "streamable-http" are wrong — it is not in the schema.
  • The product is Devin Desktop now, but the config path still uses the legacy ~/.codeium/windsurf/ directory.
  • That directory may not exist on a fresh install. Create it rather than hunting for where the file already is.

When it doesn't connect

Symptom first, because that is what you have. The status codes below were produced against the live server rather than copied from elsewhere — if yours does not appear here, it is worth trusting that difference.

Config saved, but Cascade shows no server.

Windsurf read the file before you saved it, or the path is wrong.

Press Refresh in the MCP panel first. Then confirm the file is at ~/.codeium/windsurf/mcp_config.json — .codeium persists under the old name despite the Devin rename.

You copied a working Cursor config and it does not connect.

Cursor's config uses url. Windsurf accepts it per the docs, but every vendor example uses serverUrl, and failures with url are widely reported.

Rename the field to serverUrl.

A guide told you to add type: "streamable-http" and it broke.

That field does not exist in Windsurf's schema. It is a third-party invention.

Remove it. A remote server here is a name and a serverUrl, nothing more.

Opening the endpoint in a browser returns {"detail": "Bad Request"}.

A browser sends a GET. MCP is JSON-RPC over POST, so a 400 here is the server working correctly — there is no page to serve at an MCP endpoint.

Nothing. A 400 on a plain GET is the expected response, and it confirms the server is reachable.

404 {"detail": "Not Found"}.

The URL has a trailing slash, or a path appended. /mcp/ and /mcp/sse are both distinct routes from /mcp, and neither exists.

Use the endpoint exactly as written, with no trailing slash and nothing after it.

The server shows as connected, but the model never calls it.

Not a connection problem. Most clients only call tools in an agent mode, and several ship new tools unticked or capped.

Switch to the client's agent mode, confirm the Alphaday tools are enabled in its tool picker, and ask something that cannot be answered without live data.

The server does not appear anywhere, with no error at all.

An unparseable config. Most clients skip a file they cannot read rather than surfacing a parse error, and a trailing comma after the last field is the usual culprit.

Validate the file, then reload the window. Every block on this page is valid JSON as written; retyping it by hand is where commas get added.

What you get once it's connected

22 datasets, reached by 57 tools — most datasets have a list form, a detail form and a trending form, which is why the two numbers differ. These four are the ones a general crypto API does not have:

Security exploits

180+ on-chain exploits and hacks, each with a written incident record.

Developer activity

3,000+ GitHub activity snapshots — commits and contributors per coin.

Kasandra

AI-detected chart patterns with a bullish/bearish signal and confidence score.

TVL yields

32,000+ DeFi yield pools with base and reward APY, TVL and IL risk.

News

Real-time news from 49 crypto outlets — 440,000+ articles, tagged and deduped.

Forum

59 governance forums — 60,000+ posts — behind one endpoint.

Blogs

133 project blogs — 19,000+ posts — in one feed.

Podcasts

118 crypto podcast feeds — 22,000+ episodes, each with its audio URL and duration.

Videos

121 YouTube channels — 34,000+ videos — timestamped.

Market coins

Prices, metadata, history and trending movers for the top coins.

Coin categories

700+ token categories; about half carry a market-cap aggregate.

Exchanges

140+ centralized exchanges with trust scores and volume.

On-chain DEXes

700+ DEXes with the chains and protocols behind them.

TVL fees

2,000+ protocol fee and revenue records across DeFi.

TVL stablecoins

400+ stablecoins — peg type, mechanism and circulating supply.

DAO

Live Snapshot proposals across 51 DAOs.

Events

6,000+ conferences, meetups, hackathons and side events.

Tags

A 17,000+ tag taxonomy — projects, chains and categories, with parents and children.

News summary

An AI briefing over the whole news corpus, focusable by project.

Keywords

What crypto is talking about, ranked, right now.

Projects

Search project-tagged content across the whole superfeed.

Fear & greed

The fear & greed index, per asset.

All 22 capabilities are listed on the MCP overview, with the tool count behind each.

Verified 2026-09-14 against the vendor's docs: