Skip to main content

agnt with Windsurf and GitHub Copilot

Windsurf and GitHub Copilot are powerful AI coding assistants, but neither can see what is happening in your browser. When a component renders incorrectly, an API call returns a 500, or a CSS layout breaks on resize, the AI is guessing. agnt gives both tools direct browser debugging access -- JavaScript errors, HTTP failures, DOM inspection, and live diagnostics -- through the Model Context Protocol (MCP).

Both Windsurf and Copilot support MCP servers. Once agnt is configured, your AI assistant can start dev servers, launch a reverse proxy that instruments every page, capture errors automatically, and inspect elements -- all without you opening DevTools.

Installation​

Install the agnt binary first. Both tools need the same binary; only the MCP configuration differs.

go install github.com/standardbeagle/agnt/cmd/agnt@latest

Verify the installation:

agnt --version

Windsurf MCP Setup​

Windsurf supports MCP servers through its settings. Open Windsurf settings and add agnt to your MCP server configuration:

{
"mcpServers": {
"agnt": {
"command": "agnt",
"args": ["mcp"]
}
}
}

In Windsurf, navigate to Settings > MCP Servers (or edit the MCP config file directly). Add the entry above and restart Windsurf. The agnt tools appear in Cascade's tool list automatically.

GitHub Copilot MCP Setup​

GitHub Copilot supports MCP servers in VS Code. Add agnt to your VS Code settings.json:

{
"github.copilot.chat.mcp.servers": {
"agnt": {
"command": "agnt",
"args": ["mcp"]
}
}
}

Alternatively, create a .vscode/mcp.json file in your project root to share the configuration with your team:

{
"servers": {
"agnt": {
"command": "agnt",
"args": ["mcp"]
}
}
}

Restart VS Code after adding the configuration. Copilot Chat will discover the agnt tools on the next session.

Project Configuration​

Create an .agnt.kdl file in your project root to automate dev server and proxy startup:

scripts {
dev {
run "npm run dev"
autostart true
}
}

proxies {
app {
target "http://localhost:3000"
autostart true
}
}

With this config in place, your AI assistant can call detect to discover the project and auto-start everything in one step. No repeated manual setup between sessions.

Your First Debugging Session​

Here is a realistic session showing what the AI does when you report a problem. The tool calls are the same regardless of whether you are using Windsurf or Copilot.

You: "The user profile page is broken -- the avatar does not load
and the stats section is blank."

AI: Let me investigate.

[detect {path: "."}]
--> Node.js project, package manager: npm, scripts: dev, build, test

[run {script_name: "dev"}]
--> Dev server started, process ID: dev

[proxy {action: "start", id: "app", target_url: "http://localhost:3000"}]
--> Proxy running on http://localhost:38742

AI: Open http://localhost:38742/profile in your browser.
The proxy instruments the page so I can see errors and DOM state.

[get_incidents {}]
--> 3 errors found:
[error:browser_js] TypeError (5x) -- Cannot read property 'avatar' of null
--> src/components/UserProfile.tsx:18:22
[warning:http_4xx] 401 Unauthorized (1x)
--> GET /api/user/me
[error:browser_js] ReferenceError (1x) -- statsData is not defined
--> src/components/UserStats.tsx:31:5

[proxy {action: "exec", id: "app",
code: "window.__devtool.inspect('.profile-avatar')"}]
--> { tagName: "img", src: "", naturalWidth: 0, naturalHeight: 0,
display: "block", visibility: { visible: true } }

AI: Found the root cause. The /api/user/me endpoint returns 401,
which means the auth token is missing or expired. The UserProfile
component receives null instead of a user object and crashes
when accessing .avatar. The blank stats section is a separate
ReferenceError -- statsData is referenced before it is assigned
on line 31.

Let me fix the auth header first, then the variable scoping issue.

The AI identified three errors, traced them to a single root cause (the 401), and found the unrelated scoping bug -- all without you touching the browser console.

Windsurf vs Copilot: Workflow Differences​

Both tools use the same agnt MCP tools, but the workflows differ in practice.

AspectWindsurf (Cascade)GitHub Copilot Chat
Tool invocationCascade calls MCP tools autonomously during multi-step plansCopilot calls tools when prompted in chat or agent mode
MCP config locationWindsurf settings or MCP config fileVS Code settings.json or .vscode/mcp.json
Multi-step debuggingCascade chains tool calls naturally in its planning flowBest results when you ask Copilot to investigate step by step
System promptNo agnt run integration -- use direct MCP configNo agnt run integration -- use direct MCP config
Inline contextCascade can reference open editor files alongside agnt outputCopilot Chat can reference #file and #selection alongside agnt output

Neither tool uses agnt run -- that wrapper is specific to terminal-based agents like Claude Code. Both Windsurf and Copilot connect to agnt purely through their native MCP server support.

Tips for Best Results​

  • Start every debugging session with get_incidents {} to give the AI the full error landscape. This surfaces root causes that would otherwise be hidden behind cascading failures.
  • Use .agnt.kdl for auto-start so the proxy and dev server launch automatically. This eliminates setup friction and ensures errors are captured from the first page load.
  • Ask the AI to use proxy exec for targeted inspection. The window.__devtool API has 50+ diagnostic primitives -- layout analysis, accessibility auditing, computed styles, DOM traversal -- that give the AI precise information about what is happening on screen.
  • Filter errors by time with get_incidents {since: "2m"} when actively debugging. This narrows the view to errors that occurred since your last change.
  • Use the floating indicator in the proxy page to send messages directly to your AI session. Click it, type what is wrong, and the context flows through to your assistant.
  • Combine with editor context -- reference specific files in Copilot (#file:UserProfile.tsx) or let Cascade read open tabs alongside agnt error output for maximum context.

See Also​