目标管理应用

一个全栈MERN应用,通过自然语言界面帮助认证用户管理个人目标,集成了Google Gemini 2.5 Flash和模型上下文协议(MCP)提供AI助手功能。

  • by Ishva24
  • JavaScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Ishva24/mern-goalsetter-mcp

使用说明

Goalsetter应用程序

一个全栈MERN(MongoDB、Express、React、Node.js)应用程序,使经过身份验证的用户能够通过自然语言界面管理个人目标。该系统集成了Google Gemini 2.5 Flash和模型上下文协议(MCP),提供了一种能够通过对话提示直接创建、阅读和删除目标的AI助手。

建筑

该应用程序由三个主要部分组成:

  1. 前端(React):提供用户界面,包括身份验证和聊天交互。
  2. 后端(Node.js/Express):处理REST API请求、数据库交互,并协调对Gemini API的调用。
  3. MCP服务器:作为一个单独的进程运行,以安全地将核心数据库操作暴露给AI模型。

技术栈

  • 前端:React、Redux工具包、Axios
  • 后端:Node.js、Express、Mongoose
  • 数据库:MongoDB
  • 人工智能集成:谷歌双子座2.5 Flash(通过 @google/generative-ai SDK)
  • 工具协议:模型上下文协议(MCP)
  • 认证:JSON Web令牌(JWT)

先决条件

启动前,请确保已安装以下内容:

  • Node.js (v18或更高版本)
  • MongoDB (本地运行,或MongoDB Atlas URI)
  • Google Gemini API密钥 (可通过Google AI Studio免费获得)

本地设置说明

  1. 克隆存储库

    git clone https://github.com/Ishva24/mern-goalsetter-mcp.git
    cd mern-tutorial
    
  2. 安装根依赖项 安装核心后端和MCP客户端库。

    npm install
    
  3. 安装MCP服务器依赖项

    cd mcp-server
    npm install
    cd ..
    
  4. 安装前端依赖项

    cd frontend
    npm install
    cd ..
    
  5. 配置环境变量 复制提供的环境模板:

    cp .env.example .env
    

    打开新创建的 .env 文件并配置您的凭据:

    • MONGO_URI:您的本地或Atlas MongoDB连接字符串。
    • JWT_SECRET:用于对用户令牌进行签名的安全随机字符串。
    • GEMINI_API_KEY:您的Google Gemini API密钥。
    • GEMINI_MODEL:保留为 gemini-2.5-flash.

运行应用程序

要同时启动前端和后端(建议用于开发):

npm run dev

服务将在以下时间初始化:

  • 前端: http://localhost:3000
  • 后端API: http://localhost:5000

注意:MCP服务器将作为后端管理的子进程自动启动。无需手动启动。

安全概述

  • 数据隐私:在服务器端工具解析过程中,内部用户ID被安全地注入,并且永远不会暴露在Gemini模型中。
  • 访问控制:MCP服务器依赖于内部API密钥(X-Server-Api-Key)而不是暴露前端令牌,最大限度地减少未经授权的攻击媒介。

故障排除

  • EADDRINUSE(港口5000):如果后端无法启动,请确保没有其他服务正在使用端口5000。使用 taskkill /F /IM node.exe (Windows)清理孤立的节点进程。
  • 空AI响应:确认您的 GEMINI_API_KEY 有效,模型明确设置为 gemini-2.5-flash.
  • 数据库错误:验证MongoDB是否在本地运行,或者如果使用MongoDB Atlas,请检查您的IP是否允许访问。

许可证

麻省理工学院