Skip to content
GradWorkbench

Chapter 10 · Connecting your assistant

VS Code and Copilot

GitHub Copilot's agent mode inside VS Code. One JSON file — with a different root key from every other tool in this chapter.

The one difference that matters. VS Code uses servers, where Cursor, Claude Desktop, Windsurf and the rest use mcpServers. A config pasted from another tool's instructions silently does nothing: VS Code sees an unrecognised block and never connects. This is the single most common reason a working config appears not to work.

Before you start#

You need: VS Code with GitHub Copilot, in agent mode.

You will know it worked when: The entry in mcp.json shows a running state rather than a Start action.

Your workspace address is your app's address with /api/mcp on the end. The block on Settings → Research Access has yours already filled in, with a copy button — use that rather than typing it.

The guided way — no file editing#

1. Open the Command Palette (Cmd/Ctrl + Shift + P) and run MCP: Add Server.

2. Choose HTTP as the type.

3. Paste your workspace's MCP address:

https://gradworkbench.vercel.app/api/mcp

4. Name it gradworkbench.

5. Choose Global when it asks where to store it, so it applies to every project rather than only this one.

6. VS Code opens a browser to sign in. Approve the connection.

Edit the file instead#

1. For one project, create .vscode/mcp.json in it. For every project, run MCP: Open User Configuration from the Command Palette, which opens the file VS Code reads globally.

2. Add the entry — note the root key:

json
{
  "servers": {
    "gradworkbench": {
      "type": "http",
      "url": "https://gradworkbench.vercel.app/api/mcp"
    }
  }
}

3. To use a key instead of signing in, issue one in Settings → Research Access with Read your workspace and Submit research ticked, and add a headers line:

json
{
  "servers": {
    "gradworkbench": {
      "type": "http",
      "url": "https://gradworkbench.vercel.app/api/mcp",
      "headers": { "Authorization": "Bearer sk_your_key_here" }
    }
  }
}

A key in .vscode/mcp.json inside a repository will be committed if you are not careful. Either put it in the user configuration instead, or use VS Code's input variables so the file holds a placeholder and VS Code prompts you for the value.

4. VS Code shows a Start action above the entry. Click it.

Connect the second one, so research gets checked#

Whatever submits a finding is refused when it tries to confirm that same finding. Add a second entry, with a second key that has Read your workspace and Check research ticked — and not Submit research:

json
{
  "servers": {
    "gradworkbench": {
      "type": "http",
      "url": "https://gradworkbench.vercel.app/api/mcp",
      "headers": { "Authorization": "Bearer sk_your_first_key" }
    },
    "gradworkbench-verify": {
      "type": "http",
      "url": "https://gradworkbench.vercel.app/api/mcp",
      "headers": { "Authorization": "Bearer sk_your_second_key" }
    }
  }
}

Try it#

Open Copilot Chat, switch it to Agent mode, and say:

What's in my GradWorkbench workspace? Just summarise it — don't research anything.

If it comes back with your universities and professor counts, you are connected. Go to what to actually say.

When it doesn't work#

Absolutely nothing happens — the root key is mcpServers instead of servers. See the box at the top.

"Cannot find command" or the server tries to launch a program — VS Code defaults to a local command server when "type": "http" is missing, and then tries to run your URL as a command. Add the type line.

Tools are listed but never used — Copilot only calls MCP tools in Agent mode. Ask mode ignores them.

It works in one project only — you put it in .vscode/mcp.json. Move it to the user configuration (MCP: Open User Configuration).


← Back to Connecting your assistant