README
🚀 🏥 MCP医院助手
MCP医院助手是一个全栈智能医院预约管理系统,由React、Node.js、PostgreSQL和Mistral大语言模型(通过Ollama)提供支持。它旨在简化医院预约流程,提高管理效率,为医院和患者提供便捷的服务体验。
🚀 快速开始
项目环境准备
在开始使用本系统之前,你需要安装以下依赖:
- PostgreSQL:用于存储系统数据。
- Ollama:用于运行Mistral大语言模型。
- Node.js:用于运行后端服务器。
- npm:用于安装项目依赖。
项目启动步骤
1. 安装PostgreSQL并创建数据库
sudo apt install postgresql postgresql-contrib
sudo -u postgres psql
在psql中运行以下命令:
CREATE DATABASE mcp;
CREATE USER mcpuser WITH PASSWORD 'mcppass';
GRANT ALL PRIVILEGES ON DATABASE mcp TO mcpuser;
2. 创建数据库表结构
连接到数据库:
psql -U mcpuser -d mcp -h localhost
创建表结构:
CREATE TABLE doctors (
doctor_id SERIAL PRIMARY KEY,
name TEXT,
department TEXT,
available_slots JSONB
);
CREATE TABLE patients (
patient_id SERIAL PRIMARY KEY,
name TEXT,
age INTEGER,
contact TEXT
);
CREATE TABLE appointments (
appointment_id SERIAL PRIMARY KEY,
doctor_id INTEGER REFERENCES doctors(doctor_id),
patient_id INTEGER REFERENCES patients(patient_id),
appointment_time TEXT
);
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username TEXT UNIQUE,
password TEXT
);
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO mcpuser;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO mcpuser;
3. 安装Ollama并运行Mistral模型
curl -fsSL https://ollama.com/install.sh | sh
ollama run mistral
确保本地Ollama服务器正在运行,并且监听默认端口11434。
4. 后端项目启动(Node.js)
cd backend/
npm install
node server.js
后端服务器将在http://localhost:3007启动。
5. 前端项目启动(React)
cd frontend/mcp-ui
npm install
npm start
前端项目将在http://localhost:3000启动。
✨ 主要特性
可视化界面展示
🎥 演示视频
🏠 仪表盘

💬 大语言模型聊天助手

💬 手动预约

技术栈亮点
- 🔁 Node.js + Express:构建高效的后端服务器。
- 🎨 React.js(前端):提供流畅的用户界面。
- 🧠 大语言模型(Ollama - Mistral):实现智能交互和自动化操作。
- 💾 PostgreSQL:稳定可靠的数据存储。
- 🛡️ 基于会话的登录:保障系统安全。
功能模式
✨ 模式1:通过用户界面手动操作
你可以在主页点击图标进行以下操作:
- ➕ 添加医生
- ➕ 添加患者
- 📅 预约挂号
- 📋 查看医生信息
- 📋 查看预约信息
这些用户界面功能直接调用API端点(如/api/execute、/api/book等)。
🔍 模式2:智能助手(支持大语言模型)
在“询问助手”聊天界面中,你可以输入以下命令:
- 示例:显示所有预约信息
- 示例:为患者John在10:00预约2号医生
✅ 如果启用了MCP工具(顶部复选框),大语言模型将:
- 🔎 理解用户命令
- 🔧 从
tools.json中选择正确的工具 - 🧠 生成SQL语句
- 🔁 自动在后台执行API调用
❌ 如果禁用,大语言模型仅提供普通回答(不改变系统状态)。
安全认证
- 只有经过身份验证的用户才能访问核心页面。
- 注册页面将哈希后的凭证安全存储在PostgreSQL中。
- 使用
express-session存储会话信息。
📦 项目结构
├── backend/
│ ├── server.js # Node.js + Express后端
│ ├── config/config.js # PostgreSQL配置文件
│ ├── mcp/ # 所有业务逻辑处理程序
│ ├── auth/ # 登录、注册、会话路由
├── frontend/
│ └── mcp-ui/ # React前端
│ ├── components/ # AddDoctor、Chat、Login、Home等组件
│ └── App.js # 主路由控制器
💻 使用示例
基础用法
以下是一些可以在大语言模型聊天界面输入的示例命令:
显示医生表中的所有医生信息
显示11:00之后的预约信息
为30岁的John在09:00预约Renu医生
功能特性对比
| 功能特性 | 手动用户界面 | 大语言模型工具 | | ---- | ---- | ---- | | 添加医生 | ✅ 支持 | ✅ 通过命令 | | 预约挂号 | ✅ 支持 | ✅ 如果有可用时段 | | 查看医生/预约信息 | ✅ 支持 | ✅ 通过命令 | | 编辑时段 | ✅ 支持(通过查询) | ✅ 通过命令 | | 安全性 | 🔐 会话登录 | 🔐 会话保护 |
微信扫一扫