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

AI Agent With MCP Tools

MCP Server

一个结合了模型上下文协议(MCP)、LangChain ReAct代理和基于角色的访问控制(RBAC)的生产级AI代理系统,用于安全的文档管理。

工具数

0

提示词数

0

GitHub Stars

9

资源数

0
AI代理文档处理JavaScriptLangChain

安装说明

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

作者 / 组织

AIAnytime

提供方

AIAnytime

最后核验

2026/5/17 20:20

快速接入

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

命令预览

pip install -r requirements.txt

详细介绍

使用MCP工具和RBAC的AI代理

一个生产就绪的AI代理系统,使用PyCasbin将模型上下文协议(MCP)、LangChain ReAct代理和基于角色的访问控制(RBAC)结合在一起。该应用程序演示了具有企业级权限管理的安全AI代理操作。

概述

此应用程序实现了一个文档管理系统,其中具有不同角色(管理员、编辑、查看器)的用户与AI代理进行交互。代理根据自然语言查询自主选择和执行工具,所有操作都受RBAC策略的保护。

主要特点

  • MCP协议:HTTP+服务器发送事件(SSE),实现高效通信
  • RBAC控制:基于PyCasbin的权限管理
  • LangChain集成:使用OpenAI GPT-4o重新激活代理
  • 企业用户界面:使用React和TailwindCSS构建的现代、干净的界面
  • 实时更新:实时文档管理和权限执行
  • 安全:具有日志记录和审计跟踪的多层防御

系统架构

Graph Diagram

User Interface (React)
         ↓
   API Server (FastAPI)
         ↓
LangChain ReAct Agent (GPT-4o)
         ↓
   MCP Client (HTTP + SSE)
         ↓
   MCP Server (FastAPI)
         ↓
  RBAC Manager (PyCasbin) + Document Storage

角色许可

角色创建读取更新删除
管理员
编辑
查看器

默认用户

  • 爱丽丝 (管理员):完全访问所有操作
  • 鲍勃 (编辑):可以创建、阅读和更新文档
  • 查理 (查看器):只读访问

安装

1.克隆和设置环境

git clone https://github.com/AIAnytime/AI-Agent-with-MCP-Tools.git
cd AI-Agent-with-MCP-Tools
cd backend
activate .venv

2.安装Python依赖项

pip install -r requirements.txt

3.配置环境变量

.env 文件应包含:

OPENAI_API_KEY=your_openai_api_key_here

4.安装前端依赖项

cd frontend
npm install
cd ..

运行应用程序

选项1:一次启动所有服务(推荐)

chmod +x start_all.sh
./start_all.sh

这将开始:

  • MCP服务器已打开 http://localhost:8765
  • 上的API服务器 http://localhost:8000
  • 前端打开 http://localhost:3000

用法

  1. 打开应用程序http://localhost:3000
  1. 选择用户 从用户选择器(alice、bob或charlie)
  1. 与AI代理聊天 使用自然语言:

- 创建一个名为“项目计划”的文档,内容为“第四季度项目计划” - “列出所有文档” - “阅读文档‘项目计划’” - 用新内容更新文档“项目计划” - 删除文档“项目计划” - “检查我的权限”

  1. 查看文档 在“文档”选项卡中查看所有创建的文档
  1. 检查权限 在“权限”选项卡中查看RBAC矩阵
  1. 了解系统 在“系统体系结构”选项卡中

示例演示

管理员用户(alice)-完全访问权限

Query: "Create a document called 'quarterly-report' with content 'Q4 2024 Report'"
Result: ✅ Document created successfully

Query: "Delete the document 'quarterly-report'"
Result: ✅ Document deleted successfully

编辑用户(bob)-无删除权限

Query: "Create a document called 'meeting-notes' with content 'Team Meeting Notes'"
Result: ✅ Document created successfully

Query: "Delete the document 'meeting-notes'"
Result: ❌ Permission denied: Editor role cannot delete documents

查看器用户(charlie)-只读

Query: "Read the document 'meeting-notes'"
Result: ✅ Document content displayed

Query: "Update document 'meeting-notes' with 'Updated Notes'"
Result: ❌ Permission denied: Viewer role cannot update documents

项目结构

mcp-rbac-app/
├── backend/
│   ├── api/
│   │   └── main.py              # FastAPI backend for frontend
│   ├── agent/
│   │   └── langchain_agent.py   # LangChain ReAct Agent
│   ├── mcp/
│   │   ├── mcp_server.py        # MCP HTTP Server
│   │   ├── mcp_client.py        # MCP Client
│   │   └── document_tools.py    # Document CRUD tools
│   ├── rbac/
│   │   ├── model.conf           # Casbin RBAC model
│   │   ├── policy.csv           # Casbin policies
│   │   └── rbac_manager.py      # RBAC enforcement
│   └── storage/
│       └── document_storage.py  # Document persistence
├── frontend/
│   ├── src/
│   │   ├── components/          # React components
│   │   ├── api/                 # API client
│   │   ├── App.jsx              # Main app component
│   │   └── main.jsx             # Entry point
│   ├── package.json
│   └── vite.config.js
├── data/
│   └── documents/               # Document storage (auto-created)
├── .env                         # Environment variables
├── requirements.txt             # Python dependencies
├── start_all.sh                 # Start all services
└── README.md                    # This file

重新激活代理流

LangChain ReAct Agent遵循以下推理循环:

  1. 问题:接收用户的自然语言查询
  2. 思想:分析需要采取什么行动
  3. 动作选择:选择合适的MCP工具
  4. 动作输入:为工具执行准备参数
  5. 工具执行:MCP服务器执行RBAC检查
  6. 观察:接收并分析结果
  7. 任务完成?:确定目标是否实现或继续循环
  8. 最终答案:将结果返回给用户

安全功能

1.最小特权原则

每个角色只有最低限度的必要权限。

2.默认拒绝

除非策略中明确允许,否则所有操作都将被拒绝。

3.操作日志

所有权限检查和操作都会被记录下来以供审计。

4.执行前验证

在执行任何工具之前,都会验证权限。

API终点

MCP服务器(端口8765)

  • GET / -健康检查
  • GET /tools/list -列出可用工具
  • POST /tools/call -执行工具(返回task_id)
  • GET /stream/{task_id} -用于工具执行的SSE流

API服务器(端口8000)

  • GET / -健康检查
  • GET /users -获取所有用户和角色
  • GET /permissions/{role} -获取角色的权限
  • GET /documents -列出所有文件
  • POST /agent/query -向AI代理发送查询

许可证

本项目是为教育和演示目的而创建的,具有麻省理工学院许可证。

目录标签

目录标签

AI代理文档处理JavaScriptLangChain本地部署文档管理RBACMCP协议

接入字段

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

stdio

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP