使用说明
MCP用户管理系统
模型上下文协议(MCP)的实际实现,展示了一种具有人工智能查询功能的用户管理客户端-服务器架构。
📖 什么是MCP?
这 模型上下文协议(MCP) 是一个开放协议,规范了应用程序如何向大型语言模型(LLM)提供上下文。将其视为AI模型和各种数据源或工具之间的通用连接器。
关键概念:
- MCP服务器:向客户端公开资源(数据)、工具(操作)和提示
- MCP客户端:连接到服务器并使用其功能
- 资源:只读数据源(如数据库查询)
- 工具:可以修改状态的可执行函数
- 提示:可重复使用的提示模板
这个项目通过一个简单的用户管理系统演示了所有这些概念。
🎯 这个项目做什么
此存储库包含:
-
MCP服务器 (
server.ts):使用以下工具管理用户数据库:- 读取用户数据的资源
- 创建用户的工具(手动或使用人工智能生成的虚假数据)
- 生成虚假用户配置文件的提示
-
MCP客户端 (
client.ts):交互式CLI,可让您:- 使用自然语言(AI驱动)查询系统
- 直接调用工具
- 阅读资源
- 使用提示
- 一切都与谷歌的Gemini AI模型集成
🚀 入门指南
先决条件
- Node.js(v18或更高版本)
- npm或纱线
- Google Gemini API密钥(在这里买一个)
安装
-
克隆存储库
git clone <your-repo-url> cd <your-repo-name> -
安装依赖项
npm install -
设置环境变量
创建一个
.env根目录中的文件:GEMINI_API_KEY=your_gemini_api_key_here -
构建项目
npm run build
运行应用程序
-
启动客户端
node build/client.js -
从菜单中选择一个选项:
- 查询(AI驱动):用自然语言提问(例如,“使用电子邮件创建一个名为John的用户john@example.com")
- 调用工具:手动执行创建用户等工具
- 阅读资源:查看所有用户或特定用户详细信息
- 使用提示:基于模板生成虚假用户数据
- 退出:关闭应用程序
📁 项目结构
├── src/
│ ├── client.ts # MCP client implementation
│ ├── server.ts # MCP server implementation
│ └── data/
│ └── users.json # User database (auto-created)
├── build/ # Compiled JavaScript files
├── .env # Environment variables
├── package.json
└── README.md
🔧 可用功能
资源
- 获取所有用户 (
users://all):从数据库中检索所有用户 - 获取用户详细信息 (
users://{userId}/profile):获取特定用户信息
工具
- 创建用户:添加一个新用户,包括姓名、电子邮件、地址和电话
- 创建随机用户:使用AI生成并保存假用户
提示
- 生成虚假用户:基于名称创建虚假用户数据的模板
💡 示例用法
使用AI查询
What would you like to do? > Query (AI-powered)
Enter your query: > Create a new user named Alice with email alice@example.com
阅读所有用户
What would you like to do? > Read a Resource
Select a resource: > Users (users://all)
创建随机用户
What would you like to do? > Call a Tool
Select a tool: > Create Random User
🛠️ 发展
构建项目
npm run build
监视模式(更改后自动重建)
npm run build -- --watch
📦 依赖项
@ai-sdk/google:谷歌Gemini人工智能集成@modelcontextprotocol/sdk:MCP协议实施ai:用于统一AI交互的Vercel AI SDK@inquirer/prompts:交互式CLI提示zod:架构验证dotenv:环境变量管理
🤝 贡献
欢迎投稿!请随意:
- 报告错误
- 建议新功能
- 提交拉取请求
📄 许可证
[在此处添加您的许可证]
🔗 资源
⚠️ 备注
- 用户数据库存储在
src/data/users.json并在会话之间持续 - 用户ID会自动递增
- 服务器使用stdio传输进行通信
- 所有人工智能操作都使用谷歌的Gemini 2.0 Flash模型