Cursor Feedback
  
One conversation, unlimited AI interactions - If you're on a per-request plan, it saves your monthly quota; plus it bridges your agent tool with Feishu (Lark) — when AI asks for feedback, it's pushed to Feishu and you can reply from your phone. An interactive feedback tool built on MCP (Model Context Protocol).
!Demo
💡 Why Cursor Feedback?
If you're on Cursor's 500 requests/month plan or another coding plan, every conversation counts. With Cursor Feedback:
- One conversation, unlimited interactions - Keep chatting without consuming extra quota
- Human-in-the-loop workflow - AI waits for your feedback before proceeding
- Sidebar integration - No external browser needed, everything stays in your IDE
✨ Features
- 🎯 Sidebar Integration - Feedback UI embedded directly in the IDE sidebar
- 💬 Interactive Feedback - AI Agent requests feedback via MCP tool
- 🖼️ Image Support - Upload images or paste directly (Ctrl+V / Cmd+V)
- 📁 File Support - Select files/folders to share paths with AI
- 📝 Markdown Rendering - Full Markdown support for AI summaries
- ⏱️ Auto-retry on Timeout - 5-minute default timeout, AI automatically re-requests
- 🔔 Feishu (Lark) Bridge - When AI requests feedback, the summary is pushed to Feishu so you can reply right from your phone
- 🌍 Multi-language - Supports English, Simplified Chinese, Traditional Chinese
- 🔒 Project Isolation - Multiple windows work independently
🚀 Quick Start
1. Install the Cursor Extension
Search for "Cursor Feedback" in the Cursor extension marketplace.
Can't find it? Install via command line: ``
bash cursor --install-extension jianger666.cursor-feedback``
2. Configure MCP Server
Option A: One-click Install (Recommended)
Click the button below to automatically configure the MCP Server:
<a href="https://cursor.com/en/install-mcp?name=cursor-feedback&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImN1cnNvci1mZWVkYmFja0BsYXRlc3QiXX0%3D"> <img src="mcp-install-dark.png" alt="Install MCP Server" width="126" height="28" /> </a>
Option B: Manual Configuration
Add to your Cursor MCP config file (~/.cursor/mcp.json):
{
"mcpServers": {
"cursor-feedback": {
"command": "npx",
"args": ["-y", "cursor-feedback@latest"]
}
}
}
Option C: Global Installation
npm install -g cursor-feedback
Then configure:
{
"mcpServers": {
"cursor-feedback": {
"command": "cursor-feedback-mcp"
}
}
}
3. Usage
- Restart Cursor
- The Cursor Feedback icon appears in the sidebar
- Ask AI to call the
interactive_feedbacktool in chat - AI displays work summary in sidebar, waiting for your feedback
4. Configure User Rules (Recommended)
Add these User Rules in Cursor settings for best experience:
# Cursor Feedback Rules
1. Always call MCP cursor-feedback during any workflow, task, or conversation.
2. After receiving user feedback, call MCP cursor-feedback again and adjust behavior accordingly.
3. Before completing a task, use MCP cursor-feedback to ask for user feedback.
4. All content to show users must be passed through cursor-feedback's summary parameter.
This enables continuous interactive dialogue where AI automatically uses Cursor Feedback throughout the conversation.
📖 MCP Tool
interactive_feedback
Interactive feedback collection tool.
Parameters:
| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | project_directory | string | required | Absolute path of the project workspace you are currently in (the open workspace; for multi-window isolation) | | summary | string | I have completed the task you requested. | AI work summary (supports Markdown) | | timeout | number | 300 | Timeout in seconds (default 5 minutes) |
Timeout Mechanism:
- Default wait time: 5 minutes (300 seconds)
- On timeout, AI receives notification
- AI automatically re-calls the tool based on instructions
- Even if you step away, AI will still be waiting when you return
Returns:
User feedback content including text, images, and attached file paths.
⚙️ Configuration
Language Settings
Method 1: Click the 🌐 button in the sidebar (Recommended)
Click the globe icon in the Cursor Feedback sidebar to switch languages.
Method 2: Through VS Code Settings
Search "Cursor Feedback" in settings:
| Setting | Type | Default | Description | |---------|------|---------|-------------| | cursorFeedback.language | string | zh-CN | UI language |
Available languages:
zh-CN- Simplified Chinese (简体中文)en- English
Notification Settings
Click the "Notification settings" icon at the top of the feedback panel to configure in-app and Feishu notifications, or adjust them in VS Code settings:
| Setting | Type | Default | Description | |---------|------|---------|-------------| | cursorFeedback.systemNotification | boolean | true | In-app notifications (main switch): automatically show the feedback panel when AI requests feedback. When off, this window stays fully silent — no panel, no focus stealing, and nothing pushed here | | cursorFeedback.osNotification | boolean | true | Notify when in background (sub-option): fire a native system notification only when the IDE window is not focused. When off, nothing pops even if you switch away (the panel still shows) | | cursorFeedback.notificationSound | boolean | true | Play a sound with the system notification |
macOS note: notifications are sent via
osascript. If you don't see them, allow notifications for "Script Editor" in System Settings → Notifications.
MCP Server Configuration
Basic config:
{
"mcpServers": {
"cursor-feedback": {
"command": "npx",
"args": ["-y", "cursor-feedback@latest"]
}
}
}
Custom timeout (optional, default 5 minutes):
{
"mcpServers": {
"cursor-feedback": {
"command": "npx",
"args": ["-y", "cursor-feedback@latest"],
"env": {
"MCP_FEEDBACK_TIMEOUT": "600"
}
}
}
}
| Environment Variable | Default | Description | |---------------------|---------|-------------| | MCP_FEEDBACK_TIMEOUT | 300 | Timeout in seconds (default 5 minutes) | | MCP_AUTO_RETRY | true | Whether AI should auto-retry on timeout. Set to false to disable. Also toggleable via the "Keep-waiting" switch in the panel (priority: panel > env > default) |
Feishu Notifications
Either way works — but you first need to set up the bot in the Feishu console: enable the bot, grant permissions, and turn on event subscription (long-connection mode + the im.message.receive_v1 event). Full walkthrough in the Feishu setup guide:
- On Cursor: fill in Feishu credentials via the "Notification settings" icon at the top of the panel.
- On other MCP hosts (agent tools without this panel): configure through
envinmcp.json:
{
"mcpServers": {
"cursor-feedback": {
"command": "npx",
"args": ["-y", "cursor-feedback@latest"],
"env": {
"FEISHU_APP_ID": "cli_xxxxxxxx",
"FEISHU_APP_SECRET": "your_app_secret"
}
}
}
}
| Environment Variable | Default | Description | |---------------------|---------|-------------| | FEISHU_APP_ID | - | Feishu app App ID (e.g. cli_xxxxxxxx) | | FEISHU_APP_SECRET | - | Feishu app App Secret | | FEISHU_ENABLED | true | Whether to push feedback to Feishu. Set to false to disable | | FEISHU_ACK | true | Whether to react with a "Get" emoji after you reply. Set to false to disable |
Priority: panel config (when credentials are filled) > env here > default. The panel wins when App ID/Secret are filled; otherwise it falls back to env. You still need to send the bot one message in Feishu to complete binding.
Feishu round-trip on any MCP host
cursor-feedback is not tied to Cursor. The whole Feishu loop — long connection, card push, and reply routing — lives inside the MCP server process, so it works on any MCP-capable agent host: Cursor, Claude Desktop, Cline, command-line agents, or your own harness. No sidebar / VS Code panel required.
Three steps to enable the round-trip:
- Register the MCP server in the host's config with Feishu credentials in
env(sameFEISHU_APP_ID/FEISHU_APP_SECRETas above;FEISHU_ENABLED/FEISHU_ACKoptional):
{
"mcpServers": {
"cursor-feedback": {
"command": "npx",
"args": ["-y", "cursor-feedback@latest"],
"env": {
"FEISHU_APP_ID": "cli_xxxxxxxx",
"FEISHU_APP_SECRET": "your_app_secret"
}
}
}
}
- Bind the chat once — send the bot any message in Feishu. The server records that chat as the push target (persisted to disk, shared across processes), so it knows where to deliver cards.
- Round-trip — the agent calls
interactive_feedback→ a card is pushed to Feishu → you reply in Feishu → your reply is routed back to the agent as the tool result. Reply from your phone; no IDE needed.
No idle-kill outside Cursor. Only the Cursor extension keeps the server warm by polling. On every other host the server stays alive purely on the stdio connection: it exits on stdin EOF or parent-process death, and never on idle — and it always stays up while a feedback request is still waiting. So a reply that takes several minutes still makes it back.
🏗️ Architecture
┌─────────────────┐ stdio ┌──────────────────┐
│ AI Agent │ ◄──────────► │ MCP Server │
│ (Cursor) │ │ (mcp-server.js) │
└─────────────────┘ └────────┬─────────┘
│ HTTP API
▼
┌──────────────────┐
│ Cursor Extension│
│ (extension.js) │
└────────┬─────────┘
│ WebView
▼
┌──────────────────┐
│ User Interface │
│ (Sidebar) │
└──────────────────┘
Workflow:
- AI Agent calls MCP Server's
interactive_feedbacktool via stdio - MCP Server creates feedback request, exposes via HTTP API
- Cursor extension polls for requests, displays in sidebar WebView
- User inputs feedback (text/images/files), submits via HTTP
- MCP Server returns feedback result to AI Agent
📊 Comparison with mcp-feedback-enhanced
| Feature | mcp-feedback-enhanced | cursor-feedback | |---------|:--------------------:|:---------------:| | MCP Tool | ✅ | ✅ | | Text Feedback | ✅ | ✅ | | Image Upload | ✅ | ✅ | | Image Paste | ✅ | ✅ | | File/Folder Selection | ❌ | ✅ | | Markdown Rendering | ✅ | ✅ | | Multi-language | ✅ | ✅ | | Auto-retry on Timeout | ✅ | ✅ | | IDE Sidebar Integration | ❌ | ✅ | | Multi-window Project Isolation | ❌ | ✅ | | Command Execution | ✅ | ⏳ |
🛠️ Development
# Clone the project
git clone https://github.com/jianger666/cursor-feedback-extension.git
cd cursor-feedback-extension
# Install dependencies
npm install
# Compile
npm run compile
# Watch mode
npm run watch
# Run lint
npm run lint
# Package extension
npx vsce package
📄 License
MIT
🙏 Acknowledgments
- mcp-feedback-enhanced - Original Python implementation
- Model Context Protocol - MCP Protocol






