Nitpick
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Nitpicksubmit feedback: spacing issue on revenue card header"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Nitpick
MCP server + Chrome extension for structured, click-to-annotate UI feedback that AI coding agents (Cursor, Claude Code, etc.) can consume as context.
Status: Week 1 — MCP server core. Chrome extension lands in weeks 3–4.
What's here
Package | Role |
| Zod feedback schema (single source of truth) |
| MCP tools over stdio + localhost HTTP ingest |
Related MCP server: Lens
Prerequisites
Node.js 20+
npm 10+
Setup
git clone https://github.com/salahashraf3/Nitpick.git
cd Nitpick
npm install
npm run buildRun the MCP server
npm run start:serverThis starts:
MCP stdio — for Cursor / Claude Code
HTTP ingest on
http://127.0.0.1:3847(default) — for the future Chrome extension
If 3847 is already taken, the server picks the next free port (3848, 3849, …) and logs the URL on stderr. To pin a port:
NITPICK_HTTP_PORT=3850 npm run start:serverIf you set NITPICK_HTTP_PORT and that port is busy, startup fails with a clear error (no silent fallback), so the extension can keep a fixed URL.
Health check (use the port from the log line):
curl http://127.0.0.1:3847/healthSubmit feedback via HTTP (hand-crafted payload):
curl -s -X POST http://127.0.0.1:3847/feedback \
-H 'Content-Type: application/json' \
-d '{
"url": "https://app.example.com/dashboard",
"target": {
"selector": "#dashboard > div.card-header:nth-child(2)",
"tagName": "div",
"textContent": "Revenue Overview",
"boundingBox": { "x": 120, "y": 84, "width": 320, "height": 48 }
},
"issueType": "spacing",
"severity": "minor",
"description": "Card header has too much bottom padding compared to other cards"
}'Feedback is kept in memory and persisted to ~/.nitpick/feedback.json.
Cursor MCP config
Add to your Cursor MCP settings (~/.cursor/mcp.json or project .cursor/mcp.json):
{
"mcpServers": {
"nitpick": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/Nitpick/packages/mcp-server/dist/index.js"]
}
}
}Replace /ABSOLUTE/PATH/TO/Nitpick with your clone path. After reload, the agent can call submit_ui_feedback.
Claude Code
claude mcp add nitpick -- node /ABSOLUTE/PATH/TO/Nitpick/packages/mcp-server/dist/index.jsMCP tool (week 1)
submit_ui_feedback
Required: target, issueType, description.
Optional: url, severity (default minor), screenshot, suggestedFix, domContext.
issueType: spacing | alignment | color | typography | responsiveness | interaction | content | other
severity: blocker | major | minor | nit
Project layout
packages/
shared/ # Zod schema + types
mcp-server/ # MCP + HTTP ingest
chrome-extension/ # (weeks 3–4)
docs/Roadmap
Weeks 1–2: MCP server core ← you are here
Weeks 3–4: Chrome extension capture
Weeks 5–6: Extension → server end-to-end
Week 7: Polish + demo GIF
Weeks 8–9: Resume packaging + soft launch
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/salahashraf3/Nitpick'
If you have feedback or need assistance with the MCP directory API, please join our Discord server