{"id":42741564,"url":"https://github.com/jeffkit/mcp-user-feedback-server","last_synced_at":"2026-01-29T19:00:03.781Z","repository":{"id":300185021,"uuid":"1005400426","full_name":"jeffkit/mcp-user-feedback-server","owner":"jeffkit","description":"MCP server with user feedback tool that shows dialog boxes","archived":false,"fork":false,"pushed_at":"2025-07-30T01:04:09.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-22T20:53:31.020Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeffkit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-20T07:06:47.000Z","updated_at":"2025-07-30T01:04:12.000Z","dependencies_parsed_at":"2025-06-20T09:43:55.477Z","dependency_job_id":"679db903-6000-4ac5-8ab0-cafa94b53a1c","html_url":"https://github.com/jeffkit/mcp-user-feedback-server","commit_stats":null,"previous_names":["jeffkit/mcp-user-feedback-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jeffkit/mcp-user-feedback-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffkit%2Fmcp-user-feedback-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffkit%2Fmcp-user-feedback-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffkit%2Fmcp-user-feedback-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffkit%2Fmcp-user-feedback-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeffkit","download_url":"https://codeload.github.com/jeffkit/mcp-user-feedback-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffkit%2Fmcp-user-feedback-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28882591,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T16:41:59.663Z","status":"ssl_error","status_checked_at":"2026-01-29T16:39:39.641Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-29T19:00:01.564Z","updated_at":"2026-01-29T19:00:03.772Z","avatar_url":"https://github.com/jeffkit.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[README](README.md) | [中文](README_CN.md)\n# MCP User Feedback Server\n\nA Model Context Protocol (MCP) server that provides a tool for requesting user feedback through system dialog boxes.\n\n## Features\n\n- Cross-platform dialog support (macOS, Linux, Windows)\n- Single tool: `request_user_feedback`\n- Native system dialog integration\n- Supports custom titles and default text\n- Easy integration with MCP clients like Cursor, Claude Desktop, etc.\n\n## Quick Start\n\n### Using with MCP Clients\n\nThis server is designed to be used with MCP clients. The easiest way is to install it directly from npm:\n\n```bash\nnpx mcp-user-feedback-server@latest\n```\n\n### Installation for Development\n\n```bash\nnpm install\nnpm run build\n```\n\n## Command Line Options\n\nThe server supports the following command line options:\n\n| Option | Alias | Description |\n|--------|-------|-------------|\n| --timeout | -t | Set dialog timeout in seconds (default: 600 seconds / 10 minutes) |\n\nExample:\n```bash\n# Set timeout to 5 minutes (300 seconds)\nnpx mcp-user-feedback-server --timeout 300\n\n# Using the short form\nnpx mcp-user-feedback-server -t 300\n```\n\n## MCP Client Configuration\n\n### Cursor IDE\n\nAdd this to your Cursor settings in the MCP servers configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"user-feedback\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"mcp-user-feedback-server@latest\"\n      ]\n    }\n  }\n}\n```\n\nTo set a custom timeout:\n\n```json\n{\n  \"mcpServers\": {\n    \"user-feedback\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"mcp-user-feedback-server@latest\",\n        \"--timeout\",\n        \"300\"\n      ]\n    }\n  }\n}\n```\n\n### Claude Desktop\n\nAdd this to your Claude Desktop configuration file:\n\n**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"user-feedback\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"mcp-user-feedback-server@latest\"\n      ]\n    }\n  }\n}\n```\n\n### Other MCP Clients\n\nFor any MCP client that supports the Model Context Protocol, you can use:\n\n- **Command**: `npx`\n- **Args**: `[\"-y\", \"mcp-user-feedback-server@latest\"]`\n\n### Local Development Setup\n\nIf you're developing locally, you can also run the server directly:\n\n```json\n{\n  \"mcpServers\": {\n    \"user-feedback\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/mcp-user-feedback-server/dist/index.js\"]\n    }\n  }\n}\n```\n\n## Best Practices: Using with Cursor Rules\n\nThis MCP server works best when combined with proper rules or prompts in your AI assistant configuration. This ensures the AI consistently uses the feedback tool to verify its work rather than making assumptions.\n\n### Recommended Cursor Rule\n\nAdd this rule to your Cursor configuration for optimal user feedback integration:\n\n```markdown\n**Feedback Protocol**  \n\n**Core Rule:** Always use the `request_user_feedback` tool to verify your work - never assume you got it right.  \n\n### **When to Request Feedback:**  \n1. **When You Need Clarification**  \n   - If any part of the request is unclear or missing details  \n   - Example: *\"Should I focus more on [A] or [B] for this analysis?\"*  \n\n2. **When You Complete a Task**  \n   - After delivering any result, big or small  \n   - Example: *\"Here's the draft: [summary]. Does this meet your needs?\"*  \n\n**How to Use the Tool Properly:**  \n- Always phrase requests clearly and specifically  \n- Offer options when possible (e.g., \"Should I use approach X or Y?\")  \n- Never proceed without getting explicit confirmation  \n\n**Golden Rule:** Your work isn't done until the user says \"This is exactly what I needed.\" Keep improving until you hear those words.\n```\n\n### How to Add the Rule in Cursor\n\n1. Open Cursor IDE\n2. Go to **settings** \u003e **rules \u0026 memory** \u003e **user rules**\n3. Add the above feedback protocol rule\n4. Save the configuration\n\nThis ensures your AI assistant will:\n- Ask for clarification when requirements are unclear\n- Verify completed work before moving on\n- Use the dialog boxes to get real-time feedback\n- Follow up until you confirm satisfaction\n\n## Tool: request_user_feedback\n\nShows a dialog box to request feedback from the user.\n\n### Parameters\n\n- `question` (required): The question or prompt to show to the user\n- `title` (optional): Title for the dialog box\n- `defaultAnswer` (optional): Default text to pre-fill in the input field\n\n### Example Usage in MCP Clients\n\nOnce configured in your MCP client, you can use the tool in conversations:\n\n**Example 1: Simple question**\n```\nUser: Ask me what my favorite programming language is\nAI: I'll ask you about your favorite programming language.\n[AI uses request_user_feedback tool with question: \"What is your favorite programming language?\"]\n[Dialog box appears on your screen]\n[You type \"TypeScript\" and click OK]\nAI: Thanks! You mentioned that TypeScript is your favorite programming language.\n```\n\n**Example 2: With custom title and default**\n```\nUser: Get my preferred email for notifications\nAI: Let me ask for your preferred notification email.\n[AI uses request_user_feedback tool with:\n  question: \"Please enter your preferred email for notifications:\"\n  title: \"Email Settings\"\n  defaultAnswer: \"user@example.com\"]\n[Dialog box appears with the title \"Email Settings\"]\n[You modify the default email and submit]\nAI: I've noted your preferred email for notifications.\n```\n\n### Tool Parameters\n\n```json\n{\n  \"question\": \"What is your favorite color?\",\n  \"title\": \"User Preference\",\n  \"defaultAnswer\": \"Blue\"\n}\n```\n\n### Platform-specific Implementation\n\n- **macOS**: Uses AppleScript with `osascript`\n- **Linux**: Uses `zenity`, `kdialog`, `yad`, or `xmessage` (requires GUI environment)\n- **Windows**: Uses PowerShell or VBScript (fallback)\n\n## System Requirements\n\n### macOS\n- No additional dependencies required\n\n### Linux\n- Requires one of: `zenity` (GNOME/GTK), `kdialog` (KDE), `yad`, or `xmessage`\n- Install zenity: `sudo apt-get install zenity` (Ubuntu/Debian)\n\n### Windows\n- No additional dependencies required\n\n## Error Handling\n\nThe tool handles various error scenarios:\n- User cancellation\n- Dialog timeout\n- Missing GUI environment\n- Platform-specific dialog failures\n\n## Development\n\nThe project structure:\n```\nsrc/\n├── index.ts      # Main MCP server\n├── dialog.ts     # Cross-platform dialog manager\ndocs/\n├── FEEDBACK_PROTOCOL.md # Feedback protocol documentation\n```\n\n## License\n\nMIT\n\nimport { read_file } from 'fs';\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffkit%2Fmcp-user-feedback-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeffkit%2Fmcp-user-feedback-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffkit%2Fmcp-user-feedback-server/lists"}