Cursor marketplace plugin for Pincushion — MCP server + slash commands
- ✓Open-source license (MIT)
- ✓Recently active
- ✓Clear description
claude mcp add pincushion-plugin -- npx -y pincushion-mcp{
"mcpServers": {
"pincushion-plugin": {
"command": "npx",
"args": ["-y", "pincushion-mcp"]
}
}
}MCP Servers overview
# Pincushion MCP Server
The implementation-context layer for AI-native development. Stakeholders drop visual pins on any page of your live app; your AI coding agent reads each pin through MCP and ships the fix — in Claude Code, Cursor, VS Code, Windsurf, or any MCP client.
## What makes a Pincushion pin different
A pin isn't a feedback item — it's an **agent work packet**. Each one carries everything an agent needs to implement the change without a back-and-forth:
- **URL + element selector** — exactly what, exactly where
- **Screenshot + viewport + DOM snippet** — the visual and structural context
- **Thread + project context** — the conversation and the codebase it lives in
- **Likely files + acceptance criteria** — where to look, and how to know it's done
The loop closes itself: a stakeholder pins it → your agent reads it via MCP and fixes it in your IDE → the resolve records the commit, branch, and PR → an optional post-deploy critique verifies the fix actually landed.
This server is also how Pincushion AI runs design/copy/a11y critiques on a live page and writes the pins straight back onto it.
## Installation
```bash
# npm
npm install -g pincushion-mcp
# pnpm
pnpm add -g pincushion-mcp
# yarn
yarn global add pincushion-mcp
```
Or run directly without installing:
```bash
# npm
npx pincushion-mcp --project-dir .
# pnpm
pnpm dlx pincushion-mcp --project-dir .
# yarn
yarn dlx pincushion-mcp --project-dir .
```
## Quick Start
### 1. Install the Browser Extension
Download the Pincushion Chrome extension from [pincushion.io/install/chrome](https://pincushion.io/install/chrome).
### 2. Configure Your Agent
Pick your AI agent below and follow the configuration for your setup.
### 3. Start Using
Once configured, your agent can:
- See all feedback: `get_feedback_summary`
- Find specific pins: `search_annotations`
- Fix and mark as done: `fix_and_resolve`
---
## Agent Configuration Guides
### Cursor
**File:** `.cursor/mcp.json`
```json
{
"mcpServers": {
"pincushion": {
"command": "npx",
"args": ["pincushion-mcp", "--project-dir", "."]
}
}
}
```
> **pnpm / yarn users:** replace `"command": "npx"` with `"command": "pnpm"` and add `"dlx"` as the first arg, or use `"command": "yarn"` with `"dlx"` likewise.
**With Supabase sync:**
```json
{
"mcpServers": {
"pincushion": {
"command": "npx",
"args": [
"pincushion-mcp",
"--project-dir", ".",
"--sync-url", "https://your-supabase.com/api",
"--api-key", "YOUR_API_KEY"
]
}
}
}
```
### Claude Desktop
**File:** `~/.config/Claude/claude_desktop_config.json` (Linux/Windows)
or `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
```json
{
"mcpServers": {
"pincushion": {
"command": "npx",
"args": ["pincushion-mcp", "--project-dir", "/path/to/your/project"]
}
}
}
```
**pnpm users:**
```json
{
"mcpServers": {
"pincushion": {
"command": "pnpm",
"args": ["dlx", "pincushion-mcp", "--project-dir", "/path/to/your/project"]
}
}
}
```
**yarn users:**
```json
{
"mcpServers": {
"pincushion": {
"command": "yarn",
"args": ["dlx", "pincushion-mcp", "--project-dir", "/path/to/your/project"]
}
}
}
```
**With Supabase sync:**
```json
{
"mcpServers": {
"pincushion": {
"command": "npx",
"args": [
"pincushion-mcp",
"--project-dir", "/path/to/your/project",
"--sync-url", "https://your-supabase.com/api",
"--api-key", "YOUR_API_KEY"
]
}
}
}
```
### Claude Code (CLI)
Run this command to add Pincushion to Claude Code:
```bash
claude mcp add pincushion -- npx pincushion-mcp --project-dir .
```
Or with Supabase sync:
```bash
claude mcp add pincushion -- npx pincushion-mcp --project-dir . --sync-url https://your-supabase.com/api --api-key YOUR_API_KEY
```
### VS Code (Copilot / Continue)
**File:** `.vscode/settings.json`
```json
{
"mcp.servers": {
"pincushion": {
"command": "npx",
"args": ["pincushion-mcp", "--project-dir", "${workspaceFolder}"]
}
}
}
```
### Windsurf / Codeium Windsurf
**File:** `~/.windsurf/mcp.json` or `~/.config/windsurf/mcp.json`
```json
{
"mcpServers": {
"pincushion": {
"command": "npx",
"args": ["pincushion-mcp", "--project-dir", "."]
}
}
}
```
### Antigravity
**File:** `~/.antigravity/mcp.json`
```json
{
"mcpServers": {
"pincushion": {
"command": "npx",
"args": ["pincushion-mcp", "--project-dir", "."]
}
}
}
```
### OpenAI Codex / REST API Clients
For tools that don't support MCP directly, use the REST API wrapper:
```bash
npx pincushion-mcp --rest --port 3456
```
This starts an HTTP server on `localhost:3456`. Endpoints:
- `GET /health` — Check server status
- `POST /call-tool` — Invoke a tool
- Body: `{ "toolName": "get_feedback_summary", "args": {} }`
Example using curl:
```bash
curl -X POST http://localhost:3456/call-tool \
-H "Content-Type: application/json" \
-d '{"toolName": "get_feedback_summary", "args": {}}'
```
---
## CLI Flags
```bash
npx pincushion-mcp [flags]
```
| Flag | Description | Default |
|------|-------------|---------|
| `--project-dir PATH` | Root directory containing `.feedback/` | Current working directory |
| `--sync-url URL` | Supabase API endpoint for remote sync | None (local only) |
| `--api-key KEY` | API key for Supabase authentication | None |
| `--license-key KEY` | Pro license key (optional) | None |
| `--rest` | Enable REST API mode | Disabled (uses MCP/stdio) |
| `--port PORT` | Port for REST API server | 3456 |
### Examples
**Local project:**
```bash
npx pincushion-mcp --project-dir /path/to/project
```
**With Supabase sync:**
```bash
npx pincushion-mcp \
--project-dir /path/to/project \
--sync-url https://abcd1234.supabase.co/api \
--api-key sb_project_key_abc123...
```
**REST API server:**
```bash
npx pincushion-mcp --rest --port 8080
```
---
## Tools
### `get_annotations`
Retrieve annotations from `.feedback/`. Filter by page, component, or status.
**Parameters:**
- `pageUrl` (string, optional) — Filter by page URL (partial match)
- `componentName` (string, optional) — Filter by LWC component name
- `status` (string, optional) — Filter by `open`, `in-progress`, or `resolved`
**Example:**
```javascript
await mcp.callTool('get_annotations', {
componentName: 'wmlHomePage',
status: 'open'
});
```
### `search_annotations`
Full-text search across all annotations, comments, selectors, and tags.
**Parameters:**
- `query` (string, required) — Search term
**Example:**
```javascript
await mcp.callTool('search_annotations', {
query: 'button label'
});
```
### `get_feedback_summary`
High-level rollup of all feedback: counts by status, priority, page, and component.
**Example:**
```javascript
await mcp.callTool('get_feedback_summary', {});
```
### `get_component_feedback`
Get all feedback for a specific LWC component with a plain-language summary.
**Parameters:**
- `componentName` (string, required) — LWC component name
**Example:**
```javascript
await mcp.callTool('get_component_feedback', {
componentName: 'wmlHomePage'
});
```
### `resolve_annotation`
Mark an annotation as resolved after fixing the issue.
**Parameters:**
- `annotationId` (string, required) — Annotation ID
- `comment` (string, optional) — Resolution message
- `resolvedBy` (string, optional) — Name to attribute resolution (default: "AI Agent")
**Example:**
```javascript
await mcp.callTool('resolve_annotation', {
annotationId: 'ann_abc123',
comment: 'Updated button label in line 42 of wmlHomePage.js'
});
```
### `add_agent_reply`
Add a reply to an annotation thread (e.g., ask clarifying questions).
**Parameters:**
- `annotationId` (string, required) — Annotation ID
- `body` (string, required) — Reply message
- `author` (string, optional) — Author name (default: "AI Agent")
**Example:**
```javascript
await mcp.callTool('add_agent_reply', {
annotationId: 'ann_abc123',
body: 'Is this button in the main navigation or sidebar?'
});
```
### `fix_and_resolve`
Combine fixing code and marking an annotation as resolved in one call. Optionally records commit / branch / PR metadata so the dashboard can backlink to what shipped.
**Parameters:**
- `annotationId` (string, required) — Annotation ID
- `fixDescription` (string, required) — Description of the fix
- `filePath` (string, optional) — File where fix was applied
- `lineNumber` (number, optional) — Line number of the fix
- `commitSha` (string, optional) — Commit SHA that landed the change
- `branchName` (string, optional) — Branch the commit was made on
- `prUrl` (string, optional) — Pull request URL (GitHub/GitLab/Bitbucket; shape-validated)
**Example:**
```javascript
await mcp.callTool('fix_and_resolve', {
annotationId: 'ann_abc123',
fixDescription: 'Updated button label to match design spec',
filePath: 'src/components/wmlHomePage.js',
lineNumber: 42,
commitSha: 'abc123def456',
branchName: 'pincushion/checkout-fix',
prUrl: 'https://github.com/acme/app/pull/142'
});
```
### `get_implementation_packet`
Fetch a single implementation packet for one page URL — selector list, full pin payloads, suggested branch name, and traceability config. Use when an agent wants to batch-fix one page in a single branch.
```javascript
await mcp.callTool('get_implementation_packet', { pageUrl: '/checkout' });
```
### `assign_pin_to_agent`
Dispatch a pin straight to your local coding agent. Promotes the pin to `ready` if not already, marks `pending_implementation`, and writes a `.feedback/.agent-queue/<id>.json` trigger file that `agent-loop.mjs` picks up and shells out to Cursor / Claude Code / Codex.
```javascript
await mcp.callTool('assign_pin_to_agent', { annotationId: 'ann_abc123' });
```
### `link_pin_deploy`
Attach a deploy URL to a resolved pin. Typically called by the deploy-hook edge function once production includWhat people ask about pincushion-plugin
What is jcooley8/pincushion-plugin?
+
jcooley8/pincushion-plugin is mcp servers for the Claude AI ecosystem. Cursor marketplace plugin for Pincushion — MCP server + slash commands It has 0 GitHub stars and was last updated 4d ago.
How do I install pincushion-plugin?
+
You can install pincushion-plugin by cloning the repository (https://github.com/jcooley8/pincushion-plugin) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is jcooley8/pincushion-plugin safe to use?
+
Our security agent has analyzed jcooley8/pincushion-plugin and assigned a Trust Score of 74/100 (tier: OK). See the full breakdown of passed checks and flags on this page.
Who maintains jcooley8/pincushion-plugin?
+
jcooley8/pincushion-plugin is maintained by jcooley8. The last recorded GitHub activity is from 4d ago, with 0 open issues.
Are there alternatives to pincushion-plugin?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy pincushion-plugin to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/jcooley8-pincushion-plugin)<a href="https://claudewave.com/repo/jcooley8-pincushion-plugin"><img src="https://claudewave.com/api/badge/jcooley8-pincushion-plugin" alt="Featured on ClaudeWave: jcooley8/pincushion-plugin" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。