๐ฉ Flag MCP
English | ็ฎไฝไธญๆ
"Every flag you plant changes the story."
Plant your flag. Shape the route. Ship with confidence.
Human-in-the-loop interaction for AI coding workflows โ because in every great visual novel, you choose the route.
Designed for Cursor ยท Claude Desktop ยท Cline ยท Windsurf
โจ What is "Flag"?
In visual novels and Galgames, a "flag" (ใใฉใฐ) is the moment a choice triggers a new story branch. One decision changes everything.
Flag MCP brings that same power to AI-assisted coding. When your AI assistant hits a crossroads, it doesn't guess โ it raises a flag and waits for you to choose the route.
๐ฎ You're the protagonist. The AI waits at every branching point.
๐ Every flag shapes the route. No more speculative rewrites.
๐ Rich interaction. Text, screenshots, annotations โ your full arsenal.
This transforms AI coding from "hope it works" into a narrative where you hold the controller.
Scope of Application:
- Coding plans billed on a per-request basis.
- Developers who wish to control AI behavior.
๐ฅ Before & After
| โ Without Flag MCP | โ With Flag MCP |
|---|---|
| AI guesses โ wrong code โ painful rework | AI raises a flag โ you choose โ correct code |
| Multiple rounds of "wait, what did you mean?" | One structured dialog, crystal clear |
| Anxious: "What is the AI about to do?!" | Confident: every action confirmed by you |
| Helpless passenger | You are the route-setter |
๐ฏ Core Features
- ๐ฅ๏ธ Dark Themed UI โ A sleek native desktop dialog that fits your workflow
- โ Route Choices โ Structured predefined options (checkbox-style)
- ๐ฌ Free Text โ When the predefined routes aren't enough, write your own script
- ๐ท Rich Media Arsenal
- Paste images from clipboard
- Select local files
- Screenshot + Built-in Annotator (rectangle, circle, arrow, pen, text, crop)
- ๐ผ๏ธ Prompt Images โ AI can show you images (local paths,
file://,http(s)://) - ๐ Security First โ Remote images validated, size-limited, async loaded
- ๐จ macOS Optimized โ Proper icon handling and visual polish
๐ฆ Installation
Prerequisites
- Python
>= 3.11 uv(recommended) orpip
Quick Install
git clone https://github.com/pauoliva/interactive-feedback-mcp.git
cd interactive-feedback-mcp
uv sync
โ๏ธ Configuration
Add to your MCP client configuration:
Cursor (mcp.json) / Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"interactive-feedback": {
"command": "uv",
"args": [
"--directory",
"/path/to/interactive-feedback-mcp",
"run",
"server.py"
],
"timeout": 900000,
"autoApprove": ["interactive_feedback"]
}
}
}
โ ๏ธ Note: Timeout is in milliseconds for Cursor (
900000= 15 min). Some clients use seconds โ adjust accordingly.
๐ฉ The interactive_feedback Tool
Arguments
| Parameter | Type | Description |
|---|---|---|
message |
string |
The question/prompt to display |
predefined_options |
array |
Optional. Route choices for quick decisions |
message_images |
array |
Optional. Images to show (local/remote URLs) |
Returns
- Text feedback from user
- Optional image attachments (as MCP image content blocks)
๐ง Pro Tips
Recommended Agent Rules
Add this to your AI assistant's custom instructions:
If requirements are unclear, call interactive_feedback before implementing.
Present predefined options whenever possible โ give the user clear route choices.
Before finishing a task, call interactive_feedback once more for final confirmation.
Environment Variables
| Variable | Default | Description |
|---|---|---|
INTERACTIVE_FEEDBACK_TIMEOUT_SEC |
60000 |
Max UI process lifetime |
INTERACTIVE_FEEDBACK_ICON |
โ | Custom app icon path |
INTERACTIVE_FEEDBACK_REMOTE_IMAGE_TIMEOUT_SEC |
5 |
Remote image fetch timeout |
INTERACTIVE_FEEDBACK_REMOTE_IMAGE_MAX_BYTES |
10485760 |
Max remote image size (10MB) |
๐ก๏ธ Security & Reliability
- โ
Remote images validated by content-type (
image/*) - โ Large payloads rejected via size cap
- โ Async fetch keeps UI responsive
- โ Local files read only when explicitly referenced
๐ License
MIT License โ fork it, flag it, ship it.
๐ฉ Plant your flag. Write your own route.
Made with ๐ for developers who refuse to be NPCs in their own codebase.