Pincushion Plugin vs Ssh MCP
A side-by-side look at the Pincushion Plugin and Ssh MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Pincushion Plugin for coding agents work as a local process; choose Ssh MCP for coding agents as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Pincushion Plugin when
- You need dedicated capabilities in the Coding Agents domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: No auth required.
- You want tools like
get_annotations, search_annotations, get_feedback_summary.
Choose Ssh MCP when
- You need dedicated capabilities in the Coding Agents domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: other.
- You have the keys it needs:
SSH_MCP_PASSWORD, SSH_AUTH_SOCK. - You want tools like
list-connections, list-sessions, open-session.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Coding Agents | Coding Agents |
| Quality signal | 64/100 · Good | 68/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | other |
| Pricing | Freemium | Free |
| Required env vars | None listed | SSH_MCP_PASSWORDSSH_AUTH_SOCK |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 816 |
| Directory activity | 1 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 65 | 14 |
| Full listing | View Pincushion Plugin | View Ssh MCP |
Tools & capabilities
Pincushion Plugin tools 65
get_annotationsRetrieve 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.search_annotationsFull-text search across all annotation comments, selectors, component names, and tags.get_feedback_summaryGet a high-level rollup of all open feedback: counts by status, page, and component. Use this to plan what to address first.get_component_feedbackGet all feedback pins targeting a specific LWC component, with a plain-language summary ready for implementation. Returns element selectors, comments, and thread history.resolve_annotationMark an annotation as resolved after addressing the feedback. Optionally add a resolution comment explaining what was changed.add_agent_replyAdd a reply to an annotation thread (e.g. to ask a clarifying question or note a finding).get_reply_candidatesUsed by /pincushion-replies. Returns pins where Pincushion AI should respond, with each candidate tagged by trigger reason. Two triggers: (a) "mention" — the latest thread message contains @pincushion AND was authored by a human; (b) "reply-on-bot-pin" — the pin was originally authored by Pincushion AI and the latest message is from a human. Skips resolved/archived pins and any pin where the latest message is already bot-authored (idempotency). Newest-first ordering so the slash command can pace replies.add_bot_replyPost a Pincushion AI reply to a pin's thread. Hardcodes author="Pincushion AI" and authorEmail="pincushion-bot@pincushion.io" so the Chrome extension applies bot styling. ONLY call from the /pincushion-replies flow — never as a generic reply. Refuses to post if the latest thread message is already bot-authored (defense-in-depth idempotency).get_pending_critiquesUsed by /critique-latest-deploy. Lists pending critique requests queued by the deploy-hook for the current license. Newer receipts also include a deployment event, prior page outcomes, project-page inventory, and latest per-device capture receipts for truthful local reconciliation before Crit runs. Newest-first. Free on all plans (the gating happened at enqueue time on the deploy-hook side: Pro/Team — including trial-Pro — always enqueue; free licenses enqueue while their monthly AI-action pool has headroom).get_pending_deployment_frame_refreshesLists 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.start_deployment_capture_runStarts one short-lived local frame-refresh run for an exact deployment and returns its opaque proof once. Keep the proof only in process and pass it to authenticated upload_page_snapshot/record_deployment_page_result/complete_deployment_capture_run calls; never put it in capture-snapshot, shell argv, a report, pin, status message, or file.complete_deployment_capture_runRequests 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.- +53 more on the listing page
Ssh MCP tools 14
list-connectionsDiscover available hosts and connection statuslist-sessionsList active sessions per hostopen-sessionCreate a named interactive (stateful) or background sessionclose-sessionClose a session. A background session's command is signalled (INT/TERM/KILL) before its channel is droppedread-session-outputRead output from background sessions (e.g., `tail -f`)read-commandExecute allowlisted read-only commands (`ls`, `cat`, `grep`, ...)run-commandExecute arbitrary commands (destructive/privileged need approval, unless `approvalPolicy = "auto"`)privileged-commandExecute with sudo (needs approval, unless `approvalPolicy = "auto"`)sftp-uploadUpload a file via SFTP (replaces the destination unconditionally)sftp-downloadDownload a file via SFTPsftp-listList a remote directory, bounded in entries and bytessftp-upload-fileStream a local file to the remote host, never through model context- +2 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Pincushion Plugin
{
"mcpServers": {
"jcooley8-pincushion-plugin": {
"command": "npx",
"args": [
"-y",
"pincushion-mcp"
]
}
}
}
Ssh MCP
{
"mcpServers": {
"tufantunc-ssh-mcp": {
"command": "npx",
"args": [
"-y",
"ssh-mcp"
],
"env": {
"SSH_MCP_PASSWORD": "YOUR_SSH_MCP_PASSWORD_HERE",
"SSH_AUTH_SOCK": "YOUR_SSH_AUTH_SOCK_HERE"
}
}
}
}
Frequently asked questions
Pincushion Plugin is categorized under Coding Agents and uses a local stdio subprocess. Ssh MCP belongs to Coding Agents and uses a local stdio subprocess. Pick Pincushion Plugin for coding agents work and Ssh MCP for coding agents.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Pincushion Plugin is listed as freemium — a free tier with paid plans. Auth: no auth required. Ssh MCP is listed as free. Auth: other. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add jcooley8-pincushion-plugin and tufantunc-ssh-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Pincushion Plugin has a quality signal of 64/100 (Good) with 1 views, 0 installs and 1 GitHub stars. Ssh MCP has 68/100 (Great) with 3 views, 0 installs and 816 GitHub stars.