The two things to know first

These are the two details that set VS Code apart from the other tools.

  • Only in Agent mode. Copilot has several modes; the MCP tools respond only when the chat is in Agent mode. In normal chat you won't see them, even if you've configured them correctly.
  • The entry is called servers. While in Claude Desktop and Cursor the container is mcpServers, in VS Code it's servers. Copying a configuration from another guide without changing this name is the most common mistake.

How to do it

  1. Open the MCP configuration. In VS Code's settings search for "copilot mcp", or open the Copilot chat and use the tools icon ("Configure your MCP server"): it leads to the right mcp.json file.
  2. Add the server with the correct entry. The working syntax:
{
  "servers": {
    "documents": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/projects"]
    }
  }
}

Note servers as the first word: it's the right key for VS Code. documents is the name you choose, the last value is the accessible folder.

  1. Switch to Agent mode. Open the Copilot chat and select Agent among the modes. Without this step the tools stay invisible.
  2. Enable and verify. From the tools icon in the chat check that your server is listed and active. Then ask Copilot to use it ("read the files in the folder and...").

A concrete example

Sofia programs in VS Code and wants Copilot to read her project's documentation files. She searches "copilot mcp" in the settings, opens the file and pastes the filesystem server block. The first time she uses mcpServers out of habit and nothing works: she rechecks the guide, changes the entry to servers, and on saving the server appears.

Then she notices she doesn't see the tools in the chat: she was in normal mode. She switches to Agent and the tools icon shows the filesystem. She asks "summarize the project's README file" and Copilot really reads it. The two snags — the wrong entry and the mode — are exactly the ones the guide flags, and once fixed it works.

When it does NOT work (and how to fix it)

If the tools don't appear in the chat

Check the mode: MCP tools exist only in Agent mode. If you're in normal chat or another mode, you won't see them. Switch to Agent and recheck the tools icon.

If the server doesn't load

Verify the main entry: in VS Code it must be servers, not mcpServers. It's the most frequent mistake when copying a configuration meant for another tool. Then check that the JSON (the format with brackets and commas) is valid: have Copilot itself verify it.

If Copilot reads the files but doesn't modify them

It depends on the server's permissions and on the confirmations VS Code asks for before writing. For actions that change files, the editor usually asks for your go-ahead: look for the confirmation request in the chat instead of thinking it's blocked.

A tip from someone who really uses it

Keep handy a note with the three differences of VS Code compared to the other tools: servers entry, Agent mode only, configuration via "copilot mcp". They're the three things that will make you waste time every time you configure a new server, and having them written down saves you from restarting the hunt for the error from scratch.

Frequently asked questions

Why doesn't my Claude configuration work in VS Code?

Because the main entry is different: Claude uses mcpServers, VS Code uses servers. The rest of the structure is similar, but if you don't change that name the server doesn't get loaded. It's the difference to remember when you move from one tool to another.

Do I need a Copilot subscription to use MCP?

The MCP tools in Agent mode are part of Copilot's features in VS Code. Availability depends on your Copilot plan; the MCP protocol and the servers themselves stay free.

Can I use the same servers as Cursor here too?

The same server (for example the filesystem) works in both, because MCP is a standard. Only how you declare it in the file changes: servers entry in VS Code, mcpServers in Cursor. The server is the same, the configuration wrapper isn't.