用户管理系统

一个基于模型上下文协议(MCP)的客户端-服务器架构用户管理系统,具备AI驱动的查询功能。

  • by AkshatAmeria
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 AkshatAmeria/mcp_server_client

使用说明

MCP用户管理系统

模型上下文协议(MCP)的实际实现,展示了一种具有人工智能查询功能的用户管理客户端-服务器架构。

📖 什么是MCP?

这 模型上下文协议(MCP) 是一个开放协议,规范了应用程序如何向大型语言模型(LLM)提供上下文。将其视为AI模型和各种数据源或工具之间的通用连接器。

关键概念:

  • MCP服务器:向客户端公开资源(数据)、工具(操作)和提示
  • MCP客户端:连接到服务器并使用其功能
  • 资源:只读数据源(如数据库查询)
  • 工具:可以修改状态的可执行函数
  • 提示:可重复使用的提示模板

这个项目通过一个简单的用户管理系统演示了所有这些概念。

🎯 这个项目做什么

此存储库包含:

  1. MCP服务器 (server.ts):使用以下工具管理用户数据库:

    • 读取用户数据的资源
    • 创建用户的工具(手动或使用人工智能生成的虚假数据)
    • 生成虚假用户配置文件的提示
  2. MCP客户端 (client.ts):交互式CLI,可让您:

    • 使用自然语言(AI驱动)查询系统
    • 直接调用工具
    • 阅读资源
    • 使用提示
    • 一切都与谷歌的Gemini AI模型集成

🚀 入门指南

先决条件

  • Node.js(v18或更高版本)
  • npm或纱线
  • Google Gemini API密钥(在这里买一个)

安装

  1. 克隆存储库

    git clone <your-repo-url>
    cd <your-repo-name>
    
  2. 安装依赖项

    npm install
    
  3. 设置环境变量

    创建一个 .env 根目录中的文件:

    GEMINI_API_KEY=your_gemini_api_key_here
    
  4. 构建项目

    npm run build
    

运行应用程序

  1. 启动客户端

    node build/client.js
    
  2. 从菜单中选择一个选项:

    • 查询(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模型