智能聊天代理

一款基于Electron构建的智能聊天应用,集成OpenAI GPT和MCP协议,支持与外部工具的高级交互。

  • by Northzedam
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Northzedam/mcp-client

使用说明

MCP代理聊天

一个基于Electron构建的智能聊天应用,集成了OpenAI GPT与MCP(模型上下文协议),以实现与外部工具的高级交互。

🚀 特点

  • 实时聊天 实时流式传输答案
  • 模式系统询问 vs 代理
  • SQLite数据库 用于保持对话持久性
  • 政策体系 用于MCP工具控制
  • 现代界面 具有响应式设计
  • 安全IPC(工业个人计算机/现场总线控制系统,具体含义根据上下文确定) 在Electron进程之间

🏗️ 建筑

Renderer Process ↔ Main Process ↔ OpenAI API
       ↓                ↓              ↓
    UI/Chat.js    →  IPC Handlers  →  Streaming
       ↓                ↓              ↓
   renderer.js    →  Database     →  SQLite

📁 项目结构

MCP-Agent/
├── main.js              # Proceso principal de Electron
├── preload.js           # Script de precarga seguro
├── index.html           # Interfaz de usuario
├── styles.css           # Estilos de la aplicación
├── chat.js              # Lógica del chat
├── renderer.js          # Gestión de UI y modos
├── openai.js            # Cliente OpenAI con streaming
├── mcp.js               # Adaptador MCP (mock)
├── policy.js            # Motor de políticas
├── db/
│   ├── index.js         # Configuración de base de datos
│   └── migrations/      # Migraciones SQL
└── package.json         # Dependencias del proyecto

🛠️ 安装

  1. 克隆仓库:

    git clone <repository-url>
    cd MCP-Agent
    
  2. 安装依赖项:

    yarn install
    # o
    npm install
    
  3. 设置OpenAI的API密钥:

    选项1:环境变量(推荐)

    # Windows (PowerShell)
    $env:OPENAI_API_KEY="tu-api-key-aqui"
    
    # Windows (CMD)
    set OPENAI_API_KEY=tu-api-key-aqui
    
    # Linux/Mac
    export OPENAI_API_KEY="tu-api-key-aqui"
    

    选项2:通过应用程序

    • 打开开发者控制台(F12)
    • 执行: await window.api.settings.set('openai_api_key', 'tu-api-key-aqui')

    选项3:.env文件

    • 副本 env.example 一 .env
    • 编辑(Edita,此处为假设的翻译,因为“Edita”本身可能是一个特定名称或品牌,在没有具体上下文的情况下,一般可译为“编辑”或根据具体情境译为其他更贴切的词汇) .env 并添加你的API密钥
    • 应用程序将自动加载变量
  4. 运行应用程序:

    yarn start
    # o
    npm start
    

🎯 使用

操作模式

  • “询问”模式无MCP工具的基础聊天
  • “代理”模式使用MCP工具的聊天

可用的MCP工具

  • filesystem.read - 读取文件(允许)
  • filesystem.write - Escritura de archivos (REQUIRE_CONFIRMATION)
  • playwright.goto - 网络浏览(需要确认)
  • web_search - 网络搜索(允许)

🔧 开发

可用脚本

yarn start          # Ejecutar en modo desarrollo
yarn dev            # Ejecutar con hot reload

数据库结构

  • 会议/会话/时段聊天对话
  • 消息单条消息
  • 设置应用程序设置
  • 工具日志MCP工具使用记录

🔒 安全

  • 上下文隔离已启用安全功能
  • **CSP(Content Security Policy,内容安全策略)**已配置内容安全策略
  • API密钥安全存储
  • 工具政策细粒度访问控制

🚧 项目状态

✅ 已完成

  • [x] 功能齐全的聊天界面
  • [x] OpenAI的流媒体服务
  • [x] SQLite数据库
  • [x] 模式系统
  • [x] MCP 工具面板
  • [x] 基本政策体系

🔄 开发中

  • [ ] 策略确认对话框
  • [ ] 与真实MCP服务器的集成
  • [ ] API密钥配置界面
  • [ ] 多会话管理

📝 许可证

麻省理工学院许可证

🤝 贡献

欢迎贡献。请提交一个问题或拉取请求。

📞 支持

如需支持或提问,请在仓库中提交一个问题。