Pincushion Feedback — VS Code Extension
View, claim, and resolve stakeholder feedback pins from Copilot Chat.
Setup
- Install the extension from the VS Code Marketplace
- The Pincushion MCP server is auto-configured in your VS Code settings
- Reload the window when prompted
- Open Copilot Chat and type
@pincushion
You can also run Pincushion: Configure MCP Server from the Command Palette at any time.
Commands
| Command |
What it does |
@pincushion /pins |
Show all open feedback pins grouped by page |
@pincushion /my-pins @username |
Show pins where you've been @mentioned |
@pincushion /resolve <pin-id> |
Claim and resolve a pin (omit ID to pick from a list) |
@pincushion /feedback-summary |
High-level project overview with priority order |
Requirements
- VS Code 1.99+
- GitHub Copilot (for chat)
- Node.js 22.22+ or Node.js 24 for the MCP server via
npx (Node.js 18 and Node.js 20 are unsupported)
Settings
| Setting |
Default |
Description |
pincushion.projectDir |
workspace root |
Path to your project directory for the MCP server |
pincushion.autoConfigureMcp |
true |
Auto-add the MCP server config on activation |
Manual MCP config
If you prefer to configure manually, add this to your VS Code settings.json:
{
"mcp": {
"servers": {
"pincushion": {
"command": "npx",
"args": ["pincushion-mcp", "--project-dir", "/path/to/your/project"]
}
}
}
}
Links
Extension-host regression
npm run test:host compiles and runs the extension in official VS Code 1.105.1
using pinned @vscode/test-electron. The first run downloads that runtime.
A separate temporary profile, extensions directory, and two-folder workspace
keep the installed IDE and its settings untouched. No Copilot subscription,
cloud model, Pincushion account, or live MCP server is used. Linux CI needs a
GUI display (for example xvfb-run -a npm run test:host).
The declared minimum host can be tested with
PINCUSHION_VSCODE_VERSION=1.99.0 npm run test:host. The harness accepts only
the default and declared-minimum versions so an accidental runtime substitution
cannot be reported as compatibility evidence.
On managed Macs, run with scoped process cleanup:
python3 /Users/josh/.codex/skills/mac-maintenance/scripts/run_scoped_test.py -- npm run test:host
PINCUSHION_VSCODE_CACHE selects the download cache. For offline runs,
PINCUSHION_VSCODE_EXECUTABLE may point to an already downloaded executable
matching the selected version. Missing runtimes, download failures, host failures,
and version mismatches fail the command; they are never counted as skipped passing
tests.
The real host checks workspace-scoped configuration without overwriting global
servers (including canonical JSONC configuration), refuses invalid unsaved
configuration, routes the chat request to the second root, invokes a registered
synthetic language-model tool through vscode.lm.invokeTool, feeds its result
back to the model, and rejects unoffered calls and cancelled requests. The
model response is synthetic; this is host/API evidence, not a Copilot or cloud
MCP end-to-end test.
Chat tool execution uses the request's explicitly selected tool references.
Automatic discovery of the correct MCP server's tools is not implemented:
the stable tool API does not provide server ownership metadata. Select tools
from the intended project server. Project selection controls prompt context;
it cannot establish ownership of an explicitly selected tool. Calls are bounded
to eight model rounds and 32 unique tool calls per request.