Impact Preview

io.github.agent-polis由 GitHub 账号 agent-polis 发布v0.2.1更新于 Oct 24, 2026

Impact preview for AI agents - see what changes before any action executes.

已验证STDIO仅桌面开发者工具安全与监控

概览

AI 生成的概览

本地 MCP 服务器,在 AI 代理的提议操作执行前展示文件差异与风险等级,供人工审核。

可以做什么
  • 预览文件写入与删除,显示差异和将丢失的内容
  • 预览 shell 命令并标记危险命令
  • 对任意路径做快速风险检查
  • 通过服务器 API 提交操作,并进行批准、拒绝或执行
  • 查询已提议和已执行操作的审计记录
适用场景
当你允许代理编辑文件、执行 shell 命令或操作数据库,并希望在改动生效前先看差异和风险提示时适用。适合想要“先计划、再批准”而非直接执行的开发者。
运行要求
以 pip 安装的本地 Python 包运行,README 也提供 Docker Compose 方式。完整审批流程需要运行服务器,并配置数据库与 Redis,在 .env 中提供 SECRET_KEY、DATABASE_URL 和 REDIS_URL,HTTP API 还需 API 密钥。仅支持桌面客户端。
安装前请注意
完整服务器需要保存 API 密钥以及 SECRET_KEY 等机密,请勿放入共享文件。批准操作即会执行,文件写入、删除、数据库语句和 shell 命令在批准后可能修改或删除数据。README 示例本身涉及生产数据库地址和系统路径,请仔细核对预览内容。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Impact Preview,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

🔍 Agent Polis

Impact Preview for AI Agents - "Terraform plan" for autonomous AI actions

[License: MIT] [Python 3.11+]

See exactly what will change before any AI agent action executes.

Agent Polis intercepts proposed actions from autonomous AI agents, analyzes their impact, shows you a diff preview of what will change, and only executes after human approval. Stop worrying about your AI agent deleting your production database.

🎯 The Problem

Autonomous AI agents are powerful but dangerous. Recent incidents:

  • Replit Agent deleted a production database, then lied about it
  • Cursor YOLO mode deleted an entire system including itself
  • Claude Code learned to bypass safety restrictions via shell scripts

Developers want to use AI agents but don't trust them. Current solutions show what agents want to do, not what will happen. There's no "terraform plan" equivalent for AI agent actions.

🚀 The Solution

AI Agent proposes action → Agent Polis analyzes impact → Human reviews diff → Approve/Reject → Execute
diff
# Example: Agent wants to write to config.yaml- database_url: postgresql://localhost:5432/dev+ database_url: postgresql://prod-server:5432/production! WARNING: Production database URL detected (CRITICAL RISK)

✨ Features

  • Impact Preview: See file diffs, risk assessment, and warnings before execution
  • Approval Workflow: Approve, reject, or modify proposed actions
  • Risk Assessment: Automatic detection of high-risk operations (production data, system files, etc.)
  • Audit Trail: Event-sourced log of every proposed and executed action
  • SDK Integration: Easy @require_approval decorator for your agent code
  • Dashboard: Streamlit UI for reviewing and approving actions

🚀 Quick Start (2 minutes)

The fastest way to try Agent Polis is the MCP server with Claude Desktop or Cursor.

1. Install & Run

bash
pip install impact-previewimpact-preview-mcp

2. Configure Claude Desktop

Add to your config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

json
{    "mcpServers": {        "impact-preview": {            "url": "http://localhost:8000/mcp"        }    }}

3. Try It

Ask Claude to edit a file - it now has these tools:

ToolWhat it does
preview_file_writeShows diff before any edit
preview_file_deleteShows what will be lost
preview_shell_commandFlags dangerous commands
check_path_riskQuick risk check for any path

Example prompt:

"Preview what would happen if you changed the database URL in config.yaml to point to production"

Claude will show you the diff and risk assessment before making changes.


📦 Full Server Installation

For the complete approval workflow with dashboard and API:

bash
# Using Docker (recommended)docker-compose up -d
# Or locallypip install impact-previewimpact-preview

Register an Agent

bash
curl -X POST http://localhost:8000/api/v1/agents/register \  -H "Content-Type: application/json" \  -d '{"name": "my-agent", "description": "My AI coding assistant"}'

Submit Action → Review → Approve

bash
# Submitcurl -X POST http://localhost:8000/api/v1/actions \  -H "X-API-Key: YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{"action_type": "file_write", "target": "/app/config.yaml", "description": "Update DB URL", "payload": {"content": "db: prod"}}'
# Previewcurl http://localhost:8000/api/v1/actions/ACTION_ID/preview -H "X-API-Key: YOUR_API_KEY"
# Approve (or reject)curl -X POST http://localhost:8000/api/v1/actions/ACTION_ID/approve -H "X-API-Key: YOUR_API_KEY"

Audit Trail (Events)

You can retrieve the complete audit trail for an action:

bash
curl http://localhost:8000/api/v1/actions/ACTION_ID/events -H "X-API-Key: YOUR_API_KEY"

ActionPreviewGenerated event payload includes machine-readable governance context:

  • data.governance.policy.decision / data.governance.policy.matched_rule_id
  • data.governance.scanner.reason_ids / data.governance.scanner.max_severity

🐍 SDK Integration

Wrap your agent's dangerous operations:

python
from agent_polis import AgentPolisClient
client = AgentPolisClient(api_url="http://localhost:8000", api_key="YOUR_KEY")
# Decorator approach - blocks until human approves@client.require_approval(action_type="file_write")def write_config(path: str, content: str):    with open(path, 'w') as f:        f.write(content)
# This will: submit → wait for approval → execute only if approvedwrite_config("/etc/myapp/config.yaml", "new content")

🖥️ Dashboard

Launch the Streamlit dashboard to review pending actions:

bash
pip install impact-preview[ui]streamlit run src/agent_polis/ui/app.py

📚 API Reference

Actions API

EndpointMethodDescription
/api/v1/actionsPOSTSubmit action for approval
/api/v1/actionsGETList your actions
/api/v1/actions/pendingGETList pending approvals
/api/v1/actions/{id}GETGet action details
/api/v1/actions/{id}/previewGETGet impact preview
/api/v1/actions/{id}/diffGETGet diff output
/api/v1/actions/{id}/approvePOSTApprove action
/api/v1/actions/{id}/rejectPOSTReject action
/api/v1/actions/{id}/executePOSTExecute approved action

Action Types

  • file_write - Write content to a file
  • file_create - Create a new file
  • file_delete - Delete a file
  • file_move - Move/rename a file
  • db_query - Execute a database query (read)
  • db_execute - Execute a database statement (write)
  • api_call - Make an HTTP request
  • shell_command - Run a shell command
  • custom - Custom action type

Risk Levels

  • Low: Read operations, safe changes
  • Medium: Write operations to non-critical files
  • High: Delete operations, system files
  • Critical: Production data, irreversible changes

🔧 Configuration

bash
# .envSECRET_KEY=your-secret-keyDATABASE_URL=postgresql+asyncpg://user:pass@host:5432/agent_polisREDIS_URL=redis://localhost:6379/0
# OptionalFREE_TIER_ACTIONS_PER_MONTH=100LOG_LEVEL=INFO

🗺️ Roadmap

VersionFocusStatus
v0.2.0File operation previewCurrent
v0.3.0Database operation previewPlanned
v0.4.0API call previewPlanned
v0.5.0IDE integrations (Cursor, VS Code)Planned
v1.0.0Production readyPlanned

🤝 Contributing

bash
git clone https://github.com/agent-polis/impact-preview.gitcd impact-previewpip install -e .[dev]pre-commit installpytest

📄 License

MIT License - see LICENSE for details.


Built for developers who want AI agents they can actually trust.

来源:README.md,提交 600e309

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分