权限管理系统

该项目实现了一个基于Model Context Protocol (MCP)的安全权限管理系统,通过细粒度的权限管理、用户参与和完整审计日志,确保AI代理与本地工具之间的透明、可控和安全交互。

  • by LeelaissakAttota
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Leelaissakattaota/MCP-Security-with-Permissions-and-Elicitation

使用说明

🛡️ MCP安全:权限和激励


📌 项目概述

该项目展示了 安全、生产就绪的实施 模型上下文协议(MCP) --新兴标准 将AI代理连接到现实世界的工具和系统。

它建立了一个强大的 人工智能代理和本地工具之间的信任层 通过精细的权限管理、用户在循环中的启发, 以及完整的审计日志记录——使AI代理的操作透明化, 可控且安全。

域名: 人工智能安全与MCP
语言: Python 3.11
架构: 客户端-服务器(STDIO传输)


🏗️ 建筑

┌─────────────────────────────────────────────┐
│              AI Host App                     │
│   (OpenAI GPT-4o-mini + MCP Integration)    │
└──────────────────┬──────────────────────────┘
                   │
┌──────────────────▼──────────────────────────┐
│           Base Permission Client             │
│  (Permission Check → Allow / Ask / Deny)    │
│  (Audit Logging + Elicitation Framework)    │
└──────────────────┬──────────────────────────┘
                   │
┌──────────────────▼──────────────────────────┐
│         FastMCP Server                       │
│  Tools: read_file │ write_file               │
│         delete_file │ execute_command        │
│  Resources: audit/log │ config/permissions   │
│  Prompts: security_review                    │
└─────────────────────────────────────────────┘

📂 项目结构

mcp-security-permissions-elicitation/
│
├── mcp_permission_server.py        # FastMCP server with 4 tools
├── mcp_permission_client_base.py   # Base client with permission logic
├── mcp_permission_client_app.py    # Gradio GUI client application
├── mcp_permission_host_app.py      # OpenAI-integrated AI host app
│
├── data/
│   ├── permissions.json            # Permission config (allow/ask/deny)
│   ├── audit.log                   # Timestamped audit trail
│   └── test.txt                    # Sample test file

🛠️ 技术栈

组件 技术
MCP框架 FastMCP
MCP协议 模型上下文协议(MCP)
语言 Python 3.11
UI Gradio
LLM集成 OpenAI GPT-4o-mini
安全层 基于角色的权限系统
日志记录 带时间戳的审核日志记录
传输 STDIO(客户端-服务器)
IDE Theia Cloud集成开发环境

🔐 权限系统

每个MCP工具都被分配了一个风险级别和默认权限:

工具 风险等级 默认权限
read_file 🟢 低 allow --自动执行
write_file 🟡 中等 ask --需要批准
delete_file 🔴 高 deny --总是被封锁
execute_command ⚫ 关键 deny --总是被封锁

权限决策流程

Tool Call Request
      │
      ▼
Check permissions.json
      │
   ┌──┴──┐
allow   ask   deny
  │      │      │
  ▼      ▼      ▼
Execute  Show  Block &
Tool    Approval  Log
        Dialog

🚀 主要特点

🔐 精细权限管理

  • 三级决策矩阵: ALLOW / ASK / DENY
  • 参数特定权限覆盖
  • 通过Gradio UI更新运行时权限

📝 完整审核日志记录

  • 每个工具调用都记录了时间戳和决策
  • 跟踪批准、拒绝和启发请求
  • 可通过MCP资源端点访问 file://audit/log

💬 激励框架

  • 基于JSON模式的结构化用户输入集合
  • 三种操作模式:接受/拒绝/取消
  • 用户对敏感操作的在线审批

🤖 多层体系结构

  • 独立关注点:协议核心、GUI客户端、AI主机
  • 集成OpenAI GPT-4o-mini作为推理代理
  • MCP工具作为OpenAI函数调用工具公开

🛡️ 安全提示

  • 内建 security_review 提示模板
  • 分析操作的风险、影响和审计需求
  • 生成结构化安全建议

⚙️ 如何跑步

步骤1——安装依赖项:

pip install fastmcp mcp gradio openai

步骤2-设置OpenAI API密钥:

export OPENAI_API_KEY="your-api-key-here"

步骤3——启动MCP服务器:

python mcp_permission_server.py

步骤4——启动GUI客户端:

python mcp_permission_client_app.py

步骤5——启动AI主机应用程序:

python mcp_permission_host_app.py

📊 权限配置

这 data/permissions.json 文件控制所有工具权限:

{
  "read_file": "allow",
  "write_file": "ask",
  "delete_file": "deny",
  "execute_command": "deny"
}

您可以通过Gradio UI动态更新权限 而无需重新启动服务器。


🎓 技能展示

  • 使用FastMCP实现模型上下文协议(MCP)
  • 代理人工智能安全——权限管理和信任层
  • 用户在环AI设计模式
  • OpenAI函数调用和工具集成
  • 人工智能工具的基于角色的访问控制(RBAC)
  • 审计日志记录和取证调试
  • AI应用程序的Gradio UI开发
  • 异步Python编程(asyncio、AsyncExitStack)
  • 具有STDIO传输的客户端-服务器架构
  • 基于JSON模式的启发式框架

📜 认证

认证 发卡机构 平台
IBM数据科学专业证书 IBM Coursera
IBM生成人工智能专业证书 IBM Coursera
IBM RAG和代理人工智能专业证书 IBM Coursera

🤝 与我联系