Goalsetter应用程序
一个全栈MERN(MongoDB、Express、React、Node.js)应用程序,使经过身份验证的用户能够通过自然语言界面管理个人目标。该系统集成了Google Gemini 2.5 Flash和模型上下文协议(MCP),提供了一种能够通过对话提示直接创建、阅读和删除目标的AI助手。
建筑
该应用程序由三个主要部分组成:
- 前端(React):提供用户界面,包括身份验证和聊天交互。
- 后端(Node.js/Express):处理REST API请求、数据库交互,并协调对Gemini API的调用。
- MCP服务器:作为一个单独的进程运行,以安全地将核心数据库操作暴露给AI模型。
技术栈
- 前端:React、Redux工具包、Axios
- 后端:Node.js、Express、Mongoose
- 数据库:MongoDB
- 人工智能集成:谷歌双子座2.5 Flash(通过
@google/generative-aiSDK) - 工具协议:模型上下文协议(MCP)
- 认证:JSON Web令牌(JWT)
先决条件
启动前,请确保已安装以下内容:
- Node.js (v18或更高版本)
- MongoDB (本地运行,或MongoDB Atlas URI)
- Google Gemini API密钥 (可通过Google AI Studio免费获得)
本地设置说明
- 克隆存储库
git clone https://github.com/Ishva24/mern-goalsetter-mcp.git
cd mern-tutorial- 安装根依赖项
安装核心后端和MCP客户端库。
npm install- 安装MCP服务器依赖项
cd mcp-server
npm install
cd ..- 安装前端依赖项
cd frontend
npm install
cd ..- 配置环境变量
复制提供的环境模板:
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是否允许访问。
许可证
麻省理工学院
