统一MCP框架的AI代理系统

一个基于Model Context Protocol (MCP)的全栈AI代理系统,通过自然语言指令调用工具(如文件系统、浏览器、GitHub)并返回结构化结果,适用于开发效率提升。

  • by Om-Shree-0709
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Om-Shree-0709/Major-Project

使用说明

主要项目:软件开发中上下文感知AI代理的统一MCP框架

该项目实施了一个全栈AI Agent系统,其灵感来自 **模型上下文协议(MCP)**它提供了一个统一的架构框架,其中AI编排器可以解释自然语言指令,识别要执行的适当工具(文件系统、浏览器、GitHub),安全调用该工具,并将结构化结果返回给前端聊天界面。该项目通过现代客户端-服务器架构展示了上下文感知AI代理的实际应用。

项目概述

架构: 该系统遵循客户端-服务器模型,由以下部分组成:

  1. A. React前端 负责用户交互、请求提交、状态显示和工具调用跟踪的可视化。
  2. A. FastAPI后端 充当AI编排器,负责路由请求、确定工具使用、执行操作和生成自然语言响应。

AI引擎: 后端使用 谷歌双子座 通过 google-generativeai 用于快速解释、意图分析、工具路由和摘要的SDK。

目标: 构建一个可扩展的代理框架,能够处理以开发人员为中心的任务,如文件操作、web研究和存储库检查,同时保持安全性、透明度和模块化。


技术栈

前端

  • 框架: React 19与Vite结合,实现快速开发和构建性能
  • 造型: 使用Inter字体系列自定义CSS
  • 图标: Lucide反应
  • 网络: REST API通信通过 fetch

后端

  • 框架: 快速API
  • 服务器运行程序: 乌维科恩
  • AI集成: 谷歌生成人工智能SDK
  • 浏览器自动化: 剧作家(异步)
  • GitHub集成: PyGithub
  • 安全: 文件系统沙盒限制对预定义目录的访问

项目结构

major-project/
├── backend/
│   ├── mcp_host_server.py       # Main FastAPI application; AI Orchestrator logic
│   ├── mcp_core.py              # Base interfaces for tools and tool execution
│   ├── filesystem_server.py     # Restricted file operations inside a sandbox
│   ├── browser_server.py        # Live web search and page extraction using Playwright
│   ├── github_server.py         # GitHub repository access and file inspection
│   ├── mcp_sandbox/             # Secure directory for all file operations
│   └── requirements.txt         # Python dependencies
│
├── frontend/
│   ├── src/
│   │   ├── App.jsx              # Main chat and UI logic
│   │   └── App.css              # Styling definitions
│   └── package.json             # Node.js dependencies
└── README.md

设置和安装

1.先决条件

  • Python 3.8或更高版本
  • Node.js和npm
  • Google Gemini API密钥
  • GitHub个人访问令牌(可选,GitHub工具需要)

2.后端设置

导航到后端目录并配置Python环境:

cd backend
python -m venv .venv

激活环境:

# Windows
.venv\Scripts\activate

# macOS/Linux
source .venv/bin/activate

安装依赖项:

pip install -r requirements.txt

安装Playwright浏览器二进制文件:

playwright install chromium

环境配置

创建一个 .env 文件内部 backend/ 目录:

GEMINI_API_KEY=your_google_gemini_api_key_here
GITHUB_PAT=your_github_personal_access_token_here

3.前端设置

导航到前端目录并安装所需的软件包:

cd frontend
npm install

运行应用程序

前端和后端必须分别启动。

启动后端

uvicorn mcp_host_server:app --reload

后端将在以下位置运行:

http://127.0.0.1:8000

启动前端

npm run dev

前端界面将在以下网址提供:

http://localhost:5173

特性和功能

1.智能刀具选择

后端编排器使用Gemini来解释自然语言请求,确定是否需要调用工具,并决定哪个工具最适合该任务。 示例:

  • “总结此GitHub存储库。”→ GitHub工具
  • “搜索最新的云安全新闻。”→ 浏览器工具
  • “创建一个名为report.txt的文件,并在其中写入内容。”→ 文件系统工具

2.安全的文件系统操作

文件系统工具提供:

  • 正在读取文件
  • 写入文件
  • 列出目录

所有操作严格限于 mcp_sandbox/ 目录,以防止未经授权的系统访问。这种方法与MCP强调能力有限的工具执行是一致的。

3.网页浏览和搜索

浏览器工具使用Playwright来:

  • 执行谷歌风格的搜索查询
  • 访问实时网站
  • 从页面中提取可见文本内容
  • 向编排器返回结构化响应

这使得实时研究、信息收集或总结网站内容等任务成为可能。

4.GitHub存储库集成

使用PyGithub,GitHub工具可以:

  • 列出用户存储库
  • 获取文件内容
  • 检查存储库元数据

这支持开发人员工作流,如查看文档、检查代码或检索项目详细信息。

5.刀具轨迹可视化

前端显示:

  • 工具已调用
  • 后端返回的原始JSON有效负载
  • 人工智能生成的解释

这种透明度有助于用户了解代理的内部操作方式。它还反映了MCP兼容系统的工具调用跟踪行为。


故障排除指南

后端没有响应

如果前端显示“后端状态:脱机”,请确保:

  • FastAPI服务器正在运行
  • 终端中没有运行时错误
  • 环境变量配置正确

剧作家浏览器错误

如果浏览器工具失败:

  • 核实一下 playwright install chromium 被处决
  • 确保您的系统支持Playwright所需的依赖关系
  • 在Windows上,确认中的事件循环策略修复 mcp_host_server.py 是活跃的

Windows上的环境问题

该项目包括一个特定于Windows的事件循环配置,以确保Playwright的异步操作在平台上正确运行。