AI Intervention Agent: MCP server enabling real-time user intervention in AI-assisted development workflows.
Project description
When using AI CLIs/IDEs, agents can drift from your intent. This project gives you a simple way to intervene at key moments, review context in a Web UI, and send your latest instructions via interactive_feedback so the agent can continue on track.
Works with Cursor, VS Code, Claude Code, Augment, Windsurf, Trae, and more.
Quick start
Quickest: ask your AI to install it for you
If your IDE/CLI has an AI agent (Cursor, Claude Code, VS Code, Windsurf, Trae, Augment, ...), paste the prompt below in chat and let it write the config for you.
Click to copy the install prompt
Please configure my IDE / AI tool to use the `ai-intervention-agent` MCP server:
1. Locate the correct MCP config file for my current IDE
(e.g. `.cursor/mcp.json` or `~/.cursor/mcp.json` for Cursor,
`~/.claude.json` for Claude Code,
`.vscode/mcp.json` for VS Code).
2. Add this entry under `mcpServers`:
- command: `uvx`
- args: `["ai-intervention-agent"]`
- timeout: 600
- autoApprove: `["interactive_feedback"]`
3. Append the project's recommended prompt rules
(the "Prompt snippet (copy/paste)" block in this README)
to my agent rules / system prompt, so the agent always asks me
through `interactive_feedback` instead of ending tasks silently.
4. Verify by listing MCP servers and confirming `ai-intervention-agent` is loaded.
Option 1: Using uvx (Recommended)
Configure your AI tool to launch the MCP server directly via uvx (this automatically installs and runs the latest version):
{
"mcpServers": {
"ai-intervention-agent": {
"command": "uvx",
"args": ["ai-intervention-agent"],
"timeout": 600,
"autoApprove": ["interactive_feedback"]
}
}
}
Option 2: Using pip
- First, install the package manually (please remember to manually
pip install --upgrade ai-intervention-agentperiodically to get updates):
pip install ai-intervention-agent
- Configure your AI tool to launch the installed MCP server:
{
"mcpServers": {
"ai-intervention-agent": {
"command": "ai-intervention-agent",
"args": [],
"timeout": 600,
"autoApprove": ["interactive_feedback"]
}
}
}
[!NOTE]
interactive_feedbackis a long-running tool. Some clients have a hard request timeout, so the Web UI provides a countdown + auto re-submit option to keep sessions alive.
- Default:
feedback.frontend_countdown=240seconds- Range:
0(disabled) or[10, 3600]seconds. The default 240 stays under the common 300s session hard timeout; raise it intentionally when your client allows longer turns.
- (Optional) Customize your config:
- On first run,
config.tomlwill be created under your OS user config directory (see docs/configuration.md). - Example:
[web_ui]
port = 8080
[feedback]
frontend_countdown = 240
backend_max_wait = 600
Prompt snippet (copy/paste)
- Only ask me through the MCP `ai-intervention-agent` tool; do not ask directly in chat or ask for end-of-task confirmation in chat.
- If a tool call fails, keep asking again through `ai-intervention-agent` instead of making assumptions, until the tool call succeeds.
ai-intervention-agent usage details:
- If requirements are unclear, use `ai-intervention-agent` to ask for clarification with predefined options.
- If there are multiple approaches, use `ai-intervention-agent` to ask instead of deciding unilaterally.
- If a plan/strategy needs to change, use `ai-intervention-agent` to ask instead of deciding unilaterally.
- Before finishing a request, always ask for feedback via `ai-intervention-agent`.
- Do not end the conversation/request unless the user explicitly allows it via `ai-intervention-agent`.
Screenshots
Feedback page · auto switches between dark/light · multi-task tabs with independent countdowns
More screenshots (empty state + settings)
Empty state · waiting for the next interactive request
Settings · notifications · Bark · sound · feedback countdown · auto switches between dark/light
Key features
- Real-time intervention: the agent pauses and waits for your input via
interactive_feedback - Web UI: Markdown, code highlighting, and math rendering
- Multi-task: tab switching with independent countdown timers
- Auto re-submit: keep sessions alive by auto-submitting at timeout
- Notifications: web / sound / system / Bark (loopback URLs auto-suppressed; LAN-IP suggestion surfaced in settings)
- SSH / LAN friendly: works behind port forwarding; mDNS publishes a
<host>.localURL when the local network supports it
Architecture diagram, "how it works" flow, production middleware chain, server self-info resource, and MCP-spec compliance details live under
docs/api/index.mdanddocs/mcp_tools.md.
VS Code extension (optional)
| Item | Value |
|---|---|
| Purpose | Embed the interaction panel into VS Code’s sidebar to avoid switching to a browser. |
| Install (Open VSX) | Open VSX |
| Download VSIX (GitHub Release) | GitHub Releases |
| Setting | ai-intervention-agent.serverUrl (should match your Web UI URL, e.g. http://localhost:8080; you can change web_ui.port in config.toml.default) |
| Other settings | ai-intervention-agent.logLevel (Output → AI Intervention Agent). macOS native notifications are enabled by default and can be toggled in the sidebar's Notification Settings panel. See packages/vscode/README.md for the full settings list and the AppleScript executor security model. |
Configuration
| Item | Value |
|---|---|
| Docs (English) | docs/configuration.md |
| Docs (简体中文) | docs/configuration.zh-CN.md |
| Default template | config.toml.default (on first run it will be copied to config.toml) |
| OS | User config directory |
|---|---|
| Linux | ~/.config/ai-intervention-agent/ |
| macOS | ~/Library/Application Support/ai-intervention-agent/ |
| Windows | %APPDATA%/ai-intervention-agent/ |
Documentation
- Docs index (by audience):
docs/README.md·docs/README.zh-CN.md - Scripts index (CI gates / generators / QA):
scripts/README.md - Release notes:
CHANGELOG.md· VS Code marketplace listing:packages/vscode/CHANGELOG.md - Contributing:
CONTRIBUTING.md·CODE_OF_CONDUCT.md - API docs index:
docs/api/index.md - API docs (简体中文):
docs/api.zh-CN/index.md - MCP tool reference:
docs/mcp_tools.md - MCP 工具说明:
docs/mcp_tools.zh-CN.md - Troubleshooting / FAQ:
docs/troubleshooting.md·docs/troubleshooting.zh-CN.md - Release recovery runbook:
docs/release-recovery.md·docs/release-recovery.zh-CN.md - i18n contributor guide:
docs/i18n.md - DeepWiki Q&A — AI-augmented Q&A over the repo:
Related projects
Acknowledgements
This project's heritage traces back to Fábio Ferreira (2024) and Pau Oliva (2025), whose original noopstudios/interactive-feedback-mcp and poliva/interactive-feedback-mcp seeded the MCP interactive_feedback tool surface. Their copyright notices are preserved in LICENSE per the MIT license terms. The v1.5.x line is a substantial rewrite — Web UI, VS Code extension, i18n, notification stack, CI/CD pipeline — owned and maintained by @xiadengma (PyPI / Open VSX / VS Code Marketplace publisher).
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_intervention_agent-1.6.4.tar.gz.
File metadata
- Download URL: ai_intervention_agent-1.6.4.tar.gz
- Upload date:
- Size: 2.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90b2860d8c642447affd0992030dfd21c7d9518923afd88eb25687fbbc625d0d
|
|
| MD5 |
dd7def550344b27cb7a383ac7146d964
|
|
| BLAKE2b-256 |
e3fe463b08485b7767cac55ea80a412c71fd55c862bfde771ee70e43641f069d
|
Provenance
The following attestation bundles were made for ai_intervention_agent-1.6.4.tar.gz:
Publisher:
release.yml on XIADENGMA/ai-intervention-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ai_intervention_agent-1.6.4.tar.gz -
Subject digest:
90b2860d8c642447affd0992030dfd21c7d9518923afd88eb25687fbbc625d0d - Sigstore transparency entry: 1513094914
- Sigstore integration time:
-
Permalink:
XIADENGMA/ai-intervention-agent@4b33612cf3f5590db95c9af96f00ccbe6cc1b973 -
Branch / Tag:
refs/tags/v1.6.4 - Owner: https://github.com/XIADENGMA
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4b33612cf3f5590db95c9af96f00ccbe6cc1b973 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ai_intervention_agent-1.6.4-py3-none-any.whl.
File metadata
- Download URL: ai_intervention_agent-1.6.4-py3-none-any.whl
- Upload date:
- Size: 2.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
feb3d51fe174d85a8f569b37b8ede0be8902143c5aee4897179aa229ae61f95a
|
|
| MD5 |
8fd222e0057da3c69a3e7ca158a31a46
|
|
| BLAKE2b-256 |
da9158c58a71a4da26101d1577102be082693b6756a2438d23bad5608d171185
|
Provenance
The following attestation bundles were made for ai_intervention_agent-1.6.4-py3-none-any.whl:
Publisher:
release.yml on XIADENGMA/ai-intervention-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ai_intervention_agent-1.6.4-py3-none-any.whl -
Subject digest:
feb3d51fe174d85a8f569b37b8ede0be8902143c5aee4897179aa229ae61f95a - Sigstore transparency entry: 1513094968
- Sigstore integration time:
-
Permalink:
XIADENGMA/ai-intervention-agent@4b33612cf3f5590db95c9af96f00ccbe6cc1b973 -
Branch / Tag:
refs/tags/v1.6.4 - Owner: https://github.com/XIADENGMA
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4b33612cf3f5590db95c9af96f00ccbe6cc1b973 -
Trigger Event:
push
-
Statement type: