Token导航 LogoToken导航TokenDH.com
MCP approval logo
AI代理未说明官方级别未说明来源级核验

MCP approval

MCP Server

一个生产就绪、可插拔的AI工具调用审批系统,支持与模型上下文协议(MCP)集成,提供工具级和调用级审批机制。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonAI代理工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

blublinsky

提供方

blublinsky

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP批准-工具调用批准系统

一个生产就绪、可插拔的AI工具调用批准系统,集成了模型上下文协议(MCP)。

概述

该项目提供两种类型的审批机制:

  1. 工具级别批准 -根据工具名称和描述批准/拒绝
  2. 呼叫级别批准 -通过检查运行时参数(例如。, get 是安全的,除非 all_namespaces=True)

两者都与LangChain代理和MCP服务器无缝集成。

快速开始

1.安装依赖项

make install

2.设置API密钥

export OPENAI_API_KEY='sk-...'

3.运行Demos

# Start the mock MCP server (in one terminal)
make server

# Run the LangGraph demo (in another terminal)
make demo

# Or run the OLS-style streaming demo
make demo-ols

4.清理(可选)

# Clean temporary files and caches (__pycache__, *.pyc, .pytest_cache, *.egg-info)
make clean

# To remove the virtual environment, run:
# rm -rf .venv

核心组件

approvals.py -核心审批逻辑

独立、可重用的审批类:

课程:

  • BaseApprovalConfig -带有公共字段的基本配置
  • ToolLevelApprovalConfig -工具级审批配置
  • CallLevelApprovalConfig -呼叫级别审批配置(扩展ToolLevelApprovalConfig)
  • BaseApproval -审批处理程序的抽象基类
  • ToolLevelApproval -根据包含危险动词的工具名称/描述进行批准
  • CallLevelApproval -通过参数模式匹配扩展ToolLevelApproval
  • ToolRequest -工具调用结构的TypedDict
  • default_cli_approval_handler -默认CLI审批界面

例子:

from approvals import ToolLevelApproval, ToolLevelApprovalConfig

config = ToolLevelApprovalConfig(dangerous_verbs=["delete", "remove"])
approval = ToolLevelApproval(config=config)

tool_request = {"name": "kubectl_delete", "description": "...", "args": {...}}
approved = await approval.check_and_approve_tool(tool_request)

approval_client.py -LangChain/MCP集成

LangChain代理与MCP服务器集成。

功能:

  • discover_mcp_tools() -连接到MCP服务器并检索工具
  • create_approval_agent() -使用审批中间件创建LangChain代理
  • invoke_with_approval() -通过审批循环处理代理执行

例子:

from approval_client import create_approval_agent, invoke_with_approval

agent, approval = await create_approval_agent(
    mcp_url="http://localhost:3000",
    api_key=os.getenv("OPENAI_API_KEY")
)

result = await invoke_with_approval(
    agent, approval, "Delete test.txt", {"configurable": {"thread_id": "1"}}
)

demo_approval_client.py -LangGraph演示

使用LangGraph代理的三种场景的综合演示:

  1. 工具级别批准
  2. 使用参数模式进行调用级审批
  3. 自定义域特定规则

ols_approval_client.py -OLS风格流媒体客户端

使用LangChain的原生工具调用并支持流媒体的替代客户端实现:

课程:

  • StreamedChunk -表示流式响应的块(文本、tool_call、tool_result、end)
  • OLSApprovalClient -具有集成审批支持的流媒体客户端

特征:

  • 本地LLM流媒体 llm.astream()
  • 工具执行与批准检查
  • LLM(60秒)和工具执行(30秒)分别超时
  • 清除流式API返回的文本、工具调用和工具结果

例子:

from ols_approval_client import OLSApprovalClient
from approvals import ToolLevelApprovalConfig, default_cli_approval_handler

config = ToolLevelApprovalConfig(
    dangerous_verbs=["delete", "remove", "send"],
    approval_timeout=10,
    approval_ui_handler=default_cli_approval_handler,
)

client = OLSApprovalClient(
    mcp_url="http://localhost:3000",
    model="gpt-4o",
    api_key=api_key,
    approval_config=config,
)

result = await client.invoke("Delete test.txt")
print(result["response"])

demo_ols_approval_client.py -OLS流媒体演示

使用两个场景演示OLS风格的客户端:

  1. 未经批准-工具自动执行
  2. 具有工具级批准-危险操作需要确认

mcp_server.py -模拟MCP服务器

使用安全和危险的工具测试服务器,用于测试审批工作流。

主要特点

  • 可插拔UI:自定义审批处理程序(CLI、web、Slack等)
  • 类型安全:带验证的Pydantic配置
  • 两种审批模式:工具级别和调用级别
  • 自动审批:安全工具绕过审批
  • 演出:短路评估,小写缓存
  • 保持简单:简单、专注、可维护
  • MCP集成:适用于任何MCP服务器
  • LangChain兼容:使用HumanInTheLoop中间件

补充阅读

目录标签

目录标签

PythonAI代理工作流自动化AI工具调用本地部署审批系统MCP集成LangChain兼容安全审批

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP