Control a real Chrome browser to complete any task: fill forms, extract data, book flights.
Pincushion is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Visual feedback as agent work packets. Stakeholders drop pins on your live app; your AI coding agent reads each pin (selector, screenshot, DOM, thread, acceptance criteria) via MCP and ships the fix.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user pincushion-mcp '--' npx -y pincushion-mcp
# 2 — ask your agent for something these tools do
# get_annotations, search_annotations, get_feedback_summary and 63 more
Pincushion costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts Pincushion as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need Node.js — the current LTS (24) is the safe choice; npx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user pincushion-mcp '--' npx -y pincushion-mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
66 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Retrieve annotation pins from the .feedback/ directory. Filter by page URL, LWC component name, or status. Use this to understand what feedback exists before making changes.
No parameter schema on file.
Full-text search across all annotation comments, selectors, component names, and tags.
No parameter schema on file.
Get a high-level rollup of all open feedback: counts by status, page, and component. Use this to plan what to address first.
No parameter schema on file.
Get all feedback pins targeting a specific LWC component, with a plain-language summary ready for implementation. Returns element selectors, comments, and thread history.
No parameter schema on file.
Mark an annotation as resolved after addressing the feedback. Optionally add a resolution comment explaining what was changed.
No parameter schema on file.
Add a reply to an annotation thread (e.g. to ask a clarifying question or note a finding).
No parameter schema on file.
Used by /pincushion-replies. Returns pins where Pincushion AI should respond, with each candidate tagged by trigger reason. Two triggers: (a)
No parameter schema on file.
Post a Pincushion AI reply to a pin\
No parameter schema on file.
Lists production deployment frame-refresh work independently of the Critique queue. Use this even when autoCritique is false. The result is redacted: it contains no deployment URL/hash, browser state, storage path, or capture proof. Start a selected run before capturing.
No parameter schema on file.
Requests server-side frame-refresh completion after all exact page/device receipts have been recorded. The server rejects missing, stale, replayed, cross-deployment, or expired capture-run evidence and never treats a queue state as a current frame.
No parameter schema on file.
Mark a critique_queue request as completed after the critic subagent has run on its page URLs. Pass the request id (from get_pending_critiques) and the total pin_count produced. The server scopes the update to your license — you cannot complete another tenant\
No parameter schema on file.
Register the exact bounded URL inventory discovered in one local browser context before staging deployment captures. The backend returns accepted pending pages; upload snapshots and record terminal results only for that returned subset, never for a locally guessed URL.
No parameter schema on file.
Resolve a pin after applying a code fix. Transitions the pin directly to
No parameter schema on file.
Compute median + p25/p75 time-to-fix from resolved pins. Returns sample size + threshold flag so callers can honestly hide the metric when the dataset is too small (< 5 resolved pins). This is the marketing proof point that distinguishes Pincushion from
No parameter schema on file.
Record the outcome of Pincushion AI\
No parameter schema on file.
Link a deploy URL to a resolved pin. Typically called by the deploy-hook edge function once a deploy that includes the pin\
No parameter schema on file.
Get instructions for setting up and connecting the Pincushion browser extension to this MCP server. Includes configuration examples for Cursor, Claude Desktop, Claude Code, VS Code, Windsurf, and other agents.
No parameter schema on file.
Finish the quickstart demo loop after editing the demo copy. Confirms the change, returns the bridge to real usage, and cleans up the throwaway .feedback/.quickstart/ files. Does NOT create or resolve any real pin.
No parameter schema on file.
Read-only lookup of a project\
No parameter schema on file.
Register a Pincushion project and associate it with your app\
No parameter schema on file.
Lightweight write-only path for the layered critique-context system. Use this from /setup and /refresh-brand after the dev agent has gathered repo signals (README, theme tokens, sample copy, competitor URLs, recent resolved pins) and compiled them into a critique brief. Unlike
No parameter schema on file.
Get all pins waiting for developer attention. Returns three categories: (1)
No parameter schema on file.
Claim an actionable pin before starting work on it. Transitions the pin from
No parameter schema on file.
Mark a pin as approved for implementation. Only approved pins should be implemented by agents. This transitions the pin from
No parameter schema on file.
Assign a pin directly to your local coding agent. Promotes the pin to
No parameter schema on file.
Get a single implementation packet for one page URL. Useful when you want to batch-fix one page at a time. Returns the same shape as a single entry in implement_approved_pins.packets — pins, aggregated selectors, suggested branch, traceability config. Matches by exact URL or partial substring.
No parameter schema on file.
Get pins that the developer has selected for implementation from the dashboard or PINS.md checkboxes. Returns the selected pin IDs with full context (element, thread, deep link). Use this to know which pins the developer wants you to work on next.
No parameter schema on file.
Add a collaborator to a Pincushion project. Developers consume a paid seat and can implement pins. Commenters are free and unlimited. Returns an upgrade prompt if the seat limit is reached.
No parameter schema on file.
List all members of a Pincushion project with their roles, plus seat usage info.
No parameter schema on file.
Remove a collaborator from a Pincushion project. Frees up the seat if they were an editor.
No parameter schema on file.
Turns supplied real captures into a report receipt; it does not inspect a page or generate feedback. By default it mints a Crit and therefore requires the exact Pincushion AI pin IDs the critic just created, each positioned in a supplied capture. Set purpose:
No parameter schema on file.
Generate an Add-to-Slack OAuth URL pre-bound to a project. Most users should prefer the public storefront URL (also returned, https://pincushion.io/install/slack) — since May 2026, that auto-links to a Pincushion license when the installer\
No parameter schema on file.
List Slack and Microsoft Teams webhook subscriptions for a Pincushion project. Webhook URLs are masked.
No parameter schema on file.
LEGACY FALLBACK. Since May 2026, Slack installs auto-link to a Pincushion license when the installer\
No parameter schema on file.
Remove a Slack, Microsoft Teams, or Discord webhook subscription from a Pincushion project.
No parameter schema on file.
Preview the Slack, Teams, or Discord notification shape and recommended event routing before connecting a real webhook.
No parameter schema on file.
Read or update the caller\
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source is public; its licence metadata reads SEE LICENSE IN LICENSE.md rather than naming a licence
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Pincushion or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | high | capability blast radius (high) — client exposure if the model is manipulated | −6 |
| verification-discount | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (66 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. high is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| get_annotations | no tags | |
| search_annotations | no tags | |
| get_feedback_summary | no tags | |
| get_component_feedback | no tags | |
| resolve_annotation | no tags | |
| add_agent_reply | no tags | |
| get_reply_candidates | untrusted-input | untrusted-input: keyword "read_message" |
| add_bot_reply | untrusted-input | untrusted-input: keyword "read_message" |
| get_pending_critiques | no tags | |
| get_pending_deployment_frame_refreshes | no tags | |
| start_deployment_capture_run | no tags | |
| complete_deployment_capture_run | no tags | |
| complete_critique_request | no tags | |
| register_deployment_discovered_pages | no tags | |
| record_deployment_page_result | no tags | |
| create_critique_pin | no tags | |
| create_agent_pin | no tags | |
| import_qa_results | no tags | |
| fix_and_resolve | untrusted-input | untrusted-input: keyword "read_comment" |
| get_time_to_fix_metrics | no tags | |
| record_pin_verification | no tags | |
| submit_verification_report | no tags | |
| attach_verification_run | no tags | |
| get_pin_verification | no tags | |
| get_agency_coordination_state | no tags | |
| set_agency_coordination_pilot | no tags | |
| create_agency_label | no tags | |
| archive_agency_label | no tags | |
| set_agency_pin_labels | no tags | |
| add_agency_internal_message | no tags | |
| get_agency_internal_thread | no tags | |
| list_agency_pins | no tags | |
| get_review_activity | no tags | |
| export_agency_evidence | no tags | |
| link_pin_deploy | no tags | |
| get_setup_instructions | no tags | |
| start_quickstart_demo | no tags | |
| resolve_quickstart_demo | no tags | |
| get_project_context | no tags | |
| get_project_write_authorization | no tags | |
| get_project_identity_diagnostic | no tags | |
| configure_project | no tags | |
| get_deployment_reconciliation_status | no tags | |
| manage_deployment_automation | external-sink | external-sink: keyword "webhook" |
| update_critique_context | no tags | |
| get_actionable_pins | no tags | |
| claim_pin | no tags | |
| approve_pin | no tags | |
| assign_pin_to_agent | no tags | |
| implement_approved_pins | no tags | |
| get_implementation_packet | no tags | |
| get_selected_pins | no tags | |
| add_member | no tags | |
| list_members | no tags | |
| remove_member | no tags | |
| create_invite_link | no tags | |
| create_share_report | no tags | |
| upload_page_snapshot | no tags | |
| generate_critique_report | no tags | |
| configure_collaboration_integration | external-sink | external-sink: keyword "webhook" |
| create_slack_install_link | no tags | |
| list_collaboration_integrations | no tags | |
| claim_pending_slack_install | external-sink | external-sink: keyword "webhook" |
| remove_collaboration_integration | external-sink | external-sink: keyword "webhook" |
| preview_collaboration_notification | external-sink | external-sink: keyword "webhook" |
| set_slack_preferences | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 1.12.1. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
- The version this listing was on when mcprush began following its releases. The registry was not asked when it shipped, so this row carries no date.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Pincushion can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.