Pincushion for Cursor.
Visual feedback that lands in your IDE. Stakeholders drop pins on your live app; your Cursor agent reads them via MCP — selector, DOM snippet, screenshot, viewport, thread, project context, and acceptance criteria — and ships the change from inside your editor.
The flow
- Stakeholder drops a pin on any element of your live app via the Chrome extension
- You open Cursor, run
/pinsor/implement - Cursor agent receives the pin's full work packet via MCP — no copy-pasting screenshots, no translating feedback into prompts
- Agent finds the source code, makes the change, calls
fix_and_resolvewith branch + PR URL - Deploy hook auto-resolves the pin on production. Stakeholder sees "Resolved in PR #142, deployed at 3:24pm"
Connect Cursor
Start with npx pincushion-mcp setup and choose Cursor explicitly. It writes only the project-local .cursor/mcp.json. You can also use the Cursor deeplink or add this config manually:
{
"mcpServers": {
"pincushion": {
"command": "npx",
"args": ["pincushion-mcp", "--project-dir", "."]
}
}
}
Restart Cursor, then ask the agent to call get_actionable_pins. Config written is not proof of an agent connection; review an existing AI or human finding, approve that exact pin, and then implement it. The Chrome extension is optional for adding new browser pins.
For a Crit report, use npx pincushion-mcp claim <report-token> to resume after authenticated project access is confirmed.
Slash commands available after install
/pins— show all open pins on this project/implement— run the full approved-pin loop (claim → fix → resolve)/resolve <id>— claim and close one pin/critique <url>— Pincushion AI drops ≤3 UI/copy/a11y pins on the page/feedback-summary— project overview
Existing feedback becomes an agent-ready task with its selector, DOM, screenshot, viewport, and thread in one MCP call.