@rohit-jsfreaky/pinpoint-mcp
v0.1.0
Published
Pinpoint MCP server — pull the UI element you pointed at directly into Cursor / Claude Code.
Downloads
135
Maintainers
Readme
@rohit-jsfreaky/pinpoint-mcp
The Pinpoint MCP server — lets Cursor / Claude Code pull the UI element you
pointed at in the browser directly, no copy-paste. Run it, pair it with the
Pinpoint extension once, then point at an element and tell your
agent to use the get_latest_pick tool.
Run
npx @rohit-jsfreaky/pinpoint-mcp
# ● Pinpoint MCP server
# relay: http://127.0.0.1:7878
# token: pp_xxxxxxxxxxxx ← paste into the extension: Options → Connect MCPNot published to npm yet?
npx @rohit-jsfreaky/pinpoint-mcpwill 404. Run it from source:pnpm install && pnpm build && node dist/index.js(from this folder), and point your agent atnode <abs-path>/dist/index.js. Seedeployment/MCP_PUBLISH.md.
Register with your agent
Cursor — .cursor/mcp.json (project) or the global config:
{
"mcpServers": {
"pinpoint": { "command": "npx", "args": ["-y", "@rohit-jsfreaky/pinpoint-mcp"] }
}
}Claude Code:
claude mcp add pinpoint -- npx -y @rohit-jsfreaky/pinpoint-mcpHow it works
One process, two interfaces:
- a stdio MCP server exposing tools to the agent;
- a localhost HTTP relay (
127.0.0.1, pairing-token auth) that receives picks POSTed by the browser extension.
Picks live in an in-memory ring buffer (last 50). Nothing is written to disk and nothing leaves your machine.
Tools
| Tool | Purpose |
|------|---------|
| get_latest_pick | The element you just pointed at (selector, styles, source file:line). |
| list_recent_picks | Recent picks, newest first — choose one by id. |
| get_pick_by_id | Full context for a specific pick. |
| get_pick_bundle | Recent picks merged into one bundle ("fix these together"). |
| clear_picks | Clear stored picks. |
Tools return the same Markdown the extension's Copy produces — one source of
truth (../shared/bundle.ts).
