← All posts
6 min read

GitHub Copilot in VS Code: Screenshots Through MCP

VS Code's MCP support went GA in 1.102, and Copilot tool results render image thumbnails. Here is how to get an annotated Mac screenshot into Copilot — and the one MCP feature it does not support.

For a long time the answer to "can Copilot see my screen?" was no, and the workaround was describing your UI in prose. That changed, and the change is more useful than it first appears.

What changed

MCP support in VS Code moved out of preview and became generally available in VS Code 1.102. Copilot's agent mode can call MCP tools, which means it can call tools that hand it a picture of your screen.

The limitation to know before you build anything

Copilot supports MCP tools, but not MCP resources.

This trips people up because the MCP spec has both, and a server author might reasonably expose screenshots as resources. If you are choosing or building a capture server for Copilot, what you need has to be exposed as a tool. A server whose screenshots are resources will connect fine and then appear to do nothing.

Images in tool results actually render

This is the part that makes it practical. Microsoft's write-up on returning images and interactive apps from MCP servers notes that tool results include rendered thumbnails you can click to inspect directly in VS Code, much like a file in the workspace, and that the agent can review both the image binary data and its textual description.

One caveat worth carrying: that post frames binary results as working "in clients that support those features," and identifies VS Code as one that does. Do not assume it generalises. MCP is a protocol, not a guarantee of client behaviour — an image-returning server that works beautifully in VS Code may hand another client something it silently drops.

Getting a capture in

Two routes, same as any agent.

Send it directly. Screentack lists Copilot as a send target. Press the hotkey, drag boxes over what is wrong, label them, submit — Copilot gets the full screenshot, the labelled crops, and a manifest tying them together.

Or let Copilot capture. Connect a capture server over MCP and the agent calls the tool itself, which matters when it is iterating and wants to check its own work between edits rather than waiting for you.

Why labelled regions beat a screenshot

A single flat image forces the model to guess which part you meant, and guessing costs turns. Every round of "no, the other one" re-sends your whole context and gets re-billed — the arithmetic is laid out in why AI coding agents burn tokens on visual bugs.

Labelling the region up front collapses that. The label is not a caption; it is the instruction. Sending "misaligned button" attached to exact coordinates skips the entire disambiguation phase.

Give Copilot something better than a description of your UI. Download Screentack — a free 7-day trial, then $29 once.

Frequently asked questions

Does GitHub Copilot support MCP servers?

Yes. MCP support in VS Code moved out of preview and became generally available in VS Code 1.102, and Copilot's agent mode can call MCP tools. Note that Copilot supports MCP tools but not MCP resources, so a server should expose what you need as tools.

Can Copilot actually see an image an MCP tool returns?

Yes, in VS Code. Tool results include rendered thumbnails you can click to inspect, and the agent can review the image data alongside its textual description. Microsoft notes this depends on the client supporting binary results — VS Code does; not every MCP client will.

What is the fastest way to get a Mac screenshot into Copilot?

Annotate the region you care about and send it straight to Copilot as an image. Connect an MCP capture server when you want Copilot to take its own screenshots during an iteration loop rather than waiting for you to paste one.