消毒AI
SanitizeAI是一个web应用程序,演示了如何 人工智能可以保护文本中的敏感信息 使用 模型上下文协议(MCP)它展示了MCP客户端(Next.js中的Genkit流)和MCP服务器(拥有净化工具的独立Node/Express服务)之间的明确分离。
特性
- 🔒 AI驱动的文本净化:使用Google Gemini 2.0 Flash智能选择和执行净化工具
- 🛠️ 模型上下文协议:演示具有客户端-服务器分离的MCP架构
- 📊 实时进度流:实时观察消毒过程
- 🎯 多种消毒类型:
- 个人信息(PII)匿名化 - 财务数据编辑 - 健康信息编辑 - 工作场所数据匿名化
- 🎨 现代用户界面:使用Next.js 14、ShadCN UI和Tailwind CSS构建
- 📱 响应式设计:适用于台式机和移动设备
技术栈
| 层 | 技术 |
|---|---|
| 框架 | Next.js 14(应用路由器) |
| AI SDK | Genkit |
| 人工智能模型 | 谷歌Gemini 2.0 Flash |
| AI协议 | 人类模型上下文协议(MCP) |
| UI | ShadCN UI |
| 造型 | 顺风CSS |
| 语言 | TypeScript |
| 形式 | 反应钩形+zod |
| 流媒体 | ai/rsc(React服务器组件流媒体) |
建筑
Browser (ShadCN UI)
│
▼
Next.js Server Action ← streams progress + result
│
▼
Genkit Flow (MCP CLIENT) – no tools here!
│
▼
MCP Server (standalone HTTP service) – owns tools快速开始
- 克隆并安装依赖项:
git clone
cd sanitize-ai
npm install- 设置环境变量:
cp .env.example .env
# Edit .env and add your GEMINI_API_KEY- 启动MCP服务器 (1号航站楼):
npm run dev:mcp- 启动Next.js (在2号航站楼):
npm run dev- 打开浏览器:
环境变量
创建一个 .env 文件包含:
GEMINI_API_KEY=your_gemini_api_key_here
MCP_PORT=9003用法
- 选择样本数据集 或输入您自己的包含敏感信息的文本
- 指定消毒意图 (例如,“匿名个人身份信息”、“修改财务数据”)
- 点击“消毒文本” 并查看实时进度
- 查看消毒结果 在输出面板中
- 检查“工具信息”选项卡 查看选择了哪个MCP工具
- 使用“查看原始输出” 查看完整的响应数据
示例数据集
该应用程序包括用于测试的样本数据集:
- 个人信息:姓名、电子邮件、电话、地址、出生日期
- 财务数据:信用卡、IBAN、加密货币钱包
- 健康信息:医疗记录、处方、保险信息
- 工作场所数据:员工ID、公司名称、工资
MCP工具
MCP服务器提供以下净化工具:
- 匿名pi:匿名化个人身份信息
- redact_财务:修改信用卡和银行账户等财务数据
- redact_health_info:Redacts保护健康信息
- 匿名工作场所:匿名处理与工作场所有关的敏感信息
发展
项目结构
src/
├── ai/
│ ├── flows/
│ │ └── sanitize-text-with-mcp.ts # MCP client & Genkit flow
│ └── dev.ts # Development runner
├── app/
│ ├── actions.ts # Next.js Server Actions
│ └── page.tsx # Main UI
├── components/ui/ # ShadCN UI components
├── lib/
│ ├── ai.ts # Genkit configuration
│ └── utils.ts # Utilities
└── mcp/
└── server.ts # MCP server with tools脚本
npm run dev-启动Next.js开发服务器npm run dev:mcp-在监视模式下启动MCP服务器npm run build-为生产而建npm run start-启动生产服务器npm run lint-运行ESLint
安全功能
- 防御安全重点:仅创建用于保护敏感数据的工具
- 不采集凭证:专为数据净化而设计
- 安全的人工智能处理:使用人工智能匿名化而不是提取敏感信息
- 安全架构:客户端和服务器组件之间的明确分离
教育目标
该项目展示了:
- 模型上下文协议(MCP) TypeScript中的实现
- AI驱动的工具选择 使用Gemini 2.0 Flash
- 实时流媒体 使用React服务器组件
- 现代全栈架构 使用Next.js和Genkit
- 安全的AI应用程序设计 专注于数据保护
许可证
麻省理工学院许可证-请随意使用此项目进行学习和发展!#PII_MCP_服务器
