Pincushion for GitHub Copilot.

Visual feedback that lands in VS Code. Stakeholders drop pins on your live app; Copilot agent mode reads them via MCP — selector, DOM snippet, screenshot, viewport, thread, project context, and acceptance criteria — and ships the change from inside your editor.

Get started — free See the full product →

The flow

  1. Stakeholder drops a pin on any element of your live app via the Chrome extension or the one-line script-tag widget
  2. You open Copilot Chat in agent mode and ask it to implement the open Pincushion pins (the repo's .github/prompts/ files give it the exact playbook)
  3. Copilot receives each pin's full work packet via the MCP tools — no copy-pasting screenshots, no translating feedback into prompts
  4. The agent finds the source code, makes the change, calls fix_and_resolve with branch + PR URL
  5. Deploy hook auto-resolves the pin on production. Stakeholder sees "Resolved in PR #142, deployed at 3:24pm"

Connect Copilot in VS Code

Start with npx pincushion-mcp setup and choose VS Code explicitly. It writes .vscode/mcp.json in your project; the equivalent manual configuration for Copilot agent mode is:

{
  "servers": {
    "pincushion": {
      "command": "npx",
      "args": ["pincushion-mcp", "--project-dir", "${workspaceFolder}"]
    }
  }
}

Prefer a remote server? Point at the hosted endpoint — cloud-synced pins, no local process:

{
  "servers": {
    "pincushion": {
      "type": "http",
      "url": "PASTE_SIGNED_IN_REMOTE_URL"
    }
  }
}

The local server is repo-aware (it greps your source by selector and suggests branch names); the hosted endpoint covers cloud-side tools. For a URL-only remote client, run npx pincushion-mcp remote-url after the wizard and paste its output instead of entering a license key manually. Restart VS Code, then ask Copilot to call get_actionable_pins. Configuration alone does not prove an agent connection: review an existing AI or human finding, approve that exact pin, and then implement it. The Chrome extension is optional for new browser pins.

For a Crit report, use npx pincushion-mcp claim <report-token> to resume after authenticated project access is confirmed.

What you can ask Copilot after install

Copilot agent mode is very good at making changes. Pincushion makes sure it knows exactly which element, which page, which viewport, and what the stakeholder actually asked for.

Why agent mode needs structured feedback

Agent mode's failure mode isn't capability — it's ambiguity. Give it "the client says the header looks cramped on mobile" and it will make a plausible change to a header, at a breakpoint, and you'll find out at review time whether it guessed right. A Pincushion pin removes the guessing: the selector says exactly which element, the DOM snippet says which state the page was in, the viewport says 390×844, and the thread says what the stakeholder actually wants. The agent's first action becomes a targeted grep instead of a codebase-wide search, which also means fewer tool calls and less context burned per fix.

The write-back half matters just as much. When Copilot finishes, fix_and_resolve records the commit SHA, branch, and PR URL on the pin itself — so the person who left the feedback sees "Resolved in PR #142" without anyone updating a spreadsheet. On the next deploy, the pin links the production URL too.

What's in the work packet

Pricing

Reviewers and stakeholders are always free — unlimited, no accounts to buy. The developer free tier includes one project, unlimited manual pins, and 25 AI actions a month, and every signup starts a 14-day Pro trial. Pro is $19/mo: unlimited automation, realtime push to your editor, unlimited projects, and access controls.

Also using other editors? Pincushion works the same way in plain VS Code, Cursor, Claude Code, and Windsurf. New to the idea? Read what a visual feedback MCP server actually does.

Get started — free Back to home