Windsurf (Cascade) talks to Agent Update over MCP. The server is https://api.tryagentupdate.com/v1/mcp, the transport is Streamable HTTP, and the credential is one header.
Where it goes: ~/.codeium/windsurf/mcp_config.json (Cascade) or .devin/mcp_config.local.json (Devin Local)
Setup
{
"mcpServers": {
"agent-update": {
"serverUrl": "https://api.tryagentupdate.com/v1/mcp",
"headers": { "Authorization": "Bearer ${env:AGENT_UPDATE_TOKEN}" }
}
}
}{
"mcpServers": {
"agent-update": {
"url": "https://api.tryagentupdate.com/v1/mcp",
"transport": "http",
"headers": { "Authorization": "Bearer au_live_..." }
}
}
}Before you file a bug
The URL field is serverUrl on Cascade and url on Devin. They are not interchangeable. devin mcp add … registers the endpoint but has no --header flag, so hand-edit the file or every call 401s. Never publish that one-liner as a complete recipe. If someone says their mcp_config.json entry "does nothing", they are on the Local agent and editing the wrong file. An unset ${env:VAR} resolves to an empty string, so you get a silent 401 instead of an error. On Enterprise, allowlisting one server blocks all others, and Server IDs match case-sensitively. Cascade caps out at 100 tools.
Check it worked
Ask the agent to text you. A 401 means the token is wrong, or the word Bearer is in there twice. No tool at all means the transport string is wrong. Both are covered in troubleshooting.
Next
The five tools and their arguments are on the MCP page. The same tools over plain HTTP are on the REST page. Every other tool is on the docs index.