🛡️ 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 |
______________________________________________________________________
🤝 与我联系
  ](https://github.com/Leelaissakattaota)
